Como criar uma partição de sistema EFI?

34

TL; DR Como crio uma partição do sistema EFI do zero? Como faço para colocar o firmware EFI nele depois que ele é criado?

Versão longa

Eu tenho laptop Toshiba T430. Eu o recebi com o Windows 7 instalado (mas acho que originalmente foi enviado com o Windows 8). Eu instalei o Ubuntu nele, mas excluí algumas partições do disco para acabar com o Windows e ter apenas o Ubuntu. Entre as partições excluídas estava a partição do sistema EFI. Eu descobri que o Ubuntu agora inicializa no modo Legado (e não no UEFI). Estou tentando seguir este guia para converter minha instalação do Ubuntu do Legacy para UEFI. O problema - como não há partição EFI sempre que escolho o BIOS para inicializar usando UEFI, não consigo inicializar. Isso conta não apenas para o disco rígido, mas também para USB e DVD. Eu acho que isso é lógico - ele espera uma partição EFI e, como não pode encontrá-la, não pode continuar inicializando mais, seja de HDD ou DVD. Então, como recriar a partição EFI?

O guia acima diz:

Criando uma partição EFI

Se você estiver particionando manualmente seu disco no instalador do Ubuntu, precisará se certificar de ter uma partição EFI configurada.

  1. Se o seu disco já contiver uma partição EFI (por exemplo, se o seu computador tiver o Windows8 pré-instalado), ele poderá ser usado também para o Ubuntu. Não o formate. É altamente recomendável ter apenas 1 partição EFI por disco.

  2. Uma partição EFI pode ser criada por meio de uma versão recente do GParted (a versão Gparted incluída no disco 12.04 está OK) e deve ter os seguintes atributos:

    1. Ponto de montagem: / boot / efi (observação: não é necessário definir esse ponto de montagem ao usar o particionamento manual, o instalador do Ubuntu o detectará automaticamente)

    2. Tamanho: mínimo 100Mib. 200MiB recomendado.

    3. Tipo: FAT32

    4. Outro: precisa de um sinalizador de "inicialização".

Eu tive alguns problemas ao criar esta partição:

  • Eu inicializo a partir de um DVD ao vivo do Ubuntu, abro o GParted, crio uma partição de 200 MB e a formato para FAT32.
  • No GParted, não consigo definir o ponto de montagem e, portanto, não consigo definir o bootflag.
  • Não defini o ponto de montagem, /etc/fstabpois é um CD ao vivo e o fstab parecia muito diferente do que eu esperava em comparação com uma inicialização normal. Enfim, eu simplesmente não sabia quais valores definir.

Inicializei novamente através do DVD ao vivo e, em seguida, escolhi instalar o Ubuntu. Criei uma partição com os critérios mencionados - ponto de montagem, 200 MB, FAT32, sinalizador de inicialização.

No entanto, continuo tendo esse problema e suponho que seja porque nessa partição não há firmware EFI, é apenas uma partição vazia, adequada para o firmware EFI.

Então, novamente, como crio uma partição EFI, que possui o software EFI, para que o laptop possa inicializar novamente no modo UEFI?

SOLUÇÃO Obrigado a ambos pelas respostas. O que fiz foi instalar o Windows 8.1 a partir do zero, formatando o disco inteiro e instalando (desta vez corretamente) o Ubuntu próximo a ele. Estas são minhas partições agora:

Partições de disco

Durante a instalação do Win 8, assim que eu excluí todas as partições existentes e deixei o Windows reformatar o disco, ele criou automaticamente, além da partição de instalação principal, três partições adicionais, a saber 1, 2, 3. Agora, depois de ter um ESP adequado , Eu poderia inicializar o HDD ou o DVD no modo UEFI.

Você diz que o ESP não armazena nenhuma informação por padrão, mas acho que quando um sistema operacional é instalado, ele coloca algumas informações lá. Portanto, acho que meu caso foi o seguinte: eu o havia apagado e, embora o tenha recriado, ele não foi preenchido com nenhuma informação, pois a criação do ESP foi feita após a instalação do sistema operacional. Perdi a instalação do Ubuntu (não é grande coisa, era uma instalação nova de qualquer maneira), mas acho que, para salvá-lo, eu deveria ter seguido os conselhos de grawity . Não tive tempo, porém, mas felizmente está tudo bem agora.

Alex Popov
fonte
1
O ESP armazena carregadores de inicialização. Portanto, se você tiver uma instalação existente e excluir o ESP, perderá a capacidade de inicializar o computador. Na verdade, esse tipo de problema é bastante simples de corrigir - se você souber!
Rod Smith
Bem era tudo o que a minha pergunta era sobre :)
Alex Popov

Respostas:

37

Primeiro, você não define o ponto de montagem no GParted; isso é feito manualmente (e temporariamente) por meio do mountcomando ou permanentemente, editando /etc/fstab. Portanto, sua preocupação com esse problema é equivocada.

Segundo, uma EFI System Partition (ESP) é simplesmente uma partição FAT com um código de tipo específico (a saber, C12A7328-F81F-11D2-BA4B-00A0C93EC93B em discos GPT) definido. Observe que o ponto de montagem /etc/fstabnão faz parte da definição do ESP; é apenas convencional (mas não obrigatório) no Linux acessar o ESP, montando-o em /boot/efi, normalmente por meio de uma /etc/fstabentrada. Como você define o código de tipo varia de um programa para outro:

  • Em gdisk, você define o código do tipo para EF00. ( gdiskusa códigos de tipo de dois bytes que se expandem para os códigos de tipo reais no disco; "EF00" é apenas um mnemônico para "C12A7328-F81F-11D2-BA4B-00A0C93EC93B".)
  • No GParted ou parted, você define o "sinalizador de inicialização". Observe, no entanto, que isso funciona apenas em discos GPT; você não pode definir o código do tipo ESP nos discos MBR com esses programas. (Normalmente, isso não é grande coisa, já que os computadores baseados em EFI geralmente inicializam a partir de discos GPT.)
  • No instalador do Ubuntu, você identifica a partição como uma "partição de inicialização EFI". Em seguida, define o código do tipo e será configurado /etc/fstabadequadamente.
  • Nas versões recentes do Linux fdisk, você define o tipo de partição pelo seu número (1 para "EFI System" em discos GPT ou 0xEF em discos MBR) ou inserindo o código de tipo completo nos discos GPT.

Terceiro, o ESP não suporta firmware - o firmware é, por definição, armazenado em chips na placa-mãe. Assim, seu esforço para instalar o firmware EFI no ESP é uma loucura. (Existem duas exceções a essa regra. Primeiro, você pode armazenar um arquivo de firmware no ESP para atualizar o firmware no seu computador. Porém, é apenas uma área de espera temporária. Segundo, o carregador de inicialização DUET ou Clover , o EFI é carregado como um programa regular, normalmente a partir do ESP Estas ferramentas são BIOS carregadores de boot, porém, que permitem que os computadores BIOS somente para arrancar como se fossem máquinas EFI;. eles são nãonormalmente usado em computadores com firmware EFI, que você afirma ter. Tecnicamente, nem DUET nem Clover são firmware; são carregadores de inicialização do BIOS que fazem o mesmo trabalho que o EFI.)

Finalmente, posso pensar em várias causas possíveis para o seu problema, mas sem mais informações, eu precisaria escrever meio livro para cobrir todas elas. Eu recomendo que você execute o script de informações de inicialização no computador. Isso produzirá um arquivo chamado RESULTS.txt. Poste em um site pastebin e poste novamente com o URL no seu documento. Isso fornecerá dados concretos sobre sua configuração, o que reduzirá bastante a variedade de possíveis causas do seu problema.

Rod Smith
fonte
Como usar gdiskpara "definir o código do tipo para EF00"?
B Seven
@BSeven t, 1, ef00.
hobbs
11

A partição EFI não mantém o firmware (que é armazenado em um chip na placa-mãe); mantém os gerenciadores de inicialização dos sistemas operacionais instalados. É basicamente a alternativa EFI de colocar o carregador de inicialização no setor 0 do seu disco, como foi o caso dos PCs da BIOS.

Isso significa que, quando você tiver uma partição, ela deverá ser preenchida automaticamente quando você instalar o sistema operacional. (Embora seja muito provável que o disco de instalação em si também precise ser inicializado no modo EFI, caso contrário, ele não se incomodará em configurar a inicialização UEFI ... na verdade, certas partes da instalação nem sequer podem ser feitas no modo BIOS.)

Se você já possui o Ubuntu instalado, precisará:

  1. Instale a versão UEFI do GRUB; Eu acho que está no grub-efi-amd64-signedpacote.

    grub-install --target=x86_64-efi-signed
    

    (Para a grub-efi-amd64versão não assinada , é x86_64-efi.)

  2. Verifique se o GRUB se instalou como \EFI\Boot\bootx64.efina partição do sistema EFI. (Estou usando a sintaxe do caminho EFI aqui; se você montar a partição no /bootLinux, seria /boot/EFI/Boot/bootx64.efi).

    Caso contrário, copie grubx64.efimanualmente para esse local.

    Isso é necessário porque grub-installnão pode se adicionar ao menu de inicialização EFI, a menos que o sistema tenha inicializado no modo EFI. (As "variáveis ​​EFI" são impossíveis de acessar no BIOS atual.) Portanto, a única maneira de inicializar o GRUB é colocando-o no local "carregador de inicialização de fallback".

  3. Reinicie. Tente selecionar algum tipo de modo EFI no menu de inicialização do firmware (os firmwares da EFI têm um menu de inicialização próprio, mesmo antes do GRUB).

  4. Verifique se dmesg | grep "efi:"mostra alguma coisa, para confirmar que você está no modo EFI.

gravidade
fonte
1
Não pretendo abrir um tópico antigo, mas estou tentando encontrar uma solução para o meu problema e me deparei com esse tópico. Estou tentando atualizar o firmware do BIOS no meu computador Dell e a Dell o fornece como EXE no formato Windows ou algum arquivo que deve ser colocado em uma partição formatada em EFI. ou seja, me pedem para "Baixar o arquivo para a partição EFI em um dispositivo de mídia removível". Não sei se o OP quis dizer isso, mas só queria apontar o que você disse no seu primeiro parágrafo.
Ray
@ Ray: Você está baixando o firmware futuro nesta partição. Ainda não é usado como firmware real quando você liga o computador; é apenas usado como um arquivo de dados para o programa "firmware updater" que o gravará / exibirá na placa-mãe. (Lembre-se de quando essas instruções costumavam dizer "baixar o arquivo em um disquete inicializável do MS-DOS" ou algo assim? Bem, esse disco também não contém o BIOS principal. Ele apenas contém o programa de atualização e os dados que devem piscar . Mesmo aqui.)
grawity
1
Sim eu conheço. Acho que estou apenas dizendo que o OP pode não estar necessariamente errado, mas apenas impreciso. Da mesma forma, você está certo de que o firmware está armazenado no chip e agora estou sendo solicitado a armazenar um firmware futuro na partição EFI. Mas, alguém poderia dizer que o firmware é armazenado na EFI se não tiver cuidado com sua descrição. (ou seja, não completamente errado, mas meio errado)
Ray
2

Crie dois arquivos com o bloco de notas e salve-os na unidade de instalação USB do Windows.
SaveAs: CreatePartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

Crie outro arquivo de texto com o Bloco de notas:
SaveAs: diskpart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

Se você estiver usando MBR, o comando será, converta mbr.

Para obter o tamanho da partição do Windows, multiplique o tamanho do seu HD por 1024, um disco de 100 GB vezes 1024 é igual a 102400 menos 210 (tamanho efi) menos 16 (tamanho efi) menos 16 (tamanho msr) menos 460 (tamanho reservado) igual ao tamanho que você colocará o tamanho da partição do Windows. (xxxxxx)

Você pode alterar o tamanho das partições no terminal (prompt de comando) cd / d D:> bloco de notas CreatePartitions-UEFI.txt

Enquanto você estiver na unidade USB, abra com o bloco de notas diskpart-UEFI.txt e deixe em aberto ou anote o comando para não cometer erros. Depois de alterar o tamanho das partições ao seu gosto, feche-o e, em seguida, cd / dx: / Sources e execute o diskpart / s D: \ CreatePartitions-URFI.txt.
listar o volume como o último comando mostra as partições, se estiver feliz, saia> desligue o computador> reinicie> instale

Dave Vian
fonte
-2

use gnome-disks, pacote "gnome-disk-utility", é super útil.

dotbit
fonte
2
Bem-vindo ao Super Usuário! Eu não sou o DV-er, mas embora as respostas de uma linha às vezes funcionem, mas se você editar sua resposta para incluir uma explicação, ela funcionaria melhor :) Como eles criariam uma partição do sistema EFI no utilitário gnome-disk.
bertieb