Que comandos para converter uma instalação do BIOS do Ubuntu em EFI / UEFI sem reparo de inicialização em hardware de inicialização única?

30

Instalação acidental do modo BIOS

Eu tenho hardware Intel de 64 bits com o utilitário de configuração UEFI. O Ubuntu 14.04.1 LTS foi instalado como o único sistema operacional na única unidade conectada. Acidentalmente o Ubuntu foi instalado no modo BIOS / CSM / legado.

Converter para UEFI

Mais tarde, ao aprender sobre o UEFI, o objetivo é alterar a instalação existente do Ubuntu para inicialização (mais rápida) via EFI / UEFI. Eu ainda quero ter algum tipo de - 2 segundos exibidos - menu de inicialização que me permite entrar no utilitário de configuração UEFI. Portanto, acho que preciso usar o Grub (não posso usar um stub de inicialização EFI) e o Suporte do GOP requer a versão do Grub 1,99 ou superior . Eu já particionei novamente a unidade usando um Live CD e inseri uma partição EFI de 200 MiB no início da unidade e marquei essa partição formatada como fat16 0xEF.

Antes:

# fdisk -l /dev/sda
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   108478463    54238208   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Depois:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      411648   108478463    54033408   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda3            2048      411647      204800   ef  EFI (FAT-12/16/32)
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Partition table entries are not in disk order

Sem reparo de inicialização, por favor

O wiki da comunidade Ubuntu sugere o uso do boot-repair para Convertendo o Ubuntu no modo EFI . Eu não quero usar uma GUI, ou instalar qualquer pacote extra, e eu não quero que nenhum dado seja acidentalmente enviado para pastebin.com e porque eu quero saber o que será alterado exatamente, eu não quero use Reparo de inicialização .

Sob o capô

Tentando descobrir o que o reparo de inicialização realmente faz, encontrei este snippet:

  

O Boot-Repair irá converter uma instalação do BIOS para o UEFI, desinstalando o grub-pc e instalando o grub-efi, se o gpt estiver particionado.

source: link

Comparação de instalação no modo UEFI

Uma instalação limpa do Ubuntu 14.04.1 no modo UEFI cria uma partição EFI formatada com 512 MiB Fat32. Essa partição contém um diretório /EFI/ubuntu , contendo 4 arquivos: grub.cfg , grubx64.efi , MokManager.efi e shimx64.efi . O grub.cfg contém:

search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

Search.fs_uuid aponta para o UUID da partição de instalação do Linux, nesta comparação a instalação do UEFI Linux está instalada partição / dev / sda2 (em oposição ao sda1 no modo de instalação do BIOS) .

Nenhum problema potencial de firmware da Asrock foi encontrado

Tendo o CSM ainda desativado no firmware e usando a instalação limpa do Ubuntu no modo UEFI. Redimensionando a partição EFI de 512 MiB para 200 MiB usando um Live CD e gparted resulta em sua formatação muda de FAT32 para FAT16. O firmware Asrock P1.50 (incorretamente chamado BIOS por AMI na mensagem de inicialização "BIOS date") ainda é capaz de inicializar no modo UEFI Ubuntu: UEFI + FAT16 = ok . Convertendo a tabela de partições de GPT para MBR (msdos) usando o mesmo comando de terminal CD vivo gdisk e seus comandos r g p w também resulta em um Ubuntu inicializável UEFI em uma unidade particionada MBR: UEFI + MBR = ok .

Pergunta

Isso significa que os únicos comandos que eu preciso executar - da instalação herdada do Ubuntu e nesta ordem - são:

# apt-get install grub-efi
# apt-get remove grub-pc

Ou é mais necessário ser feito?

    
por Pro Backup 10.08.2014 / 18:29

1 resposta

35

Inicie um Live CD do Ubuntu Linux (14.04) no modo UEFI. No caso de um dispositivo de inicialização USB, desative o "Fast Boot" no UEFI.

Abra uma janela de terminal ( Ctrl + Alt + T )

Para verificar se você está realmente em execução no modo UEFI, use este comando bash:

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

A saída resultante deve ser:

UEFI

Caso diga BIOS , reinicie seu firmware e corrija a preferência do dispositivo de inicialização.

Para fazer a conversão do BIOS para EFI / UEFI, digite estes comandos:

$ sudo mount /dev/sda1 /mnt
$ sudo mkdir -p /mnt/boot/efi
$ sudo mount /dev/sda3 /mnt/boot/efi
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /run /mnt/run
$ modprobe efivars
$ sudo chroot /mnt
# apt-get install grub-efi-amd64

The following extra packages will be installed:
  efibootmgr grub-efi-amd64-bin
The following packages will be removed:
  grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

Apesar de terminar na mensagem de erro:

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

a próxima reinicialização já mostra " ubuntu " no firmware do menu de opções de inicialização, e inicializa no console como antes, exceto por iniciar agora no modo efi:

$ dmesg | grep EFI
efi: EFI v2.31 by American Megatrends
fb0: EFI VGA frame buffer device
EFI Variables Facility v0.08 2004-May-17
fb: switching to inteldrmfb from EFI VGA

Caso algo dê errado, o link pode ajudar.

    
por Pro Backup 11.08.2014 / 00:45