Restaurar partição de inicialização EFI

6

Eu tenho o triplo de inicialização do Ubuntu, Debian e Fedora. Quando instalei o Fedora a partir de um liveCD, fiquei animado e continuei acertando em seguida, sem perceber que não estava instalando o GPT, mas sim o LVM.

Depois de fazer isso, não consigo inicializar de um disco rígido. O menu EFI nem mostra meu disco rígido como uma opção de inicialização (embora ele detecte em hardware).

Eu tenho uma solução alternativa atualmente, o que é estranho em como funciona, eu uso um liveboot USB (Yumi) e opto por executar o Linux a partir do disco rígido, e posso escolher entre as distros que tenho no meu computador. No entanto, eu preciso deste USB para inicializar em uma distribuição.

Não sei exatamente como restaurar meu sistema.

Meu computador veio com o Ubuntu instalado, o ASUS XC200 (netbook). Liguei para o suporte técnico da Asus, eles queriam re-imagem .. Eu não vou desistir tão facilmente.

Meu /dev/sda1 (fat32, com boot flag) tem um diretório EFI para o Ubuntu (supondo que o Ubuntu esteja carregando o GRUB > chainloading Debian).

Como começo a corrigir isso? E quais informações as pessoas precisam?

(não tenho um CD / DVD Player)

Observe com efibootmgr :

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

Quando executo modprobe não há nada com efivars.

Atualização / coisas que tentei até agora:

Eu tentei as respostas postadas abaixo [ 1 ], [ 2 ] atualmente, boa pesquisa e, na maioria dos casos, acredito que funcionariam. Eles não o fizeram na minha situação.

Ferramentas atuais

Discos -

  • Perdemos flashdrives extras com Kali
  • & Debian
  • & Ubuntu 14.04
  • ainda tem o Yumi com o Ubuntu 12.04.

Passos tomados recentemente (após as seguintes respostas):

  • Ran Live Ubuntu
  • Limpo /dev/sda , exceto a partição de gordura (GPT / ESP)
  • Tentei instalar o Ubuntu, não tive problema com o grub e o EFI na minha partição GPT
  • Usado fsck apenas no caso (ótimo)
  • Utilizou o parted / gparted para limpar tudo, em seguida, faça o GPT e outras partições (defina o sinalizador de inicialização no ESP)
  • Tentei instalar novamente (não funcionou o mesmo erro)
  • Partições pareciam engraçadas (falta de espaço) ... Cabeça arranhada
  • Partições limpas / Partição feita para o LiveUSB no disco rígido
  • Usado dd para gravar o LiveUSB em /dev/sda4 (acredite que esse seja o número)
  • Isso foi inicializado, mas precisava do meu USB para estar no lugar, então era inútil
  • Tentou usar gfdisk , me fez reinicializar a sessão perdida
  • Divida meu LiveUSB
  • Download do Arch .iso e dd na segunda partição USB (LiveUSB)
  • Manteve a sessão do Ubuntu LiveUSB, passou pela instalação parcial (até o chroot do Arch durante a sessão ao vivo)
  • Tive problemas com as coisas que funcionam bem
  • Ran Arch Live, passou pela instalação (o zapping e a criação inicial de partições funcionaram melhor que no parted / gparted)
  • Instruções usadas para fazer syslinux (no Guia de instalação do Arch)
  • Reescreveu basicamente todos os meus efi para novos
  • Muito bem no Arch
  • Não sei se / como responder minha própria pergunta
por No Time 14.11.2014 / 04:31

6 respostas

6

Esqueça grub inteiramente - não é nada além de uma distração. Não é mais um boot loader ; nos sistemas EFI, o bootloader é embutido no firmware. grub é apenas um gerenciador de inicialização nesse contexto - e quase definitivamente totalmente redundante. O que é mais - é provavelmente a grub install que quebrou tudo em primeiro lugar.

Estas são as coisas de que você precisa:

  1. Uma partição GPT formatada em FAT do tipo ef00 .
  2. Um kernel do sistema compatível com UEFI localizado nessa partição (como o kernel do Linux) .
  3. O caminho para esse kernel do sistema salvo em uma variável de ambiente UEFI (geralmente Boot0000-{UUID} , mas isso também depende do valor de BootOrder-{UUID} ) .

Estritamente falando, isso é tudo. Você pode obter a configuração acima com nada mais do que gdisk e as ferramentas de linha de comando efibootmgr .

Pragmaticamente, um gerenciador de inicialização faz sentido - mas grub é o mais complicado de todos os disponíveis. Como é recomendado em outros lugares, rEFInd é provavelmente o melhor do grupo.

Eu escrevi um tutorial passo a passo antes sobre como particionar, formatar e configurar uma partição do sistema EFI rEFInd -enabled antes de aqui . Aqui também é outra resposta sobre este assunto, na qual você pode encontrar mais explicações sobre as afirmações que faço aqui.

    
por 24.11.2014 / 03:07
3

Quando eu reinstalei meu ESP e o grub, usei o rEFInd: link (a variante flashdrive) para inicialize na minha distribuição.

Após a inicialização, monte o seu ESP em / boot / efi

mount -t vfat /dev/yourESPdev /boot/efi

Então você deve ser capaz de reinstalar o grub com este diretório EFI.

grub-install --efi-directory=/boot/efi

Isso deve restaurar o grub. Se o seu ESP foi deletado e você teve que recriá-lo, então você terá que atualizar seu UUID em / etc / fstab. Use blkid para listar os UUIDs de seus dispositivos. Depois de atualizar o UUID do seu dispositivo em / etc / fstab, execute update-grub .

Você provavelmente terá que criar uma nova entrada efi para o grub. Use algo nos moldes de:

efibootmgr -c -d /dev/yourHD -p ESP_PartionNumber -L "Boot Title" -l '\EFI\DIST\grubx64.efi' -u "root=/dev/yourRootFS"

Onde ESP_PartitionNumber é o número do seu ESP no disco rígido (/ dev / sda1 seria 1), e DIST é uma pasta cujo nome é específico da sua distribuição, a menos que você a tenha criado. A pasta está em / boot / efi / EFI. O título da inicialização é simplesmente o título que você deseja para sua entrada na EFI.

Já faz algum tempo desde que eu reinstalei meu ESP, então não posso testar nenhum desses comandos novamente. Você pode precisar de mais parâmetros para alguns, mas tenho certeza que isso foi tudo.

    
por 22.11.2014 / 22:54
1
  • Dependendo da distribuição da qual você inicializa:

    • Para o Ubuntu / Debian :

      apt-get install --reinstall grub-efi-amd64
      
      or alternatively: 
      apt-get install --reinstall grub-efi
      update-grub
      
      should the above give you a grub, but not a bootable one
      
    • Para o Fedora (até 16, pode funcionar para outros):

      yum reinstall grub-efi
      

      No seguinte comando, você deve substituir sdX pelo dispositivo que tem o Partição EFI da qual você deseja inicializar. Em --part Y você tem que substituir o Y com o número da partição EFI (como em /dev/sdXY ).

      efibootmgr -c --disk /dev/sdX --part Y
      efibootmgr -v # verify a new record called Linux is there
      
      • Agora, digite Ctrl + D para sair do chroot, desmontar tudo e reinicializar:

      para i em / sys / proc / dev / pts / dev; do sudo umount / mnt $ i; feito sudo umount / mnt / boot / efi #please faça isso. partições efi corrompidas não são boas sudo umount / mnt sudo reboot

Você pode precisar adaptar isso às suas necessidades

fonte: su

    
por 17.11.2014 / 20:20
1

Quando não tiver certeza sobre coisas como particionamento, tente salvar o que puder e limpe o disco (ou pelo menos os metadados do LVM / GPT, pelo menos alguns deles não estão apenas no início do dispositivo de bloco IIRC). Este bem poderia poupar-lhe algum cabelo na estrada (esteve lá no século passado com BIOS, PTBL e MBR tendo três ideias distintas do que é a geometria da unidade).

Se você realmente pudesse reverter a situação, você não estaria perguntando aqui (não se ofenda, eu também tiro um tiro com o livro "Next").

Se você quiser mexer com ele de qualquer maneira, comece com uma imagem de resgate (plugue sem vergonha: eu usaria este aqui ) e dê uma olhada em

  • efibootmgr
  • blkid /dev/sdX

Você pode encontrar também os livros de Rod sobre EFI úteis.

Boa sorte.

    
por 19.11.2014 / 00:14
0

Isso é alto no Google, mas todas as outras respostas parecem apenas parcialmente completas, pelo menos para alguém na minha situação.

Meu computador perdeu duas vezes (e muito mais para vir, sabendo minha sorte) que minha instalação do Debian 8.2 existe. Isso pode ser causado por um bug no firmware da UEFI e / ou pelo uso de um slot SATA que não existe oficialmente ... ou talvez algum programa esteja interferindo na partição ou no SSD em si é suspeito ... eu não sei.

De qualquer forma, na primeira vez, eu estava tão cedo no processo de configurar tudo - que eu simplesmente reinstalei completamente. Isso consertou. Mas me senti um pouco maluco.

Desta vez, isso não é uma opção. Eu investi muito tempo na minha configuração!

Hoje, minha abordagem mais diagnóstica indicou que (pelo menos desta vez) a causa não era - ou não apenas - o firmware "esquecendo" a partição EFI existia - mas também

Os sintomas foram:

  • Meu UEFI de repente não sabia que existia a partição de inicialização debian EFI
  • O prático efibootmgr agora relatou o disco como seu tipo de BIOS, não EFI
  • Não consegui apenas mount como /boot/efi desde ...
  • ... o trusty fsck reclamou que o setor de inicialização era diferente da intenção / backup e um nó FAT raiz corrompido (linguagem de dados) ou algo
  • Praticamente tudo foi recheado, no geral, é o que estou dizendo.

Então, aqui está uma lista completa e fundamentada do que fiz para corrigi-lo (por enquanto?):

  • baixou o link rEFIt @ interessante
  • usou a qualidade Win32 Disk Imager, também conhecida como "sequela unamed" @ link em um PC emprestado para gravar o rEFIT em uma caneta USB dirigir
  • que trouxe a notícia muito bem-vinda de que minha partição / ainda estava intacta
  • inicializou a partição
  • reformatou a partição EFI errante como mkdosfs -F 32 /dev/sdXN - substitua seu próprio KNAME - e evite-os em qualquer coisa, exceto em situações de tempo de execução temporário, porque eles estão solicitando problemas se os discos forem embaralhados
  • reinstalou o GRUB na partição recém-formatada por grub-install /dev/sdXN
  • reinicializado da minha partição EFI ressuscitada - preso no modo de recuperação porque ainda estava arquivado em /etc/fstab por seu antigo UUID, fazendo com que systemd caísse nas dependências
  • reescreveu /etc/fstab para se referir aos caminhos do tipo /dev/disk/by-id/ata-EVILCORP-C3PO-partN para todos os discos - pois (A) KNAME é arriscado e (B) UUIDs mudam se você precisar reformatar de repente, como eu pobre. ..
  • magicamente retornou à adequação de um Debian normalmente inicializável. por enquanto.

Como dizem, "até a próxima vez" - talvez literalmente. Talvez isso ajude alguma outra alma perdida, buscando freneticamente o Google em algum PC que não tenha sido emprestado.

    
por 20.10.2015 / 23:29
0

Esta é uma nota pequena, mas importante:

Na maioria das vezes, quando você recebe Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables. , você não inicializou usando o UEFI. Essas variáveis mostram apenas quando o sistema em execução foi inicializado com UEFI, usando o CSM, elas não estão ativadas ... então, esse é um problema de ovo / galinha; para você configurar o UEFI, é necessário inicializar usando o UEFI! :)

Portanto, tente configurar o máximo que puder, em seguida, pegue a imagem de CD ou USB do rEFInd e use-a para inicializar o sistema pela primeira vez. Depois disso, para concluir a configuração sem qualquer problema.

    
por 02.04.2017 / 16:30

Tags