Моя система не загружается

Это тоже должно сработать, и немного более читабельно (по моему мнению, основанному на awk):

 awk '{ if ( NR == 1) { printf("%s",$0); } else { printf("\n%s", $0); }}' file
0
14.08.2018, 05:19
2 ответа

На жаргоне systemd, изоляция юнита — это немного особая форма запуска или активации его, что в основном может (хотя я приеду обратно к этому )можно рассматривать как тождественное активации. systemd при начальной загрузке изолирует одну из трех целей в зависимости от того, запускается ли система в аварийном, аварийном или обычном режиме. Первые два определяются -bи -sв командной строке ядра, которые передаются первому процессу и изолируют emergency.targetи rescue.targetсоответственно. Нормальный режим изолирует блок default.target, который является псевдонимом (, установленным с помощьюsystemctl set-default)для какой-либо другой конкретной цели, такой как graphical.targetили multi-user.target. Неспособность изолировать первую единицу (, из которой исходит все остальное ), является довольно серьезной ошибкой, и когда это происходит, systemd выдает сообщение и зависает.

Необычно то, что default.targetнельзя изолировать, и это намекает либо на какую-то серьезную неправильную конфигурацию (, например человека, который замаскировал sysinit.target), либо на весьма необычную настройку (, такую ​​как нарушение одного из systemd предпосылки, такие как /usrи /etc, являющиеся той же файловой системой, что и/)или, по крайней мере, смонтированной вместе с ней. Диагностика этого дополнительно включает в себя вышеупомянутые аварийные и спасательные режимы. Просто загрузитесь в эти режимы вместо обычного режима, а затем вручную запустите модуль default.targetи посмотрите, что происходит, какие возникают ошибки и что есть в логах. Именно здесь важна разница между изоляцией и активацией. Необходимо не изолировать default.target, так как это отключает сеанс входа в аварийный/спасательный режим как часть изоляции устройства. Нужно начать его.

Кажется, у меня остался лишний абзац.

Дополнительная литература

1
28.01.2020, 02:31

Чтобы понять, почему моя система не загружалась, я в основном последовал совету @CodyCreager. Я добавил --log-level=debugи --log-target=consoleк exec switch_root..., что дало ожидаемый эффект. Я не знаю, как добиться такого же эффекта, как добавление systemd.journald.forward_to_console=1к аргументам ядра. Но я получил достаточно информации и без этого.

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

1
28.01.2020, 02:31

Теги

Похожие вопросы