Смонтировать корневую файловую систему из initramfs

Смонтировать корневую файловую систему из initramfs

Это обычный сценарий. По какой-то причине initramfs (OpenSUSE, если это имеет значение) не смог найти корневую файловую систему, поэтому он перебрасывает вас в спасательную оболочку. Хотя я прекрасно знаю, какое устройство нужно смонтировать. Мой вопрос:

Какова правильная процедура монтирования корневой файловой системы и продолжения последовательности загрузки?

Вероятно, это всеточкаспасательной консоли. И все же, похоже, никто не задокументировал, как на самом деле это делается.

Очевидно, я могу смонтировать корневую файловую систему где-нибудь. Но как мне сделать так, чтобыкореньдерева файловой системы? И теперь мне продолжить обычный процесс загрузки после этого? (Я думал, что просто выход из оболочки сделает это... но это не так.) Что именно вам нужно смонтировать, прежде чем продолжить, и как это сделать?

решение1

exec switch_root /mnt/root /sbin/init

https://wiki.gentoo.org/wiki/Custom_Initramfs#Init

решение2

Это зависит от типа проблемы, если проблема заключалась в том, что образ initramfs сам по себе был сломан, то вам нужно будет его перегенерировать (запустить update-initramfs), чтобы исправить ситуацию. Помните, что файловая система initramfs — это файловая система RAM, поэтому, чтобы что-то исправить, вам нужно исправить сжатый образ initramfs и/или исправить корневую файловую систему.

Я использовал следующую процедуру на зашифрованной с помощью LUKS системе Ubuntu, чтобы возобновить загрузку, прерванную из-за плохого crypttab.

Сначала я расшифровал раздел

cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

Обратите внимание, что device_cryptэто не случайное имя. Оно должно соответствовать имени, которое обычно используется при монтировании вашей системы (partition + _crypt, похоже, является стандартным).

Далее вам необходимо активировать группы томов на этом теперь уже расшифрованном разделе.

vgchange -ay

Теперь вы можете попробовать смонтировать файловые системы /, /boot, proc, swap и т. д. и запустить все таким образом.

Хотя в моем случае все, что мне нужно было сделать, это ввести exit и initramfs увидел логические тома, сидящие там, и с радостью возобновил загрузку. В этот момент было легко исправить повреждение и запуститьupdate-initramfs -u

решение3

Просто запустите fsckкоманду без параметров и initramfsперезагрузите компьютер.

например: корневой раздел — этоsda3

fsck /dev/sda3

решение4

обычная процедура -

  1. смонтировать /dev/sdX /mnt
  2. исправить проблему на /mnt
  3. перезагрузить

Вы можете захотеть

  1. смонтировать /dev/sdX /mnt
  2. исправить /mnt
  3. размонтировать /mnt
  4. смонтировать /dev/sdX /
  5. завершить загрузку вручную

Это не рекомендуется, вам придется делать это при каждой загрузке. В производственной среде вы не можете быть уверены, что ручная загрузка будет следовать тем же шагам, что и автоматическая.

Однако в чрезвычайной ситуации с критически важными данными шаг 5 обычно сводится к следующему:

  • 5.1 настройка сети
  • 5.2 скопировать важный файл в безопасное место

Связанный контент