Вопрос или проблема
Все работало нормально, но вдруг я не могу выключить свою систему Ubuntu. Я пробовал выключить вручную и через терминал, но это не изменило ситуацию. Я также пробовал изменить файл grub: sudo gedit etc/default/grub
– сделал, чтобы он выглядел так – GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force"
, но ничего не изменилось.
Я также пробовал GRUB_CMDLINE_LINUX_DEFAULT=""
и пытался выяснить, какой файл блокирует выключение после выключения системы, но в конце концов появилась надпись Reached target Shutdown
, и сразу экран стал черным, но питание оставалось включенным, и единственным способом выключить его было удерживать кнопку питания в течение долгого времени.
После редактирования файла etc/default/grub
я запускал команду sudo update-grub
в обоих случаях
Единственное, что я сделал, это изменил пароль root на своем компьютере, а затем снова заблокировал его, как было по умолчанию. Я не знаю, как это могло повлиять на мою систему.
Спасибо заранее
==================================Отредактировано====================================
Команда journalctl --system -b -1
: https://pastebin.com/4J3zsxRg
Из man bootup
:
SYSTEM MANAGER SHUTDOWN
Завершение работы системы с systemd также состоит из различных целевых единиц с минимальной структурой порядков:
(конфликтует с (конфликтует с
всеми системными всеми файловыми системами
службами) монтирования, свопами,
| cryptsetup/veritysetup
| устройствами, ...)
| |
v v
shutdown.target umount.target
| |
\_______ ______/
\ /
v
(различные низкоуровневые
службы)
|
v
final.target
|
_____________________________________/ \_________________________________
/ | | \
| | | |
v v v v
systemd-reboot.service systemd-poweroff.service systemd-halt.service systemd-kexec.service
| | | |
v v v v
reboot.target poweroff.target halt.target kexec.target
Обычно используемые цели завершения работы системы выделены.
Обратите внимание, что systemd-halt.service(8), systemd-reboot.service, systemd-poweroff.service и systemd-kexec.service переведут систему и системный менеджер (PID 1) во вторую фазу
завершения работы системы (реализованную в бинарном файле systemd-shutdown), которая размонтирует любые оставшиеся файловые системы, завершит все оставшиеся процессы и освободит любые другие оставшиеся ресурсы,
в простой и надежной манере, не учитывая никакую концепцию службы или единицы больше. На этом этапе регулярные приложения и ресурсы обычно уже завершены и освобождены,
вторая фаза, следовательно, работает только как защитная сетка для всего, что не удалось остановить или освободить по какой-то причине в первичной, основанной на единицах фазе завершения работы, описанной выше.
Это означает, что достижение shutdown.target
не достаточно. Вообще, целью является poweroff.target
. Возможно, что-то препятствует выполнению umount()
? Как только вы снова загрузите свою систему, вы должны проверить системный журнал предыдущей загрузки, особенно в конце : journalctl --system -b -1
Пробовали ли вы подождать некоторое время, скажем, 5-15 минут, чтобы увидеть, не выключится ли система в конечном итоге ?
РЕДАКТИРОВАТЬ : Чтобы получить и поделиться полным журналом предыдущей загрузки :
- Введите
journalctl --system -b -1
- Когда он отобразится, предполагаю, что используется стандартная программа просмотра
less
: введитеs
(в нижнем регистре), он попросит указать имя файла для сохранения полного журнала в текущем каталоге, введите имя по вашему выбору и нажмите Enter - Откройте файл с вашим предпочтительным графическим текстовым редактором, мой — Emacs, но вы можете чувствовать себя более комфортно с другим, например
gedit
- Выделите весь текст, скопируйте и вставьте туда, где это необходимо. Вероятно, это будет слишком большой текст, чтобы вставить его в ваш вопрос, поэтому я советую вставить его в сервис, такой как Pastebin
ПЕРЕИЗДАНО : Я должен был обратить внимание раньше, что вы упомянули, что установили пароль для пользователя root. ЭТО НЕПРАВИЛЬНО ДЕЛАТЬ. В Ubuntu, по соображениям безопасности, root не должен иметь пароля, и вы должны получать привилегии root через команду sudo
из сеанса пользователя-администратора.
Хотя я предполагаю, что установка пароля для root сама по себе не должна быть причиной вашей проблемы, я не могу сказать, что уверен в том, что произойдет, если вы откроете сессию под root… возможно, есть какая-то особенность в Ubuntu, которая вызовет проблемы при завершении работы системы.
Ответ или решение
Не могу выключить Ubuntu 20.04: Решение проблемы
Фон проблемы
Если ваша система Ubuntu 20.04 перестала корректно выключаться, важно понять, что проблема может быть вызвана различными факторами, начиная от изменений в конфигурации и заканчивая ошибками в системных процессах. Вы уже предприняли шаги по изменению конфигурации GRUB и проверили системный журнал, но пока безрезультатно.
Потенциальные причины и их решения
-
Проблемы с управлением питанием (ACPI):
- Вы уже добавили параметр
acpi=force
в файл/etc/default/grub
, но это не помогло. Попробуйте другие параметры, такие какacpi=off
, если вы уверены, что ваше оборудование корректно работает без ACPI. - После внесения изменений всегда запускайте
sudo update-grub
, чтобы обновить загрузчик.
- Вы уже добавили параметр
-
Проблемы с монтированием и размонтированием файловых систем:
- Проверьте системный журнал (команда
journalctl --system -b -1
) на предмет ошибок, связанных сumount()
или файловыми системами, которые могут блокировать завершение работы. - Возможность использовать команду
sudo lsof | grep "/mountpoint"
для обнаружения процессов, держащих открытые файлы на монтированных томах.
- Проверьте системный журнал (команда
-
Изменения учетных записей пользователей:
- Изменения пароля
root
. Действительно, в Ubuntu активация root-пароля может неожиданно влиять на работу системы. Возвратите настройки по умолчанию, отключив пароль дляroot
:sudo passwd -dl root
.
- Изменения пароля
-
Аппаратные несовместимости или баги:
- Убедитесь, что все оборудование имеет последние версии прошивок и драйверов. При необходимости обновите BIOS/UEFI.
- Периодически обновляйте операционную систему (
sudo apt update && sudo apt upgrade
), чтобы устранить известные баги, которые могут влиять на управление питанием.
Проверка и дополнительные шаги
-
Ожидание завершения процессов: Иногда может потребоваться несколько минут для полного завершения работы системы. Убедитесь, что вы даете системе достаточно времени на завершение всех процессов.
-
Утилиты для диагностики:
- Используйте
systemctl list-jobs
для проверки зависших задач. - Рассмотрите возможность использования интерактивного режима завершения
sudo systemctl halt
, чтобы вручную определить, на каком этапе система зависает.
- Используйте
-
Логирование и диагностика: Используйте дополнительные средства логирования, такие как
dmesg
иrsyslog
, для более детальной диагностики.
Заключение
Проблемы с завершением работы системы Ubuntu могут быть сложными и иметь смешанный характер. Поэтому важно следовать систематическому подходу и учитывать все возможные изменения, которые могли быть внесены в систему. Мы рекомендуем сохранять регулярные резерванные копии конфигурационных файлов и системных логов для более лёгкого устранения потенциальных проблем в будущем. Если после выполнения указанных рекомендаций проблема сохраняется, рассмотрите возможность обращения в профессиональную техническую поддержку.