Загрузка Linux напрямую, обходя GRUB.

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

Я пытаюсь загрузить Linux с UEFI без GRUB.

Я думаю о команде

sudo efibootmgr -d /dev/sda -p 1 -c -L "Boot Linux Without GRUB" -l /EFI/Debian/vmlinuz-6.1.0-28-amd64 -u "cryptdevice=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:/dev/mapper/<mappedname> root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw initrd=\\EFI\\Debian\\initrd.img-6.1.0-28-amd64"

У меня есть незашифрованный загрузочный раздел и зашифрованный корневой раздел. Что указать в качестве UUID для cryptdevice и root? Является ли UUID для cryptdevice UUID зашифрованного раздела, а root UUID – одного из незашифрованного корневого раздела или наоборот?

Вывод lsblk:

NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda              8:0    0   xxx  0 disk  
├─sda1           8:1    0   xxx  0 part  /boot/efi
├─sda2           8:2    0   xxx  0 part  /boot
├─sda3           8:3    0   xxx  0 part  
│ └─sda3_crypt 254:0    0   xxx  0 crypt /
└─sda4           8:4    0   xxx  0 part  
  └─sda4_crypt 254:1    0   xxx  0 crypt /home

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

Чтобы загрузить Linux напрямую через UEFI, минуя GRUB, вам необходимо корректно настроить параметры для вашего загрузчика. Вы уже упомянули использование efibootmgr, чтобы добавить новую запись загрузки в NVRAM вашего компьютера. Давайте разберем, как сделать это правильно и что требуется для успешной загрузки Linux без GRUB.

Анализ командной строки

Команда, которую вы пытаетесь выполнить, выглядит следующим образом:

sudo efibootmgr -d /dev/sda -p 1 -c -L "Boot Linux Without GRUB" -l /EFI/Debian/vmlinuz-6.1.0-28-amd64 -u "cryptdevice=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:/dev/mapper/<mappedname> root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw initrd=\\EFI\\Debian\\initrd.img-6.1.0-28-amd64"

Параметры efibootmgr

  1. -d /dev/sda: Определяет диск, на котором находится ваш ESP (EFI System Partition).
  2. -p 1: Указывает на номер раздела диска, где размещен ESP.
  3. -c: Создает новую запись загрузки.
  4. -L "Boot Linux Without GRUB": Назначает имя для вашей новой записи.
  5. -l /EFI/Debian/vmlinuz-6.1.0-28-amd64: Указывает на ядро Linux, которое будет загружаться.
  6. -u: Здесь вы передаете параметры командной строки для ядра.

Указание UUID

Ваша ОС имеет нешифрованный раздел /boot и зашифрованный root-раздел. Следует правильно установить UUID для cryptdevice и root:

  • cryptdevice: UUID относится к зашифрованному корневому разделу (который на вашем диске – это /dev/sda3).
  • root: UUID относится к расшифрованному корневому разделу, который после расшифровки вами монтируется в / (обычно это указанная цель, например /dev/mapper/sda3_crypt).

Определение UUID

Для проверки сведений о UUID используйте команду blkid или lsblk -f. Это поможет вам точно идентифицировать UUID каждого из ваших разделов.

Дальнейшие действия

После правильной установки этих параметров и создания записи загрузки, вам стоит убедиться, что:

  • У вас есть доступ к шифровке LUKS через initrd-образ.
  • Ядро способно найти и расшифровать ваш root-раздел.

Не забудьте протестировать ваши изменения для их применимости. Если всё сделано верно, вы будете загружаться напрямую с использованием указанного ядра и без использования GRUB.

Следуя этим указаниям, вы обеспечите корректную загрузку вашей системы и научитесь грамотно конфигурировать параметры загрузки в Linux через UEFI.

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

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