Como inicializar o Ubuntu a partir do EFI / UEFI?

20

Instalei o Ubuntu 11.10 em um Lenovo ThinkCentre Edge 71 (modelo: 1577-G3G) recém-adquirido com a inicialização EFI ativada. Optei pela opção Usar disco inteiro . Embora o processo de instalação tenha ocorrido sem problemas / erros, ao reiniciá-lo agora, é possível:

Nenhum sistema operacional inicializável. Insira o disco inicializável e pressione qualquer tecla ...

Eu acho que isso é por causa da EFI.

Regressão:

  • Verifiquei a configuração do sistema (F1 durante o POST) para encontrar uma opção de BIOS para desativar a inicialização EFI / UEFI; no entanto, não existe essa opção para esta máquina.
  • Isso pode ser causado por um recurso "Inicialização segura" no BIOS.
  • O fornecedor do hardware não conhece nenhuma configuração de "inicialização segura" no BIOS que impeça a inicialização do Linux.
  • O suporte da Lenovo não sabia nada sobre uma configuração do BIOS chamada inicialização segura. Eles também não conheciam nenhuma limitação que impediria a inicialização do Linux.
  • O manual do BIOS do ThinkCentre 1577 não menciona EFI, UEFI nem inicialização segura.

Como instalo o Ubuntu em uma máquina com EFI? - Ou, já que o Ubuntu provavelmente já está instalado: como faço para inicializar o Ubuntu?

ervingsb
fonte
2
Como o Ubuntu já está "instalado" com sucesso, você só precisa reinstalar o grub-efi. Foi exatamente o que eu tive que fazer ontem: superuser.com/q/372962/37511 dê uma olhada.
Maxime R.
Tentei seguir suas instruções na publicação superuser.com. Não fez o boot do Ubuntu :(
ervingsb
Você poderia dar alguns detalhes sobre o seu tópico ubuntuforums.org/showthread.php?t=1901748 ? O que funcionou e o que não funcionou, qualquer mensagem de erro etc.
Maxime R.

Respostas:

11

Esta é uma publicação modificada por nerasezi no Fórum Ubuntu

A principal fonte para a UEFI foi o guia Ubuntu UEFI

A seguir estão as etapas que ele executou:

  1. Use um CD ao vivo que corresponda à arquitetura UEFI. Principalmente x86-64. Inicie o CD ao vivo (xubuntu ou lubuntu. Esses são desktops leves, mas devem funcionar com o Ubuntu e o kubuntu também).

    Verifique se o seu sistema ativo está inicializando no modo UEFI. Você pode verificá-lo na configuração UEFI, provavelmente na opção Boot ou similar. No meu caso, basta colocar o prefixo "UEFI" antes do nome do dispositivo.

  2. Depois que o sistema ativo estiver sendo executado, defina uma senha root no terminal, digitando
    sudo passwd root

    Em seguida, efetue logout do usuário padrão do live cd e efetue login como root no modo GUI. Conecte o disco rígido. Eu uso um HDD portátil USB3, mas na maioria dos casos o disco rígido é uma unidade interna SATA. De qualquer forma, não se esqueça de fazer backup de todos os seus dados, pois o processo irá limpar tudo o que há na unidade. Inicie o Gparted (uma ferramenta de interface gráfica do usuário é muito mais fácil que a do texto) e selecione a unidade na qual você deseja instalar o sistema. (Certifique-se de selecionar o caminho certo!) Aponte para o menu superior e selecione Dispositivo> Criar tabela de partições ... Uma mensagem de aviso é exibida. Clique em Avançado e selecione "gpt". Diga OK Um novo layout de disco GPT foi criado. Agora você precisa criar partições nele. É muito importante que você crie como a primeira e principal partição, um volume FAT32 e precise atribuir o rótulo EFI a ele. Depois que a partição for criada, clique com o botão direito do mouse e selecione "gerenciar sinalizadores". Verifique o sinalizador "boot" e diga OK. Vá para a criação da partição / (você pode separar / home e / boot. Faça como costuma fazer. No meu caso, acabei de criar a partição /) e uma área de troca. Sempre prefira partições primárias porque, com a GPT, a limitação de 4 partições primárias foi removida. Feche o Gparted.

  3. Instale o sistema na partição "/" do disco rígido e lembre-se de apontar aqui o gerenciador de inicialização (GRUB 1.99) para o qual instalar. Se você criou uma partição "/ boot" separada, você deve escolher aquela para a instalação do gerenciador de inicialização.

  4. Aqui está a parte do guia UEFIBooting:

    Construindo o GRUB2 (U) EFI

    Faça o download do arquivo ZIP mais recente do código-fonte do grub2. ftp://ftp.gnu.org/gnu/grub/

    A construção do grub2 requer a instalação dos seguintes programas (compilação de dependências):

    bison autoconf automake flex autogen python (série 2.x) (para autogen.sh se estiver construindo a partir de bzr repo) texinfo help2man gettext (suporte a NLS) mapeador de dispositivo freetype2 (libs)

    sudo apt-get install bison libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev flex libfont-freetype-perl automake autotools-dev freetype2-demos texinfo efibootmgr

    O efibootmgr foi adicionado ao software que você precisa instalar, porque será necessário mais tarde.

    Para EFI de 64 bits (U):

export EFI_ARCH=x86_64 ./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix="" make

Caso você tenha uma arquitetura de 32 bits, verifique a documentação on-line no link que forneci na parte superior.

Instale o GRUB2 em sistemas (U) EFI

Determine sua PARTIÇÃO DO SISTEMA EFI. (deve ser / dev / sda1 ou / dev / sdb1 se estiver definido no segundo hd)

Em seguida, monte a partição em / mnt / EFISYS (ou em qualquer ponto de montagem que desejar). O código a seguir assume que / dev / sda1 seja uma partição EFISYS.

sudo mkdir -p /mnt/EFISYS

sudo modprobe dm-mod

sudo mount -t vfat -o rw,users /dev/sda1 /mnt/EFISYS

sudo mkdir -p /mnt/EFISYS/efi/grub

Em seguida, crie um aplicativo EFI para GRUB e copie-o e os outros módulos:

Digite o diretório "fonte compilada grub2 / grub-core" - Padrão: / usr / lib / grub / {EFI_ARCH}

grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot

sudo cp grub.efi *.mod *.lst /mnt/EFISYS/efi/grub

Nota: A opção -p "" é importante para criar um aplicativo portátil grub.efi. Agora crie um grub.cfg em / mnt / EFISYS / efi / grub:

sudo touch /mnt/EFISYS/efi/grub/grub.cfg

Faça com que o firmware inicie o GRUB2 (U) EFI como padrão

Para sistemas UEFI não Mac, o efibootmgr é usado para modificar o UEFI Firmware Boot Manager. Isso requer que o kernel seja inicializado no modo UEFI e que a arquitetura do processador do kernel corresponda à arquitetura do firmware (e 'noefi' NÃO é usado) para que o módulo do kernel 'efivars' seja carregado e o efibootmgr acesse as variáveis ​​do gerenciador de inicialização. Inicialmente, o usuário é obrigado a iniciar manualmente "efi / grub / grub.efi" no próprio console do firmware se o grub2-efi estiver instalado no modo BIOS. O efibootmgr deve ser executado para criar a entrada de inicialização.

sudo modprobe efivars

Digite o diretório "fonte compilada grub2 / grub-core"

grub-probe --target=device /boot/efi/efi/grub/grub.efi

Supondo que a saída do grub-probe seja / dev / sda1

sudo efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "GRUB2" --loader "\\EFI\\grub\\grub.efi"

No comando acima, / boot / efi / efi / grub / grub / efi pode ser dividido como / boot / efi e /efi/grub/grub.efi, que se traduz em (/ dev / sda) -> partição 1 - > \ EFI \ grub \ grub.efi.

  1. Abra o Synaptic e remova todos os pacotes grub e instale apenas os pacotes grub-efi (amd64 para mim) e todas as dependências necessárias. Depois que a instalação terminar, execute o sudo update-grub no terminal. Você deve editar "grub.cfg" em / boot / grub e verificar se o UUID do disco corresponde ao seu disco e partições, à voz "insmod part_" e "set root = '(hd0," have "gpt". Se tudo estiver ok, copie "grub.cfg" para "efi / grub" na partição do sistema EFI. Se algo que eu mencionei antes, não corresponder, basta editar o grub.cfg e alterá-los manualmente. Em seguida, copie o arquivo para " diretório efi / grub "na Partição do sistema Efi (ainda deve ser montado em / mnt).

    Então, quando reiniciei o sistema, uma nova entrada na guia Inicialização, na configuração UEFI, apareceu, denominada GRUB2 e eu a defini como a opção de inicialização padrão.

Luis Alvarado
fonte
É possível instalar o efibootmgr em uma instalação não EFI? Ainda é realmente necessário compilar o grub2 a partir da fonte? O reparo de inicialização é outra opção, mas novamente apresenta taxas de sucesso variadas devido a diferentes fornecedores que implementam as especificações UEFI de maneira diferente. O que também significa que "Fazer o firmware iniciar o GRUB2 (U) EFI como padrão" pode não ser possível para algumas máquinas.
geezanansa
Uau, isso é uma resposta antiga. Gostaria de perguntar o que você está mencionando em uma nova pergunta, já que muita coisa mudou desde então e a parte sobre implementações de diferentes fornecedores está ficando fora de controle em alguns casos em que trabalhei.
Luis Alvarado
Se a resposta que você está procurando não for encontrada aqui, então (e como você é o OP), isso não é uma bobagem, porque eu suponho que você ainda não encontrou a resposta que está procurando. Além disso, há muitas perguntas semelhantes relacionadas a isso que realmente diferem de uma forma ou de outra sobre como solucionar todo o material da EFI que vimos nos últimos 6 a 12 meses.
Luis Alvarado
11
Uma coisa é certa, porém - denominador comum = GRUB
geezanansa
Então, como instalar o grub habilitado para UEFI em um pendrive a partir de um sistema não-uefi ???
trusktr
5

Para ajudar a confirmar se sua máquina é compatível com U / EFI, basta executar o dmesg | grep EFITerminal na sessão da área de trabalho ao vivo.
Para ajudar a confirmar se o Ubuntu instalado foi inicializado usando U / EFI, veja o que /sys/firmware/efiretorna.
Uma solução que economiza tempo é garantir que o Ubuntu seja inicializado no modo UEFI no momento da instalação . Referindo-se à seção 2.4 do Ubuntu UEFI Guide mais recente , isso ilustra brilhantemente

Identificando se o computador inicializa o CD no modo EFI

Aviso: mesmo que o seu PC inicialize o CD no modo EFI, ele poderá inicializar o HDD no modo Legado (e o contrário).

Ao inicializar em um disco Ubuntu de 64 bits:

  • Se o BIOS estiver configurado para inicializar o CD no modo EFI, você verá a tela abaixo:

Modo UEFI

  • Se o BIOS NÃO estiver configurado para inicializar o CD no modo EFI, ou se o disco não for de 64 bits, você verá a tela abaixo:

Modo BIOS

Certifique-se de usar o mesmo guia mencionado para garantir a inicialização do disco rígido usando o UEFI também. Isso pode ser tão simples quanto definir SATA para AHCI, mas depende do seu firmware estar sendo usado.

Depois de chegar à tela do grub, é possível ir para a linha de comando pressionando "c" e tentar lsefisystabqual deve fornecer a tabela de entradas EFI com GUIDs, que é outro método útil para identificar se o UEFI está sendo usado antes da instalação.

É possível usar dmesg | grep EFIpara identificar se sua máquina é compatível com UEFI. Em uma das minhas máquinas que não é compatível com U / EFI, isso me dá o UEFI capaz?
que pode ser enganoso, pois executar o mesmo comando em uma máquina compatível com UEFI retornaria muito mais linhas (possivelmente 50 ou mais) quando inicializado usando EFI. Encontrei esta dica simples no rodsbooks (o link é para rEFInd, que é uma alternativa ao uso do Grub2). as páginas da web rodsbooks são atualizadas regularmente e são uma fonte muito confiável de informações. O autor é um professor da UEFI para dizer o mínimo, se não um gênio!

Referindo-se aos rodsbooks nesta página mostra que o Ubuntu 11.10 faz um ESP com sistema de arquivos FAT16, onde alguns firmwares UEFI desejam um ESP com sistema de arquivos FAT32. Você encontrará a explicação completa se fizer Ctrl+ Fe pesquisa o Fedora na página vinculada neste parágrafo (clique em Avançar uma vez em "Barra de localização" para ir direto às informações que estão sendo referidas).
Considerando que a especificação UEFI necessária para a Inicialização segura é => UEFI 2.2 e as máquinas pré-instaladas no Windows 8 usarão o UEFI 2.3.1.
Tudo isso confirma que o Ubuntu 11.10 não é capaz de inicialização segura, portanto, a inicialização segura não é o problema.

Depois de usar o UEFI, é possível instalar o Windows, que só pode usar o GPT ao usar o UEFI; que o Ubuntu instala usando as configurações de BIOS / legado devido a deficiências do instalador. ou seja, o Ubuntu pode instalar no GPT usando o BIOS ou UEFI, o que leva à necessidade de alterar as configurações de firmware para inicializar cada sistema operacional.

Identificar se o Windows está usando UEFI é usar o gerenciamento de disco para confirmar que o GPT está sendo usado. É possível converter uma instalação do Windows Bios em UEFI usando este guia Convertendo a instalação do Windows BIOS em UEFI

Uma solução fácil é executar o Boot-repair-disk (baixar o CD .iso significa inicializar um pouco mais rápido do que usar o Ubuntu.iso completo e instalar o boot-repair. Verifique as opções avançadas antes de executar a correção recomendada, tendo em mente as configurações de firmware você usou para inicializar o reparo de inicialização.O Boot-Repair instalará o grub-efi e corrigirá problemas de codificação de firmware para que o sistema use o UEFI e inicialize o Ubuntu, bem como quaisquer outras instalações existentes usando o UEFI.

Uma parte importante (que pode ser específica ao fornecedor) é como inicializar no modo EFI (ou seja, o mesmo CD do Ubuntu 14.04 LTS pode detectar dois modos diferentes e renderizar a tela de inicialização de texto diferente de não texto, como mostrado acima).

http://forum.hardware.fr/hfr/OrdinateursPortables/portable/resolu-installation-probleme-sujet_67937_1.htm

ou isto:

http://rog.asus.com/220572013/rampage-motherboards/rampage-iv-uefi-boot-installation-guide-on-windows-7-or-8/

Observe que, na configuração do BIOS para prioridades de inicialização, geralmente existem duas opções diferentes para DVD: Px ou UEFI (ou algumas outras palavras). Uma delas é para UEFI e outra é para inicialização baseada em MBR herdada.

geezanansa
fonte
3

Resolvido o problema de EFI no meu notebook ACER 5560G, descobriu-se que renomear o diretório EFI e o arquivo EFI no disco USB Wubi funcionou (obrigado immerohnegott).

Forçou uma instalação normal do GRUB em 2 partições pré-fabricadas com GParted em um pendrive. Os partitons foram:

  • /boot (100 mb)
  • / (70 GB)

Reinicie no Windows 7 e instale a versão gratuita do EasyBCD. Adicione uma nova entrada Linux -- >> Grub 2e ela procurará todas as partições pelo gerenciador de inicialização GRUB.

Desta forma, a partição "Sistema Reservado" do Windows e a Partição Escondida Acer PQSERVICE não são tocadas.

blaire
fonte
Obrigado. Recusei-me a seguir os passos de Luis Alvarado e dessa maneira simples fez isso por mim. Não estou dizendo que a resposta de Luis não está correta, mas se eu tiver tantos problemas apenas para inicializar o Ubuntu, prefiro usar o Windows. Sim, eu disse. Então, pessoal, tente isso antes de tentar quase construir seu próprio Linux a partir do zero. Isso pode poupar você de ter que chutar sua placa UEFI e sua chave USB do Ubuntu pela janela do mf.
Gabriel
A primeira frase do seu link "Isso se aplica apenas a sistemas com o Windows NÃO executando no modo EFI" ... hmmmm.
Geezanansa
2

Você pode criar drives USB inicializáveis ​​que funcionem com o sistema EFI; eu não sou tão experiente quanto alguns de vocês, então descobri uma maneira fácil e que funciona :)

Em uma máquina com bios EFI, insira um CD / DVD com Parted Magic (eu o coloquei em um CD de inicialização HIREN que criei em um CD em vez de em USB). Inicialize nesse CD / DVD.

Quando estiver no Parted Magic, insira uma unidade de salto USB vazia com pelo menos 2 GB de memória. Abra o utilitário Unetbooten incluído no Parted Magic. Execute o programa e escolha a distribuição que você está tentando carregar na unidade de salto. Siga as instruções e aguarde a conclusão.

Essa unidade USB deve inicializar em qualquer sistema EFI agora. Pelo menos funcionou para mim: oP

CynnieH
fonte
O Unetbootin é uma ótima maneira de criar mídia de instalação USB. Também posso recomendar os utilitários pendrivelinux, que incluem o instalador Universal USB ( pendrivelinux.com/universal-usb-installer-easy-as-1-2-3 ). facilmente alcançado usando a CLI depois de praticar algumas vezes. Esta ainda não é uma solução para executar o instalador do Ubuntu usando U / EFI. ou seja, os ISO são os mesmos, independentemente da mídia usada, seja DVD ou USB. O instalador é o problema e não a mídia usada para montá-lo.
precisa saber é o seguinte
1

Você precisa descobrir como obter sua BIOS para inicializar o CD de instalação no modo efi, não no modo da BIOS. Você saberá que ele está inicializando no modo efi porque você obterá um menu grub em vez do habitual do syslinux.

psusi
fonte
Eu acho que já está inicializando no modo EFI. Eu recebo um menu do GRUB. NÃO é o menu semi-gráfico habitual com o logotipo do Ubuntu. Apenas um menu GRUB preto / branco com três opções: - Experimente o ubuntu antes de instalar - Instale o ubuntu - verifique se há defeitos.
ervingsb
@ervingsb, deve fazê-lo então, supondo que você tenha dito ao instalador para usar todo o disco, em vez de particionamento manual.
Psusi
11
Bem, isso não aconteceu. Eu desisti de instalar via USB. Alguém nos fóruns do Ubuntu sugeriu que eu instalei a partir de um CD-ROM em vez de USB. Isso fez funcionar.
ervingsb
1

Eu deparei com esse problema ao instalar o Ubuntu 14.04 em um Lenovo ThinkCentre M91p e tenho uma solução rápida / fácil:

  1. Antes de inicializar a partir do disco de instalação do Ubuntu / USB, entre no BIOS e, na guia "Inicialização", altere o "Modo de inicialização" de "Automático" para "Legado".
  2. Instale o Ubuntu.
  3. Se desejar, altere o Modo de inicialização no BIOS novamente para Automático.

Isso funciona consistentemente para mim.

Certamente ele funciona porque o instalador do Ubuntu detecta se o BIOS suporta EFI ou não quando decide qual gerenciador de inicialização instalar. Ao configurar o BIOS como legado, o Ubuntu acaba instalando o antigo carregador de inicialização que funciona com essas máquinas Lenovo.

Eric
fonte
1

Nas configurações do BIOS, altere o modo do disco rígido para IDE e inicialize a partir da unidade flash USB. Ele será instalado no modo não UEFI e a inicialização após a instalação também funcionará bem.

Esse método específico está funcionando muito bem para mim com o Ubuntu 16.04 em um Lenovo ThinkCentre Edge 71, com a versão mais recente do BIOS.

Gregg B.
fonte
11
Bem-vindo, top askubuntu! Obrigado por tentar ajudar! Como este post tem vários anos e a pergunta diz respeito a uma versão que não está mais em suporte e tem várias respostas, tenho certeza que a comunidade agradeceria se você pudesse concentrar seus esforços [aqui] askubuntu.com/unanswered )
Elder Geek
Obrigado pelos pensamentos - no entanto, me deparei com esta postagem porque estava encontrando esse problema com a versão mais recente suportada, que foi corrigida seguindo as etapas fornecidas. Se você pode sugerir uma postagem mais recente descrevendo o mesmo problema, também ficarei feliz em postar lá.
Gregg B.
Se você encontrou esse problema com uma versão atual, edite sua resposta para indicar qual versão você estava executando, para ajudar as pessoas com o mesmo problema e a versão a localizar sua resposta. Obrigado!
Elder Geek
É o que o meu "16.04" do meu OP já faz referência: a versão mais recente e mais recente do LTS. O que mais você gostaria que eu editasse?
Gregg B.
Desculpe, eu perdi isso. 1
Elder Geek
0

Eu tive um problema semelhante também.

O que experimentei foi que o computador com EFI também está equipado com BIOS. Enviei spam para F2 como um louco, o que aconteceu foi que eu tive a opção de usar o EFI ou o BIOS padrão.

Cuidado, porém, se você usar o BIOS, o computador inicializará com a mensagem: "nenhum sistema operacional encontrado".

Então você pode potencialmente formatar seu computador a partir daí e inicializá-lo como um PC normal.

Marius
fonte
0

Eu tive o mesmo problema ... eu comprei esta nova besta da Lenovo de um desktop e encontrei o mesmo problema, não queria o WIN 8.1 nele, (eu estou lidando com Linux desde o Red Hat 6.1) No entanto, eu não estava familiarizado com UEFI / EFI. O PC nem inicializa o liveCD. Depois de pesquisar informações tru neste blog, descobri que você precisa alterar algumas coisas no UEFI / EFI / BIOS, primeiro desabilitar o CSM e escolher "Somente legado" nas opções de inicialização. Reinicie e boom! eu estava dentro Instalado Ubuntu 12.04 eu estava pronto para ir. Mais tarde, descobri que o 12.04 NÃO inicializaria depois de voltar a alterar as mesmas configurações para o erro "UEFI Only" error "OS not found". Apenas CSM .e UEFI, e pronto! Eu inicializei da UEFI e notei que a máquina funciona muito melhor! Você não precisa instalar de novo a partir da UEFI, basta atualizar para a versão 13.04 / 10 de volta para a UEFI, mas funcionou para mim ... Não posso esperar para ver o que o Linux faz com esse novo recurso UEFI / EFI, existe algum potencial aqui

user255633
fonte
Edite sua resposta e tente torná-la mais legível adicionando parágrafos dentro do corpo. Além disso, algumas referências seriam ótimas.
Danatela 7/03/14
0

Resolvi esse problema, uso o Ubuntu 16.04 e o Windows 10 e não consigo inicializar automaticamente no meu Ubuntu. Minha partição EFI é FAT32

Certifique-se de que sua partição ubuntu seja a primeira ordem de inicialização,

$ sudo su
# cd /boot/efi/EFI/Boot
# mv bootx64.efi bootx64_.efi
# cp ../ubuntu/shimx64.efi bootx64.efi
# cp ../ubuntu/grubx64.efi grubx64.efi
# update-grub
# reboot
aedi
fonte
-2

Mesmo problema aqui. Eu o 'resolvi' inicializando permanentemente no meu CD do SuperGrub. Eu não me importo de fazer desta maneira. Eu vejo isso como um recurso de segurança; meu CD do SuperGrub é minha chave adicional. Quando verifico meus discos rígidos no Ubuntu, vejo que o Ubuntu-HDD é um disco que não é MBR. Parece reparticionar este disco e adicionar o MBR resolveria o problema, mas estou com preguiça de passar por todo esse problema.

Paulo
fonte
A pergunta implica implicitamente "Como inicializar o Ubuntu usando U / EFI?" Você pode descobrir que os MBRs estão associados a unidades MSDOS e o U / EFI usa unidades GPT. O Ubuntu tem a capacidade de usar GPT ao usar uma partição grub_bios, o que significa não usar o modo UEFI para inicializar, mas o modo BIOS / legado em uma unidade GPT. O Windows só inicializa usando UEFI em uma unidade GPT. Isso significa que no sistema de inicialização dupla usando UEFI para Windows e bios_grub (MBR) no Ubuntu, o Windows seria inicializado, mas não o Ubuntu, pois as configurações de firmware precisariam da UEFI para inicializar o Ubuntu. Assim como OP descreve ....
geezanansa