Как отформатировать команду efibootmgr для создания записи EFI stub для корня LVM?

Вопрос или проблема

Мои текущие разделы и файловые системы следующие

  • /dev/nvme0n1 GPT
  • /dev/nvme0n1p1 EFI FAT32 смонтирован в /mnt/boot ;
  • /dev/nvme0n1p2 SWAP ;
  • /dev/nvme0n1p3 ->
    • VolGroup0-lv_root ext4 смонтирован в /mnt,
    • VolGroup0-lv_home ext4

Используя пример из вики Arch, моя лучшая догадка сейчас:

efibootmgr -c \
           -d /dev/nvme0n1 -p 1 \
           -L "Arch Linux" \
           -l /vmlinuz-linux \
           -u 'root=UUID=(volume lv_root) resume=UUID=(раздел swap) rootflags=rw loglevel=3 quiet initrd=\initramfs-linux.img'

Попытка этого загрузочного ввода и перезагрузка приводит к ошибке:

не удается смонтировать UUID реального корня

Ответ или решение

Для корректного создания записи загрузчика EFI с помощью команды efibootmgr для корневой файловой системы, расположенной на LVM (Logical Volume Management), важно точно указать все параметры, чтобы избежать ошибок, таких как "unable to mount UUID real root". Давайте подробно разберем, как правильно сформировать команду и какие детали нужно учесть.

Подготовка к использованию efibootmgr

Перед запуском команды efibootmgr, убедитесь, что у вас есть доступ к следующей информации:

  1. UUID корневого раздела (Volume Group lv_root).
  2. UUID раздела SWAP.

Вы можете получить UUID разделов с помощью команды:

blkid

Обратите внимание на вывод команды и запишите нужные UUID для дальнейшего использования.

Формирование команды efibootmgr

Исходя из вашего текущего окружения и структуры разделов, команда может выглядеть так:

efibootmgr -c \
           -d /dev/nvme0n1 -p 1 \
           -L "Arch Linux" \
           -l /vmlinuz-linux \
           -u 'root=UUID=ваш_UUID_lv_root resume=UUID=ваш_UUID_swap rootflags=rw loglevel=3 quiet initrd=\initramfs-linux.img'

Пояснение каждого параметра

  • -c: Создает новую запись в загрузочном меню EFI.
  • -d /dev/nvme0n1: Указывает, что мы работаем с диском /dev/nvme0n1.
  • -p 1: Указывает, что EFI раздел находится на первом разделе этого диска (EFI FAT32).
  • -L "Arch Linux": Это метка, которая будет отображаться в меню загрузки.
  • -l /vmlinuz-linux: Путь к файлу ядра.
  • -u '...': Параметры для передачи ядру.

В параметре root= обязательно укажите правильный UUID корневого раздела, а в resume= укажите UUID для SWAP.

Возможные ошибки и их решение

Если вы столкнулись с ошибкой "unable to mount UUID real root", это может быть вызвано следующими причинами:

  1. Неправильный UUID: Убедитесь, что указанные UUID актуальны и правильно скопированы. Вы можете перепроверить их с помощью blkid.

  2. Отсутствие поддержки LVM или модули: Убедитесь, что ваше ядро поддерживает LVM. Иногда необходимо добавить модули в initramfs. Это можно сделать, добавив соответствующие модули в конфигурационный файл mkinitcpio:

    echo "lvm2" >> /etc/mkinitcpio.conf
    mkinitcpio -P
  3. Проблемы с конфигурацией GRUB: Если у вас установлен GRUB в EFI, вы можете попробовать его переустановить или сделать конфигурацию.

Заключение

Следуя вышеприведенным шагам, вы сможете корректно сформировать команду для создания EFI-записи, что позволит вашему компьютеру успешно загружать операционную систему с корневым разделом на LVM. Не забудьте перезагрузить систему после выполнения всех операций и выбранного движения для проверки.

Оцените материал
Добавить комментарий

Капча загружается...