Устранение неполадок
Fedora Atomic Desktops используют новый способ развёртывания и управления вашей настольной операционной системой, поэтому в повседневной работе вы можете иногда сталкиваться с проблемами. Ниже приведены некоторые из наиболее частых проблем и способы их обхода.
"Forbidden base package replacements"
Это может произойти, когда накладываемый пакет имеет зависимость от пакета, входящего в базовую ОС. В проблемном случае накладываемый пакет требует более новую версию зависимого пакета, которая недоступна в базовой ОС.
В большинстве случаев ожидание новой сборки OSTree решит эту проблему. Зависимый пакет будет обновлён в сборке, и накладываемый пакет будет успешно установлен.
Однако, если вы продолжаете сталкиваться с этой проблемой в новой сборке, попробуйте очистить метаданные с помощью rpm-ostree cleanup -m, а затем повторите rpm-ostree install.
Как вариант, после операции cleanup попробуйте перебазироваться на любую ссылку updates, например fedora/44/updates/x86_64.
Дополнительную информацию см. в rpm-ostree#415.
Установка пакетов в /opt или /usr/local
Установка в /opt часто упоминалась как проблема, когда пользователи пытались установить Google Chrome. Был реализован частичный способ решения, который позволяет пользователям накладывать Google Chrome, однако это не является полным решением для приложений, которые записывают изменяемые данные в /opt.
Эта проблема отслеживается в rpm-ostree#233.
Использование драйверов NVIDIA
|
Проект Universal Blue создаёт образы операционной системы со встроенными драйверами NVIDIA. Образы Universal Blue основаны на образах Fedora Atomic Desktop с дополнительными изменениями на их усмотрение. Образы Universal Blue официально не одобрены проектом Fedora. Используйте их на свой страх и риск. |
Вы можете установить официальные двоичные драйверы NVIDIA из репозиториев RPM Fusion.
| Двоичные драйверы NVIDIA не поддерживаются проектом Fedora и иногда могут быть недоступны для версии ядра, включённой в Fedora Atomic Desktops. |
-
Сначала убедитесь, что ваша система полностью обновлена, выполнив
sudo rpm-ostree upgradeи перезагрузившись. -
Затем настройте репозитории RPM Fusion, следуя документации, включая две перезагрузки.
-
Наконец, установите драйверы:
# rpm-ostree install kmod-nvidia xorg-x11-drv-nvidia # rpm-ostree kargs --append=rd.driver.blacklist=nouveau,nova-core \ --append=modprobe.blacklist=nouveau,nova-core \ --append=nvidia-drm.modeset=1 \ --append=initcall_blacklist=simpledrm_platform_driver_init # systemctl reboot
|
При использовании Secure Boot локально установленные драйверы NVIDIA должны быть подписаны локальным ключом, который регистрируется с помощью |
Спасибо Алексу Ларссону, который внёс необходимые изменения в пакеты akmods и kmodtools. Вы можете прочитать больше о работе, проделанной Алексом, в его блоге.
Внеядерные модули и драйверы, использующие DKMS
Fedora Atomic Desktops в настоящее время не поддерживают DKMS. См. проблему вышестоящего проекта rpm-ostree#1091.
Вместо этого мы рекомендуем создавать пакеты kmods для внеядерных модулей и отправлять их в репозитории RPM Fusion. Затем пакеты kmods будут использоваться akmods, который поддерживается в Fedora Atomic Desktops.
Добавление внешних репозиториев пакетов
|
В этом разделе рассматриваются сторонние источники программного обеспечения, официально не связанные с проектом Fedora и не одобренные им. Используйте их на свой страх и риск. |
| Если вы хотите использовать репозитории RPM Fusion, следуйте разделу Включение репозиториев RPM Fusion. |
Некоторое программное обеспечение может быть доступно только из стороннего репозитория. Вы можете добавить внешний репозиторий вручную в Fedora Atomic Desktops, поместив файл .repo в /etc/yum.repos.d/, а GPG-ключ — в /etc/pki/rpm-gpg/. Ниже приведён полный пример настройки репозитория Taiscale:
-
Загрузите и установите конфигурацию репозитория:
$ curl -O https://pkgs.tailscale.com/stable/fedora/tailscale.repo [tailscale-stable] name=Tailscale stable baseurl=https://pkgs.tailscale.com/stable/fedora/$basearch enabled=1 type=rpm repo_gpgcheck=1 gpgcheck=0 gpgkey=https://pkgs.tailscale.com/stable/fedora/repo.gpg $ sudo install -o 0 -g 0 -m644 tailscale.repo /etc/yum.repos.d/tailscale.repo -
Загрузите и установите GPG-ключи:
$ curl -O https://pkgs.tailscale.com/stable/fedora/repo.gpg $ sudo install -o 0 -g 0 -m644 repo.gpg /etc/pki/rpm-gpg/tailscale.gpg -
Замените URL
gpgkey=в конфигурации репозитория на путь к GPG-ключам:$ sudoedit /etc/yum.repos.d/tailscale.repo $ cat /etc/yum.repos.d/tailscale.repo [tailscale-stable] name=Tailscale stable baseurl=https://pkgs.tailscale.com/stable/fedora/$basearch enabled=1 type=rpm repo_gpgcheck=1 gpgcheck=0 ### Update this line gpgkey=file:///etc/pki/rpm-gpg/tailscale.gpg ### ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -
Установите новые пакеты с помощью:
$ rpm-ostree install tailscale
Улучшение поддержки этого сценария использования в rpm-ostree отслеживается в rpm-ostree#4014.
Проблемы с SELinux
По мере повседневной работы с Fedora Atomic Desktops пользователи могут изменить политику SELinux по умолчанию в попытке обойти одну или несколько проблем, связанных с SELinux. Обычно это делается, когда пользователь видит отказ SELinux в журнале. Если это так и вы хотите вернуться к политике SELinux по умолчанию, можно попробовать следующие действия.
-
Проверьте состояние политики SELinux
$ sudo ostree admin config-diff | grep policy M selinux/targeted/active/policy.linked M selinux/targeted/active/policy.kern M selinux/targeted/policy/policy.31 A selinux/targeted/policy/policy.30Если эта команда что-то возвращает, значит ваша политика SELinux была изменена по сравнению с настройками по умолчанию.
-
Скопируйте политику SELinux по умолчанию, поставляемую в сборке OSTree
$ sudo cp -al /etc/selinux{,.bak} $ sudo rsync -rlv /usr/etc/selinux/ /etc/selinux/После этого вывод
ostree admin config-diff | grep policyбольше не должен указывать на изменение политики.Если ваша политика по-прежнему выглядит изменённой, вы можете попробовать следующий подход.
-
Удалите политику SELinux; скопируйте политику по умолчанию
$ sudo rm -rf /etc/selinux $ sudo cp -aT /usr/etc/selinux /etc/selinuxПосле этого команда
ostree admin config-diff | grep policyне должна возвращать изменений.
Невозможно добавить пользователя в группу
Из-за того, как rpm-ostree обрабатывает записи пользователей и групп, использование usermod -a -G для добавления пользователя в группу может не сработать. Пока rpm-ostree не перейдёт на использование systemd sysusers, пользователям придётся заполнять файл /etc/group из файла /usr/lib/group, прежде чем они смогут добавить себя в группу.
Например, если вы хотите добавить пользователя в группу libvirt:
$ grep -E '^libvirt:' /usr/lib/group | sudo tee -a /etc/group
$ sudo usermod -aG libvirt $USER
| Вам нужно будет выйти из системы и войти снова, чтобы применить изменения. |
Эта проблема отслеживается в rpm-ostree#29 и rpm-ostree#49.
ostree fsck сообщает о повреждении файлов
Возможно попасть в ситуацию, когда один или несколько файлов на диске повреждены или отсутствуют. В этом случае ostree fsck сообщит об ошибках в определённых коммитах. Обходной путь в этом случае — пометить весь коммит OSTree как частично полученный, а затем повторно загрузить коммит.
Файловая система /boot/efi только для чтения препятствует обновлениям
Эта проблема чаще всего возникает при установке Fedora Atomic Desktops на оборудование Apple. Раздел /boot/efi на оборудовании Apple отформатирован как HFS+ и не всегда устойчив к сбоям питания или другим жёстким событиям, связанным с питанием.
Поскольку Fedora Atomic Desktops теперь включает пакет hfsplus-tools в базовую сборку, пользователям стало относительно легко обходить такие ошибки.
# umount /boot/efi
# fsck.hfsplus /dev/sda1
# mount -o rw /boot/efi
Дополнительные сведения см. в проблеме GitHub rpm-ostree#1380.
Невозможно установить Fedora Atomic Desktop в системах EFI
Пользователи сообщают, что не могут установить Fedora Atomic Desktop в систему на основе EFI, где ранее была установлена другая ОС. Часто наблюдаемая ошибка выглядит так:
ostree ['admin', '--sysroot=/mnt/sysimage', 'deploy', '--os=fedora-workstation', 'fedora-workstation:fedora/28/x86_64/workstation'] exited with code -6`
Существует несколько возможных обходных путей:
-
Во время установки выберите «Пользовательскую разметку» и создайте дополнительный EFI-раздел. Назначьте вновь созданный EFI-раздел для
/boot/efi. Тогда вы сможете загружать предыдущие ОС вместе с вашим Fedora Atomic Desktop. Если этот обходной путь не сработает, выполните следующий шаг. -
Переформатируйте EFI-раздел на хосте во время установки. Это можно сделать, выбрав «Пользовательскую разметку» и установив флажок
Reformatпри создании раздела/boot/efi.
|
Выбор переформатирования |
Эта проблема отслеживается в Bugzilla#1575957.
toolbox: не удалось получить список образов с com.redhat.component=fedora-toolbox
|
Начиная с версии |
При выполнении команды toolbox list в системах, использующих версии podman новее 1.2.0, будет возникать следующая ошибка:
toolbox: failed to list images with com.redhat.component=fedora-toolbox
|
Следующий обходной путь может быть полезен для других ошибок |
В качестве обходного пути можно переопределить пакеты podman новее версии 1.2.0 с помощью команды:
$ rpm-ostree override --remove=podman-manpages \
replace https://kojipkgs.fedoraproject.org//packages/podman/1.2.0/2.git3bd528e.fc30/x86_64/podman-1.2.0-2.git3bd528e.fc30.x86_64.rpm
Перезагрузите систему для применения изменений.
Для справки, также можно переопределить пакет, выполнив следующие шаги:
-
Загрузите
podman-1.2.0-2.git3bd528e.fc30.x86_64.rpmс Koji. -
Удалите
podman-manpagesкомандой:rpm-ostree override remove podman-manpages. -
Переопределите текущий установленный пакет
podman(используя пакет, загруженный на первом шаге) командой:$ rpm-ostree override replace podman-1.2.0-2.git3bd528e.fc30.x86_64.rpm
Теперь вы можете перезагрузить систему для применения изменений.
Чтобы отменить этот обходной путь, выполните следующие команды:
$ rpm-ostree override reset podman
$ rpm-ostree override reset podman-manpages
Невозможно войти в toolbox из-за ошибок прав доступа
В некоторых версиях podman попытка войти в toolbox приводит к ошибкам. Вы можете исправить это, сбросив права доступа к overlay-контейнерам с помощью следующей команды:
$ sudo chown -R $USER ~/.local/share/containers/storage/overlay-containers
Это сбросит права доступа к вашим контейнерам и позволит вам снова войти в них.
См. проблему podman вышестоящего проекта: podman#3187.
Запуск restorecon
|
Никогда не запускайте |
Однако если вы всё же это сделали, восстановление возможно.
-
Загрузитесь с параметром
enforcing=0в командной строке ядра -
Создайте локально новый «исправленный» коммит
-
Разверните новый «исправленный» коммит
-
Выполните
restorecon -
Перезагрузитесь
-
Очистите
$ rpm-ostree status -b | grep BaseCommit
BaseCommit: 696991d589980aeaef5eda352dd7ad3d33c444c789c209f793a84bc6e7269aee
### Если предыдущая команда ничего не выводит, попробуйте:
$ rpm-ostree status -b | grep Commit
Commit: 696991d589980aeaef5eda352dd7ad3d33c444c789c209f793a84bc6e7269aee
$ sudo ostree checkout \
-H 696991d589980aeaef5eda352dd7ad3d33c444c789c209f793a84bc6e7269aee \
/ostree/repo/tmp/selinux-fix
$ sudo ostree fsck --delete
$ sudo ostree commit --consume \
--link-checkout-speedup --orphan --selinux-policy=/ /ostree/repo/tmp/selinux-fix
$ sudo restorecon -Rv /var
$ sudo restorecon -Rv /etc
### В команде ниже замените:
### - x86_64 на вашу фактическую архитектуру ЦП
### - silverblue на имя вашего варианта Fedora Atomic Desktop
$ sudo ostree admin deploy fedora:fedora/44/x86_64/silverblue
$ sudo reboot
Недостаток этого восстановления в том, что ваши накладываемые пакеты будут удалены; после восстановления их нужно будет наложить заново.
Дополнительные сведения см. в комментарии вышестоящего проекта: ostree#1265.
Сброс паролей в режиме восстановления
Если вы не можете вспомнить свой пароль пользователя или root, вы можете сбросить пароль, выполнив следующие шаги:
-
Во время загрузки системы прервите последовательность загрузки в меню GRUB2 с помощью клавиши Esc.
-
Выберите запись загрузки, которую хотите отредактировать, с помощью клавиш со стрелками.
-
Отредактируйте выбранную запись с помощью клавиши e.
-
Используйте клавиши со стрелками, чтобы выбрать строку, начинающуюся с
linux,linux16илиlinuxefi. -
Перейдите в конец этой строки (нажав Ctrl + e) и добавьте
init=/bin/bash. -
Нажмите Ctrl + x или F10, чтобы загрузить запись.
-
В появившемся приглашении
bashвыполните следующие команды:
# mount -t selinuxfs selinuxfs /sys/fs/selinux
# /sbin/load_policy
# passwd
# sync
# /sbin/reboot -ff
Если вы хотите изменить пароль для учётной записи пользователя, замените команду passwd на passwd <имя_пользователя>.
После завершения перезагрузки системы вы должны иметь возможность войти с именем пользователя и новым паролем.
Want to help? Learn how to contribute to Fedora Docs ›