Как сделать Я исправляю initramfs, который не находит root?

Недавно у меня была плохая установка Ubuntu 19.10 (и последовательные чистые установки дают тот же эффект). Я могу загрузиться в GRUB без проблем, но оттуда я получаю только фиолетовый экран при попытке загрузить саму Ubuntu.

Я пробовал несколько решений, найденных в другом месте, в том числе пытался исправить это через Live USB, но безуспешно.

Самое дальнее, что я получил, - это указать, что root, Linux и initrd находятся и сообщают ему о загрузке.

Но по какой-то причине initramfs сообщает мне: «Корневое устройство не указано. Аргументы загрузки должны включать параметр root =».

Я уже сказал ему, что это был за root, что дает?

(Все еще немного Linux n00b, потерпите меня, пожалуйста)

0
задан 20 February 2020 в 21:15

1 ответ

Я следовал этому конкретному руководству, и то, что исправило это для меня, было выполнено следующими инструкциями:

  1. Узнайте, какой из ваших разделов содержит вашу систему. Вы можете сделать это, набрав ls, чтобы увидеть все ваши диски, а затем ls (hdX,gptX), чтобы увидеть содержимое одного из разделов.
  2. После того, как вы определили правильный раздел (мой был (hd3,gpt3)), вам нужно убедиться, что ваш префикс установлен правильно. Вы можете сделать это, набрав set, чтобы отобразить все установленные переменные. В учебнике показан пример, когда префикс был установлен неправильно.
  3. Если ваш раздел был установлен неправильно, задайте правильный раздел с помощью set prefix=(hd3,gpt3)/boot/grub. Используйте данные своего раздела.
  4. Затем установите корневое значение с помощью set root=(hd3,gpt3). Используйте значения вашего раздела.
  5. insmod normal — не уверен, что это делает, но в его туториале говорится, что он загружает модуль.
  6. Следующая часть — linux /boot/vmlinuz-XXXXXXXXX root=/dev/sdd3 ro в зависимости от того, что установлено на вашем компьютере.

⚠️ Значение, которое вы должны установить для root, зависит от того, на какой раздел вашего жесткого диска установлена ​​ваша операционная система.

В моем случае я разрезал свой жесткий диск на 5 частей и использовал части 3, 4 и 5 для своей машины с Ubuntu. В части 3 была операционная система, в части 4 — мои файлы подкачки, а в части 5 — данные моего жесткого диска.(Если вы уже были в сеансе рабочего стола, вы можете проверить это, используя lsblk, чтобы увидеть, как файлы были разбиты на разделы и какие размеры им были присвоены).

Я использовал sdd3, потому что раздел с моей ОС находится на третьем разделе моего диска sdd. Кажется, это недостающая часть, из-за которой я попал в initramfs с неуказанным корнем.

  1. Затем выполните initrd /boot/initrd-XXXXXXX.
  2. Наконец, boot.

Если есть другие специалисты по unix/linux/ubuntu, которые могли бы внести больше ясности в то, что я, возможно, не совсем ясно объяснил, пожалуйста, отредактируйте это сообщение.

2
ответ дан 13 August 2020 в 02:08

Другие вопросы по тегам:

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