LINUX.ORG.RU

Проблема c автовыбором root device

 , , ,


0

1

Здравствуйте. Решил установить gentoo на свой ноут. Система UEFI only (без CSM Support). Загрузчик - GRUB2.

Разделы:

  • /dev/sda1 - Linux swap
  • /dev/sda2 - Linux root partition (Linux filesystem) (где лежит система)
  • /dev/sda3 - EFI System (где лежит ядро и grub2)

К sda3 я применил команду mkdosfs -F 32 -n efi-boot /dev/sda3, т.к. grub2 грузит UEFI систему только с ФС FAT.

Скомпилировал ядро, переместил в /dev/sda3. Далее grub2-mkconfig -o /boot/grub/grub.cfg. Перезагружаю систему, но вот проблема. Скрин! (Cannot open root device «sda2» or ...) При попытке указать в grub.cfg root=UUID=... , проблема не исчезает, просто заменяется sda2 на null на экране.

Далее я всёже создал initramfs и скопировал в sda3, также добавил initrd параметр в grub.cfg. Система всёже начала грузиться, но мне надо было вручную написать откуда грузится:

  • Could not find the root block device in .
  • root block device() :: /dev/sda2 (это я вручную ввёл).

Поэтому я могу сделать вывод что дело не в ядре. Как мне решить свою проблему? Я хочу запускать свою систему без initramfs или хотебы без ручного ввода /dev/sda2 в случае с initramfs.

″root=UUID=″ это обрабатывает initramfs и он должен быть правильным (уметь делать это). Ядро не умеет искать root-раздел по UUID (идентификатору ФС), только по ″root=PARTUUID″ (идентификатору GPT раздела).

или хотебы без ручного ввода /dev/sda2 в случае с initramfs

Ну тогда скажите чем вы создавали initramfs и может вам подскажут опции, включающие в него поиск root-ФС по UUID и по LABEL.

mky ★★★★★ ()
Ответ на: комментарий от nicklan

google говорит, что genkernel'у нужно добавить параметр ″--disklabel″.

mky ★★★★★ ()
Ответ на: комментарий от nicklan

А при загруженном ядре с initramfs с ручным вводом /dev/sda2 в /proc/cmdline есть этот root=UUID=... ? А то может груб «химичит» и не предаёт ядру нужные параметры.

mky ★★★★★ ()
Ответ на: комментарий от nicklan

Может я отстал от жизни, и ″/proc/cmdline″ больше не нужен, но вроде как в нём должны быть все параметры ядра. У вас случаем не установлен в конфиге GRUB'а парамерт ″GRUB_DISABLE_LINUX_UUID=true″?

mky ★★★★★ ()
Ответ на: комментарий от mky

Я устанавливал gentoo с SystemRescueCD. Там в файле /proc/cmdline строка: BOOT_IMAGE=/isolinux/rescue64. Параметра ″GRUB_DISABLE_LINUX_UUID=true″ в grub.cfg нету.

nicklan ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.