openSUSE 13.1 em UEFI [Dica]
Publicado por rafael oliveira em 13/10/2014
Pessoal, uma rápida dica para quem está usando openSUSE 13.1 em UEFI.
Após atualizar meu sistema e dá reboot, recebi uma mensagem informando que não havia dispositivo de boot. Depois de bater muito a cabeça, descobri uma forma de resolver e também vi que a entrada referente ao meu bootloader (opensuseHDD500) no firmware UEFI, havia sido apagada (motivo pelo qual ainda não sei).
Toda distro GNU/Linux que suporte UEFI em sua instalação ou após, deve ser criada uma partição com file system em FAT e com ponto de montagem em /boot/efi, para que o sistema coloque o GRUB/LILO que termina com .efi (ex.: no openSUSE = /boot/efi/EFI/opensuse/grubx64.efi), assim como arquivos relacionados ao security boot, se habilitado (ex.: shim.efi).
* Importante fazer backup com o comando: dd
# dd if=/dev/sdXY of=backup_efi.img
x :: HDD que está a partição com o /boot/efi.
Y :: número da partição com ponto de montagem em /boot/efi.
1. Para resolver o problema citado acima, dê boot com o CD/DVD do openSUSE e escolha a opção de rescue.
2. Monte a partição que tem file system FAT e verifique se os arquivos do grubx64.efi e os demais constam no diretório, caso não esteja, use a imagem de backup e restaure sua partição:
# dd if=backup_efi.img of=/dev/sdXY
3. Após isso, vamos criar a entrada do nosso boot EFI que foi removido do UEFI firmware:
# efibootmgr -c -d /dev/sdX -p Y -L "opensuse" -l "\EFI\opensuse\grubx64.efi"
-c :: cria nova VAR bootnum;
-d :: disco com partição FAT para EFI;
-p :: partição que tem como ponto de montagem /boot/efi;
-l :: caminho de seu GRUB EFI. Obs.: as barras são para o lado contrário mesmo, não está errado!
E verifique se a entrada foi criada e consta no bootloader.
5. Altere a ordem de boot:
# efibootmgr -o 0005,0003 ....
Obs.: os valores de -o são hexadecimais e você deve colocar a entrada referente ao bootnum criado de nome opensuse como 1º na ordem de boot, e após isso, execute mais uma vez efibootmgr -v e observe o BOOTORDER.