Вопрос или проблема
Я знаю, что могу использовать dmesg
, чтобы посмотреть ошибки загрузки. Однако моя система не загружается в данный момент. Она зависает на неопределенное время, пытаясь инициализировать жесткие диски. Тем не менее, я могу загрузиться в безопасном режиме.
Когда я загружаюсь в безопасном режиме и смотрю dmesg
, он не содержит старых сообщений загрузки. Он содержит только сообщения загрузки с текущей загрузки в безопасный режим.
Как сохранить журнал dmesg
(или любой другой журнал) во время процесса неудачной загрузки, чтобы я мог просмотреть его при входе в систему для диагностики через безопасный режим?
Я сейчас не за Ubuntu компьютером, но стараюсь помочь.
Если я не ошибаюсь, логирование загрузки по умолчанию отключено.
В /etc/default/bootlogd установите
BOOTLOGD_ENABLE=Yes
Теперь каждая запись загрузки в /var/log/boot будет создана в файле, который читается только root (поэтому потребуется sudo). Если я не ошибаюсь, этот журнал циклически затирается, поэтому у вас будут более старые версии.
Если это не сработает или вы не включены в /etc/sudoers, вы также можете попробовать загрузиться с помощью загрузочной USB-флешки и проверить bootlog после неудачной загрузки или загрузиться в безопасном режиме и перенаправить dmesg в файл, используя оператор перенаправления вывода:
dmesg > bootmessages$(date +%Y%m%d).bak
Вы можете использовать journalctl
, чтобы просмотреть предыдущие журналы загрузки, таким образом:
journalctl -b -1 -e
позволит просмотреть предыдущую загрузку. Меняя номер, вы можете увидеть более ранние журналы загрузки. Также journalctl --list-boots
удобно показывает, когда произошла загрузка #N.
Вы также можете спросить у journalctl
о сообщениях журнала диска:
journalctl /dev/sda
.
Ответ или решение
Если вы столкнулись с проблемой, когда ваша система зависает при инициализации жестких дисков и не загружается, сохранив подробный журнал загрузки, это важный шаг для диагностики и решения проблемы. Следуя предложенным методам, вы сможете извлечь и сохранить информацию о неудачной загрузке для последующего анализа.
Включение журналирования загрузки
По умолчанию, журналирование загрузки может быть отключено. Чтобы активировать его, выполните следующие шаги:
-
Редактирование файла конфигурации
bootlogd
:
Откройте файл/etc/default/bootlogd
с правами суперпользователя:sudo nano /etc/default/bootlogd
Убедитесь, что строка
BOOTLOGD_ENABLE=Yes
активирована. Это позволит создавать файлы журнала в каталоге/var/log/boot
, доступные для чтения пользователю root. -
Использование журнала системных сообщений
journalctl
:
journalctl
— мощный инструмент для анализа предыдущих загрузок:- Чтобы просмотреть журнал предыдущей загрузки, выполните:
journalctl -b -1 -e
- Для отображения истории загрузок используйте:
journalctl --list-boots
Эти команды помогут идентифицировать, когда именно произошла неудачная загрузка.
- Чтобы просмотреть журнал предыдущей загрузки, выполните:
-
Фильтрация сообщений по устройству:
Если ваша проблема связана с определенным устройством, таким как жесткий диск:journalctl /dev/sda
Это предоставит конкретные сообщения, относящиеся к указанному устройству.
Извлечение данных в Безопасном режиме
Если безопасный режим доступен, используйте его для сохранения текущих сообщений dmesg
:
-
Сохранение текущих сообщений
dmesg
:
В командной строке в безопасном режиме выполните:dmesg > bootmessages$(date +%Y%m%d).bak
Этот файл будет включать подробности текущей загрузки, которые могут быть полезны для выявления неполадок.
-
Использование загрузочной USB флешки:
Если доступ в безопасный режим ограничен, рассмотрите использование загрузочного USB для доступа к файловой системе и извлечения журналов из/var/log/
.
Эти шаги помогут вам сохранить и проанализировать журналы загрузки для диагностики причин сбоя. Оптимизация системного журнала и использование соответствующих инструментов могут существенно упростить процесс устранения проблем, связанных с загрузкой системы. Настоятельно рекомендуется также сохранить резервные копии критически важных данных и системных файлов перед выполнением любых изменений конфигурации.