Grub2 EFI: Onde está minha partição EFI?

0

Instalei o ubuntu 12.04 no meu Thinkpad Edge (UEFI) usando um dispositivo USB. Eu acho que foi botted usando EFI desde um menu GRUB apareceu com as opções para inicializar um sistema ao vivo, instalar ou verificar o disco.

Quando inicializo meu laptop, o grub mostra apenas o prompt de linha de comando "grub >".

Depois de executar manualmente grub-install /dev/sda + update-grub dentro de um ambiente chrooted, ele inicializa o grub no modo de recuperação dizendo "Arquivo não encontrado".

O disco é particionado da seguinte forma:

/dev/sda1:    ntfs,  1.5GB, SYSTEM DRV
/dev/sda2:    ntfs,  150GB, Windows7 OS
/dev/sda3:    extended
  /dev/sda6:  ext4,  140GB, Ubuntu 12.04
  /dev/sda5:  ntfs, 10.7GB, Lenovo Recovery
/dev/sda4:    ntfs, 16.8GB, a custom additional partition

Eu adivinhei que a partição rotulada "SYSTEM DRV" pode ser a partição EFI, mas depois li que a partição EFI é do tipo FAT32. Eu não tenho nenhuma partição FAT32 aqui!

Portanto, não posso seguir nenhum How-Tos que explique como instalar o Grub2 com o suporte da EFI. Todos eles querem que eu monte minha partição EFI em / boot / efi. Eu também não posso simplesmente criar uma partição EFI, pois na maioria dos How-Tos eles dizem que ela deve ser a primeira partição (pelo menos ela tem que ser uma partição primária), mas como você vê eu já tenho uma partição 1. p>

Não é possível usar apenas a ferramenta Grub2 normal no hardware EFI?

Se não, a criação de uma partição EFI resolverá o problema? Posso usar a partição 4 para isso?

Meu BootInfo foi criado usando este artigo pode ser encontrado aqui: link . Note que está sendo feito a partir de uma unidade Ubuntu Live USB que estava em /dev/sdb , então você deve ignorar esta unidade.

ATUALIZAÇÃO:

Como a EFI não parece ser o problema aqui, eu reinstalei o grub (não-EFI-) usando boot-repair .

O novo BootInfo pode ser encontrado aqui: link .

O problema é que o BIOS não inicializa, mas apresenta o erro:

Operating system not found.

UPDATE 2 (SOLUTION):

Quando você lê essa pergunta ao ter o mesmo problema (Sistema operacional não encontrado), pode perder a floresta para as árvores ao ler as respostas, então repito aqui a solução:

O problema no meu caso foi que eu acidentalmente mudei o flag de inicialização da unidade para /dev/sda6 , que é uma partição lógica . O BIOS procura por sinalizadores de inicialização em um disco rígido que deseja inicializar, mas procura apenas em partições principais . Se não conseguir encontrar um sinalizador de inicialização, ele irá ignorar o disco rígido. Se não encontrar nenhuma unidade ou mídia para inicializar, você verá o erro "Sistema operacional não encontrado".

    
por leemes 28.05.2012 / 18:27

2 respostas

2

A seção de ajuda vinculada em uma resposta anterior (excluída?) descreve como inicializar seu sistema usando seu UEFI BIOS. Isto é o que significa inicializar o Linux " nativamente ".

SE está disponível no seu Thinkpad, outra alternativa pode ser usar o CSM ou uma função equivalente a ele. Este é um acrônimo para Compatibility Support Module . É um termo da Intel. (A especificação do BIOS UEFI foi desenvolvida pela Intel.)

Um CSM permite que um sistema com um BIOS UEFI inicialize sistemas operacionais herdados (não UEFI) que só sabem interagir com um BIOS legado.

Meu entendimento é que só é possível usar as chamadas ferramentas GRUB normal (ou seja, BIOS legado) no hardware UEFI se você puder usar algo como o CSM.

Atualização:

Eu escrevi minhas sugestões anteriores antes de dar uma boa olhada na tabela de partições do OP.

Aparentemente, o particionamento do MBR na unidade foi colocado lá pela Lenovo. Portanto, o Thinkpad Edge já deve ter algum tipo de compatibilidade de BIOS para permitir a inicialização de uma unidade particionada do MBR.

Se isso realmente IS for true, apagar as suas partições atuais e usar o GPT NÃO será um bom caminho a seguir.

Eu recomendaria que ANTES faça qualquer alteração drástica. Primeiro, você descobrirá como seu sistema está funcionando no momento. Você poderia coletar um resumo do BootInfo para o seu sistema? Você pode fazer isso inicializando usando um Live CD / USB enquanto estiver conectado à Internet, selecionando Try Ubuntu e, em seguida, usando as etapas descritas em esta resposta .

Nota: Neste ponto, sugiro apenas coletar informações. Tentar aplicar correções antes de você ter uma melhor compreensão da sua situação só pode quebrar outra coisa.

Concordo com a análise de Rod Smith de seu resumo do BootInfo . O Ubuntu já foi instalado na partição /dev/sda6 . O GRUB e o grub.cfg parecem estar configurados corretamente em /boot/grub/ on /dev/sda6 . O problema é que sua sequência de inicialização atualmente é algo assim:

  • O carregador de boot do GRUB é carregado do setor 0 (MBR) de /dev/sda . Ele transfere o controle para core.img do GRUB, que está no setor 1 de '/ dev / sda'.
  • O core.img loader sabe o suficiente sobre os sistemas de arquivos para carregar o restante dos módulos do GRUB a partir do local onde o GRUB está localizado, (,msdos6)/root/grub .
  • O GRUB entra no modo de recuperação quando core.img não consegue carregar o GRUB de (,msdos6)/root/grub

Atualização: comparando o antigo e novo pastbins


Eu fiz um arquivo comparar em seus dois pastebin. Eu listei o que eu achava que eram diferenças significativas abaixo.

  • Linha 07
    Anteriormente, o core.img do GRUPO no setor 1 procurava (,msdos6)/root/grub . Agora, ele procura (,msdos6)/boot/grub . Em outras palavras, você corrigiu o problema que estava tentando corrigir reinstalando o GRUB.

  • Linha 47
    Não tenho explicação para o motivo, mas, além do arquivo de inicialização core.img , que aparentemente ainda existe no setor 1, o GRUB também adicionou /boot/grub/core.img a /dev/sda6 . (Talvez isso esteja relacionado à próxima mudança?)

  • Linhas 77 e amp; 81
    Anteriormente, /dev/sda1 estava marcado com o sinalizador boot . Agora o sinalizador boot está na sua partição Ubuntu, /dev/sda6 . Eu acho que isso pode ser o que está causando o seu problema de inicialização. Tente trocar o sinalizador boot de volta para a primeira partição NTFS em sua unidade rotulada SYSTEM_DRV e veja se isso ajuda. (Eu não acho que vai doer nada.)

  • Linhas 154, 155 e 537 (antigas) 523 (novas)
    Configurações que eram " efi " na versão anterior do pastebin agora parecem usar valores para um legado do BIOS GRUB. Em particular, na seção PARTITIONS & DISKS: , a partição sda6 anteriormente tinha o atributo grub-efi . Agora é grub-pc .

Existem algumas outras mudanças que não parecem valer a pena descrever em detalhes. Por exemplo, suas edições no arquivo /etc/default/grub foram perdidas. O arquivo está de volta ao seu conteúdo de instalação padrão. Além disso, as entradas de menu para memtest estão ausentes do arquivo grub.cfg de pós-reinstalação.

    
por irrational John 28.05.2012 / 19:54
6

O disco rígido é definitivamente configurado para inicialização no estilo BIOS. Evidência específica disso inclui:

  • A tabela de partições é MBR. Embora seja teoricamente possível inicializar no modo EFI a partir de uma tabela de partições MBR, até onde sei, o Windows não suporta essa configuração. Certamente seu instalador não; o instalador do Windows suporta MBR-on-BIOS ou GPT-on-EFI, mas não MBR-on-EFI ou GPT-on-BIOS.
  • Não há ESP em / dev / sda. (Existem arquivos de inicialização EFI em / dev / sdb1, mas que se parece com uma unidade flash USB, não com o disco de inicialização normal.)
  • A saída do Script de informações de inicialização identifica o GRUB como sendo instalado no MBR de / dev / sda. Isso é consistente com uma instalação do GRUB no modo BIOS.
  • A saída do script de informações de inicialização identificou /Windows/System32/winload.exe como um arquivo de inicialização em / dev / sda2. Se esta fosse uma instalação EFI do Windows, você veria uma referência ao winload.efi em algum lugar.

Assim, qualquer que seja a fonte do problema, não parece ter nada a ver com a EFI; é um problema direto do GRUB no BIOS.

A maior pista que vejo é esta, a partir da saída do Boot Info Script:

=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
   the same hard drive for core.img. core.img is at this location and looks 
   for (,msdos6)/root/grub on this drive.

Observe, em particular, a referência a (,msdos6)/root/grub . Posteriormente, na saída do Boot Info Script, há uma lista de arquivos de inicialização em / dev / sda6 ( (,msdos6) no idioma do GRUB). Esta lista inclui /boot/grub/grub.cfg , mas não há menção a nada no diretório root . Na verdade, o diretório root (que não deve ser confundido com o diretório / , cujo nome é pronunciado como "root") é o diretório home do superusuário e, normalmente, não possui arquivos de inicialização. Assim, suspeito que o GRUB foi mal instalado. Talvez você tenha usado opções para grub-install que você não mencionou e que eram inapropriadas, ou talvez haja um bug no script de instalação. De qualquer forma, recomendo reinstalar o GRUB usando os procedimentos usuais para fazer isso em um computador baseado em BIOS. Observe, no entanto, que se o seu sistema de emergência inicializar no modo EFI, isso pode criar complicações, por isso, certifique-se de inicializar o sistema de emergência no modo BIOS.

Você pode verificar seu modo de inicialização no Linux procurando pelo diretório /sys/firmware/efi . Se estiver presente, você inicializou no modo EFI. Se estiver ausente, provavelmente é inicializado no modo BIOS (embora haja condições em que esse arquivo estará ausente, mesmo que você tenha inicializado no modo EFI).

    
por Rod Smith 28.05.2012 / 21:25