У меня вопрос: как найти журнал загрузки с предыдущей попытки загрузки системы?
Сегодня, когда я впервые включил компьютер, процесс загрузки остановился на логотипе Ubuntu, когда я нажал < kbd> Esc kbd> Я видел несколько строк, содержащих ошибки ядра, и перезагрузка требуется внизу, поэтому я нажал Ctrl kbd> + ALt kbd> + Del kbd> и следующая загрузка прошла без проблем.
У меня проблемы с поиском сообщений с экрана, который я видел во время первой неудачной загрузки. Должен ли я сделать снимок на свой телефон?
/var/log/boot
есть, но пустой, я искал в kern.log и syslog строки, которые я запомнил с сегодняшней датой, например error
, но не нашел ничего знакомого с тем, что я видел на предыдущем экране загрузки.
$ journalctl -b -1
выдает мне только сообщения ядра во время загрузки, я могу найти это и в другом месте, и они не являются тем, что появлялось на экране во время загрузки, journalctl для меня бесполезен, я ищу сообщения, появляющиеся на экране во время загрузки .
На данный момент, единственный вариант - сфотографировать сообщение на бумаге.
В этой теме имеется отчет об ошибке. Поскольку rsyslog
уже поддерживает несколько загрузочных журналов в / var / log / syslog
и syslog.1
, .2.gz
, ] .3.gz
... системный журнал.7.gz
разработчики посчитали, что ведение дополнительных журналов journalctl
приведет к потере дискового пространства.
В отчете об ошибке 3 января 2018 г. указано, что для новых установок rsyslog
] больше не будет по умолчанию, и что journalctl
будет хранить несколько журналов загрузочных данных.
Большинство из нас не будет выполнять новую установку, чтобы включить несколько journalctl
журналы загрузки, и в этом случае мы можем использовать:
$ sudo mkdir -p /var/log/journal
$ sudo systemd-tmpfiles --create --prefix /var/log/journal
Cannot set file attribute for '/var/log/journal', value=0x00800000, mask=0x00800000: Operation not supported
Согласно этому отчету github предупреждающее сообщение «Невозможно установить атрибут файла» можно игнорировать.
После использования предыдущего журнала загрузки в течение многих месяцев я обнаружил еще один параметр , который можно установить в /etc/systemd/journald.conf
:
Из страницы руководства journald.conf :
Storage =
Управляет местом для хранения данных журнала. Одно из значений «изменчивый», «постоянный», «автоматический» и «нет». Если "непостоянный", данные журнала будут храниться только в памяти, т.е. ниже иерархии / run / log / journal (который создается при необходимости). Если "постоянный", данные будут сохранены предпочтительно на диске, то есть ниже иерархии
/ var / log / journal
(которая создается при необходимости) с откатом к/ run / log / journal
(что является создается при необходимости), во время ранней загрузки и если диск недоступен для записи. "auto" аналогично "постоянному", но каталог/ var / log / journal
не создается при необходимости, так что его существование контролирует, где журнал данные идут. "none" выключает все хранилище, все полученные данные журнала будут упал. Перенаправление на другие цели, такие как консоль, ядро однако буфер журнала или сокет системного журнала по-прежнему будут работать. По умолчанию "auto".
Вкратце удалите комментарий и измените строку на:
Storage=persistent
$ journalctl --list-boots
-15 58a9e56135564cd8a52d547b19e76bf5 Fri 2018-02-02 18:34:35 MST—Fri 2018-02-02 23:07:14 M
-14 3514e056440341b1b6e5f03d109681bc Sat 2018-02-03 06:05:12 MST—Sat 2018-02-03 08:07:44 M
-13 0d1a32dc275348589f5ecdc72180c018 Sat 2018-02-03 08:08:05 MST—Sat 2018-02-03 08:08:34 M
-12 74159b593f3a401589ee6bd78e31684b Sat 2018-02-03 08:08:51 MST—Sun 2018-02-04 08:32:09 M
-11 4b394a9aad584ab2bfabe3b77eeed78f Sun 2018-02-04 08:32:26 MST—Mon 2018-02-05 16:54:02 M
-10 8e461ed2593c4fd896ca3b71eb3c0fba Mon 2018-02-05 16:54:34 MST—Tue 2018-02-06 03:54:30 M
-9 ec7ba0e4dfe241c0b9c978d278fcca6d Tue 2018-02-06 03:54:47 MST—Tue 2018-02-06 16:25:02 M
-8 b5c110267c214c38b63d0a367197d118 Tue 2018-02-06 16:25:19 MST—Thu 2018-02-08 16:49:03 M
-7 75c3b117ac6a4de984dc3ced15edb7f8 Thu 2018-02-08 16:49:22 MST—Fri 2018-02-09 03:51:09 M
-6 7338bd1007bc42dda5c8667eeefe1a59 Fri 2018-02-09 03:51:26 MST—Fri 2018-02-09 16:55:52 M
-5 4b6cd0121327454ca3db035c7ed42df6 Fri 2018-02-09 16:56:09 MST—Sat 2018-02-10 07:55:14 M
-4 0d56207f9ec0405ca3a3fd638334de2f Sat 2018-02-10 07:55:32 MST—Mon 2018-02-12 22:16:05 M
-3 0f230cc546fd4aec8f5233e0074ab3e1 Tue 2018-02-13 03:57:20 MST—Wed 2018-02-14 22:58:56 M
-2 c0d2c0141dd840cbab75d3c2254f8781 Wed 2018-02-14 22:59:13 MST—Sat 2018-02-17 22:46:14 M
-1 aafb2573a6374e019a7165cb8eee74a0 Sun 2018-02-18 06:02:03 MST—Mon 2018-02-19 04:16:36 M
0 8462f1969c6f4d61973e7e245014b846 Mon 2018-02-19 04:16:53 MST—Tue 2018-02-20 18:51:42 M
$ journalctl -b-1
-- Logs begin at Fri 2018-02-02 18:34:35 MST, end at Thu 2018-03-01 16:43:25 MST. --
Feb 28 20:03:15 alien systemd-journald[290]: Runtime journal (/run/log/journal/) is 8.0M,
Feb 28 20:03:15 alien kernel: Linux version 4.14.23-041423-generic (kernel@kathleen) (gcc
Feb 28 20:03:15 alien kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.14.23-041423-generi
Feb 28 20:03:15 alien kernel: KERNEL supported cpus:
Feb 28 20:03:15 alien kernel: Intel GenuineIntel
Feb 28 20:03:15 alien kernel: AMD AuthenticAMD
Feb 28 20:03:15 alien kernel: Centaur CentaurHauls
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registe
Feb 28 20:03:15 alien kernel: x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR'
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[3]: 832, xstate_sizes[3]: 64
Feb 28 20:03:15 alien kernel: x86/fpu: xstate_offset[4]: 896, xstate_sizes[4]: 64
Feb 28 20:03:15 alien kernel: x86/fpu: Enabled xstate features 0x1f, context size is 960 b
Feb 28 20:03:15 alien kernel: e820: BIOS-provided physical RAM map:
Feb 28 20:03:15 alien kernel: BIOS-e820: [mem 0x0000000000000000-0x0000000000057fff] usabl
lines 1-19
Обратите особое внимание на параметр -b-1
он отличается от других ссылок, которые вы можете увидеть. Из справочной страницы :
-b [ID] [± смещение], --boot = [ID] [± смещение]
Показать сообщения из определенной загрузки. Это добавит совпадение для «_BOOT_ID =».
Аргумент может быть пустым, и в этом случае будут показаны журналы для текущей загрузки.
Если идентификатор загрузки не указан, положительное смещение будет искать загрузку начиная с начала журнала, а смещение равное или меньше нуля будет искать загрузку, начиная с конца журнала. Таким образом, 1 означает первую загрузку в журнале в хронологическом порядке, 2 - вторую и так далее; в то время как -0 - последняя загрузка, -1 - предпоследняя загрузка и так далее. Пустое смещение эквивалентно указанию -0, за исключением случаев, когда текущая загрузка не является последней загрузкой (например, потому что --directory был указан для просмотра журналов с другой машины).
Затем время от времени с cron
или таймеры вы можете очистить старые журналы :
journalctl --vacuum-time=2d # keep last two days or
journalctl --vacuum-size=300M # keep last 300MB
Используйте journalctl -bX
, где x - это загрузка, на которую вы ссылаетесь, поэтому -b0
- это ваша фактическая загрузка, а -b-1
предварительная загрузка (работает только в том случае, если у вас есть папка / var / log / journal
, принадлежащая группе 'systemd-journal'). Не могу сказать, как далеко вы можете зайти, но эти двое точно.
Список доступных ботинок с
journalctl --list-boots
У меня была такая же проблема, и, по-видимому, я нашел ответ на irc-канале #ubuntu
.
По какой-то причине мне не хватало папки / var / log / journal
, доступной для группы для systemd-journal.
После добавив папку, я смог просмотреть журналы предыдущих загрузок через $ journalctl -b1
Шаги для выполнения решения из верхнего ответа здесь, от человека страница для systemd-journald:
mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
systemctl restart systemd-journald
Я сделал это как su
Ответ можно найти в man journald.conf
, особенно в опции Storage =
:
Управляет местом хранения данных журнала. Одно из значений «изменчивый», «постоянный», «автоматический» и «нет». [...] "auto" аналогично "постоянному", но каталог / var / log / journal не создается, если необходимо,так что его существование контролирует, куда идут данные журнала. [...] По умолчанию "авто".
Имейте в виду, что нет необходимости в ротации журналов или аналогичных методах, которые были обычными для старого демона syslog. Файл журнала по умолчанию настроен на рост до определенного размера, и старые записи журнала автоматически удаляются, когда файл журнала становится слишком большим.
В моей системе этот размер в настоящее время настроен как 120 МБ, вы можете изменить его в /etc/systemd/journald.conf
для модуля systemd-journald.service.