Вопрос или проблема
Я пытаюсь загрузить 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
-d /dev/sda
: Определяет диск, на котором находится ваш ESP (EFI System Partition).-p 1
: Указывает на номер раздела диска, где размещен ESP.-c
: Создает новую запись загрузки.-L "Boot Linux Without GRUB"
: Назначает имя для вашей новой записи.-l /EFI/Debian/vmlinuz-6.1.0-28-amd64
: Указывает на ядро Linux, которое будет загружаться.-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.