Как описано в Arch Wiki, можно создать загрузочную запись UEFI, используя efibootmgr, например:

efibootmgr -d /dev/sdX -p Y -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 rw initrd=/initramfs-linux.img"

С помощью efibootmgr --verbose я могу отображать информацию о существующих загрузочных записях. Однако некоторые детали, такие как параметры ядра, переданные в первой команде, не отображаются. Как я могу показать это (не обязательно с efibootmgr)?

1 ответ1

1

Параметры ядра показаны (или должны быть показаны); просто они конвертируются в UTF-16 при создании записи, а затем отображаются в двухсимвольной форме с помощью «.» символы между записями, когда вы используете efibootmgr -v . Например:

$ sudo efibootmgr -d /dev/sda -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 rw initrd=/initramfs-linux.img"
BootCurrent: 0001
BootOrder: 0003,0000,0001,0002
Boot0000* EFI DVD/CDROM
Boot0001* EFI Hard Drive
Boot0002* EFI Internal Shell
Boot0003* Arch Linux
$ sudo efibootmgr -v
BootCurrent: 0001
BootOrder: 0003,0000,0001,0002
Boot0000* EFI DVD/CDROM PciRoot(0x0)/Pci(0x1,0x1)/Ata(1,0,0)
Boot0001* EFI Hard Drive    PciRoot(0x0)/Pci(0xd,0x0)/Sata(0,0,0)
Boot0002* EFI Internal Shell    MemoryMapped(11,0x6584f000,0x65bbefff)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)
Boot0003* Arch Linux    HD(1,GPT,e0e491c1-116a-433e-9d74-71ca4b6fbac6,0x800,0x100000)/File(\vmlinuz-linux)r.o.o.t.=./.d.e.v./.s.d.a.2. .r.w. .i.n.i.t.r.d.=./.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x...i.m.g.

Идентификаторы разделов (-d и -p) преобразуются в идентификаторы EFI, но в остальном все равно должно быть показано.

Если вы видите что-то значительно другое, то это может быть ошибка в вашей конкретной версии efibootmgr (я использовал Ubuntu 16.04 и ее efibootmgr 0.12 для этого теста) или, возможно, ошибка в вашей прошивке, которая приводит к тому, что данные сбрасываются или не передаются вернуться к efibootmgr .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .