Где Linux размещает сообщения о загрузке?


39

Я хочу найти место, куда Linux записывает все загрузочные сообщения. Ты знаешь:

facility one    [STARTED]
facility two    [STARTED]
facility three  [FAILED]

Я искал с

find . -print0 | xargs -0 grep -i "words from boot messages"

в / var / log /, но ничего не нашел.

У меня есть CentOS 5.5.
Например, во время загрузки у меня было: "Определение информации IP для eth0 ... не удалось; ссылка отсутствует. Проверьте кабель?"
Меня не волнует ошибка, но я не могу найти ни одного журнала, содержащего эту ошибку.

dmesg | grep "no link present" тоже ничего не возвращает.


1
вы запускали findкоманду с правами root? findраспечатает все файлы, которые вы можете перечислить, но grepсможет проверить только те файлы, которые вы можете прочитать, а некоторые файлы журналов могут принадлежать пользователям с правами на чтение root. Также, по крайней мере, GNU grep поддерживает -lопцию th для печати имен файлов с совпадениями, а не с соответствующими строками. Это может быть очень полезно для поиска файлов, которые содержат определенный текст. Так что попробуйте su -c 'find /var/log -print0 | xargs -0 grep -l -i "words from boot messages"'илиsudo find /varlog -print0 | xargs -0 sudo grep -l -i "words from boot messages"
MSchilli

В настоящее время с systemd вот ответ.
Пабло А

Ответы:


24

Большинство загрузочных сообщений помещаются в буфер, доступ к которому можно получить с помощью команды dmesg. В большинстве дистрибутивов Linux этот вывод также хранится в

/var/log/dmesg.log

Что вы можете просмотреть с

tail -n 100 /var/log/dmesg.log

1
Например, у меня во время загрузки было: «Определение информации IP для eth0 ... не удалось; ссылка отсутствует. Проверьте кабель?» Я не забочусь об этой ошибке конкретно, но когда я делаю: dmesg | grep "нет ссылки" я ничего не получаю ... На самом деле я получаю ОЧЕНЬ МНОГО строк с grep "eth0", но не с конкретной ошибкой. Так есть ли способ найти описание конкретных ошибок загрузки или нет? (Спасибо за ответ на вопрос)
Родновер

Попробуйте использовать Nanoкоманду 's ^ w (whereis), по сути, команду Find. Или grepс расслабленным регулярным выражением. Если вас действительно беспокоит вывод конкретной команды, вы можете зайти в ее init.dфайл и изменить протоколирование STDOUT или STDERR вызывающей команды.
Мат Карлсон

Нет /var/log/dmesg.logна Lubuntu 18.04
Марко Сулла

17

Каждая исключительная запись во время загрузки помещается в /var/log/syslogМожет также быть в/var/log/boot.msg


У меня есть CentOS 5.5 и у меня нет системного журнала в / var / log /
Родновер

boot.log (обычно boot.log (x), где x - положительное целое число или ничего), пуст.
Родновер

1
Попробуйте / var / log / messages
pjc50

1
/var/log/boot.msg является правильным на Linux
Mint

может также содержать неисключительные записи.
Абдулль

8

Это решение, безусловно, работает в системах Debian, но может быть полезно в любом случае.

Чтобы сохранить все сообщения, отображаемые во время загрузки, вы должны запустить службу, которая называется bootlogd, после следующей перезагрузки вы можете прочитать сообщения в /var/log/boot.


На Debian Wheezy я получаюroot@wheezy:/home/jrx# service bootlogd start bootlogd: unrecognized service
Жером Радикс

4
@ JérômeRadix, может быть, вы должны сначала установить его?
беруз

3

Введите dmesg> ~ / dmesg.log, чтобы скопировать все загрузочные сообщения в вашу собственную копию. Вы можете добавить дату и время, если хотите сохранить несколько копий и даже автоматизировать их в сценарии входа в систему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.