Minha placa-mãe é o modelo a seguir com as últimas novidades: link
Eu segui as instruções padrão do Arch Linux para configurar o EFI para inicializar usando o kernel como um EFISTUB. Isso é algo que funcionou bem para mim por mais de um ano no mesmo hardware, mas quando eu tentei mudar meus parâmetros do kernel eu parecia ter quebrado alguma coisa. Nenhuma das abordagens usuais funcionou.
Primeiro, tentei usar o efibootmgr com o seguinte comando:
efibootmgr -d /dev/sda -p 1 -b 0000 -g -c -l \vmlinuz-linux -L "Linux" -u "root=/dev/mapper/default-root rw initrd=initramfs-linux.img"
isto adicionou a seguinte entrada revelada usando efibootmgr -v
Boot0000* Linux HD(1,GPT,76dd039b-764a-4b07-81ed-61921dfdab62,0x800,0x800)/File(\vmlinuz-linux)r.o.o.t.=./.d.e.v./.m.a.p.p.e.r./.d.e.f.a.u.l.t.-.r.o.o.t. .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.
Quando tento inicializar essa entrada, recebo um erro no nível do BIOS, que nenhum dispositivo inicializável pode ser encontrado.
Em seguida, tentei usar a ferramenta bcfg no shell UEFI v2 do live CD.
Para isso eu tive que criar um arquivo de texto do kernel-opts em /boot , portanto eu executei o seguinte.
echo "boot=/dev/mapper/default-root rw initrd=initramfs-linux.img > /boot/kernel-opts
Eu então inicializei o UEFI Shell v2 do live CD e no shell eu executei o seguinte.
bcfg boot add 0 fs1:\vmlinuz-linux "Arch Linux"
bcfg boot -opt 0 fs1:\kernel-opts
Usando efibootmgr -v I novamente inspecionei a nova entrada.
Boot0000* Arch Linux PciRoot(0x0)/Pci(0x4,0x0)/Pci(0x0,0x0)/Sata(0,65535,0)/HD(2,GPT,5cec78ae-39af-4434-9b57-9c08b8032147,0x1000,0x200000)/File(\vmlinuz-linux)root=/dev/mapper/default-root rw initrd=\initramfs-linux.img
Desta vez, quando a inicialização do dispositivo de inicialização é detectada, mas ocorre um pânico no kernel quando ele não consegue encontrar a raiz fs.
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.11.3-1-ARCH #1
Eu tinha concluído que o bcfg estava obtendo a primeira parte correta, a localização do kernel, mas os argumentos estavam incorretos, especificamente porque eles não estavam codificados no unicode. Eu tentei várias variações de argumentos para cada ferramenta, mas não consegui usar a ferramenta Ether para funcionar como está.