Migrar do MBR para o UEFI com uma partição do sistema criptografada

1

Eu tive a ideia de converter uma instalação do openSUSE ao vivo e em execução do MBR para GPT / UEFI. Eu segui este tutorial e converti com sucesso a manutenção de disco partições e dados associados. Minha configuração original foi a seguinte:

/dev/sda1 ext4 /boot
/dev/sda2 LVM
    /dev/root/root ext4 /
    /dev/root/home ext4 /home

Depois de converter disco em GPT, como eu suspeitava, o Linux não inicializou. O BIOS não me mostrou a opção de inicializar o MBR Linux, que agora mora em um disco GPT. OK, é hora de configurar grub2-efi .

Eu preciso instalar a partição EFI de grub2efi on /dev/sda , que tem 156 MB de tamanho. Primeiro, convertei (leia "arquivos de backup, formatados e restaurados") /boot em VFAT conforme exigido pela EFI. Também verifiquei duas vezes se o tipo de partição é Inicialização EFI. Eu corri um LiveSUSE ao vivo para montar & chroot na partição raiz

# cryptsetup luksOpen /dev/sda2 root
# vgchange -a y suse
# mkdir /mnt/suse
# mount /dev/suse/root /mnt/suse
# mount /dev/suse/home /mnt/suse/home
# mount /dev/sda1 /mnt/suse/boot
# for i in /dev /dev/pts /sys /proc; do mount -B $i /mnt/suse$i; done
# chroot /mnt/suse

Eu tentei com a configuração do Carregador de Inicialização do YaST e depois com grub2-efi-install , mas o resultado é sempre o seguinte: quando eu inicio o EFI no Linux, obtenho o console de resgate do GRUB com erro "sistema de arquivos desconhecido".

Minha configuração atual de partições é a seguinte

/dev/sda1 vfat /boot #only this changed
/dev/sda2 LVM
    /dev/root/root ext4 /
    /dev/root/home ext4 /home

Pergunta direta: como faço o grub inicializar a partição do sistema criptografada?

    
por usr-local-ΕΨΗΕΛΩΝ 25.04.2013 / 00:55

1 resposta

1

Encontrou a solução: split /boot em dois

  1. Backup de todos os arquivos /boot
  2. Remoção da partição /dev/sda1 (no meu caso, eram 156MB)
  3. Criei uma nova partição /dev/sda1 com o tipo de partição EFI-boot, formatada com VFAT, montada em / boot / efi, tamanho 50MB no meu caso
  4. Criei uma nova partição /dev/sda5 (o YaST atribuiu esse número para mim, deve ser um sda2) entre o recém-criado /boot/efi e a partição do sistema, montado como /boot e formatado ext4
  5. Arquivos /boot restaurados do backup
  6. Grub configurado para retomar a partir de sda5 em vez de sda2
  7. Ran mkinitrd e grub2-efi-install
  8. Reinicializado

Agora eu tenho um laptop full-UEFI funcionando quase perfeitamente (o Windows já é inicializado pelo UEFI). Quase porque o grub está perdendo o tema.

Explicação: por que partições separadas?

UEFI e GRUB são muito rigorosos: a partição não criptografada EFI é necessária para carregar o GRUB, o carregador de inicialização, na memória.

Se eu não tivesse um volume de sistema criptografado, poderia facilmente pular a segunda parte. Mas a partição EFI só contém o bootloader, que não é o mesmo que o kernel . Para carregar o kernel, precisamos de uma partição não criptografada, outra não criptografada, que armazene o arquivo initrd que é carregado pelo grub.

O conceito é simples: o grub dispara a partir da partição EFI e imediatamente procura o initrd na partição /boot , que eventualmente descobre que o volume do sistema está criptografado e solicita a (s) chave (s)

    
por 25.04.2013 / 12:52