Reinstale o grub em uma unidade diferente?

2

Eu desmontei meu PC & remontado, depois disso o GRUB desapareceu.
Eu tenho dois discos: um SSD (sdb, GPT) e um HDD (sda, MBR):

  • sda1: "parte" (128MB)
  • sda2: windows, ntfs
  • sda3: windows novamente, ntfs (adicionou essa partição depois de instalar o grub & arch)
  • sda4: arch linux /

  • sdb1: recuperação do Windows (ntfs)

  • sdb2: / boot / efi (vfat)
  • sdb3: "parte" novamente, 16MB
  • sdb4: windows novamente (partição principal do windows, está instalado aqui)

Eu normalmente inicializo no meu SSD, e eu tinha o gerenciador de inicialização do Windows & arch_grub
Agora eu só tenho o gerenciador de inicialização do Windows, mas os arquivos do grub ainda estão lá, há grubx64.efi in /boot/efi/EFI/arch_grub e grubenv , grub.cfg , x86_64-efi in /boot
(Eu instalei janelas no modo UEFI, e eu acho que eu instalei o arco também no modo UEFI, eu usei arquiteto)

Então basicamente o grub está em /boot , que está no meu disco rígido (e /boot/efi está no meu SSD), tudo funcionou bem até agora. Eu tentei usar boot-repair em um ubuntu live usb, mas eu tive o erro "arch não tem grub-amd64-efi-signed package installed"

Acho que ainda posso iniciar o arco com a linha de comando do grub mas o que farei então? Eu já tenho todos os arquivos necessários, portanto grub-install será inútil

    
por Random Coder 99 28.07.2017 / 15:12

2 respostas

0

Obrigado Raman Sailopal e cas pela ajuda, mas não se encaixou no meu caso.
Aqui estão os passos exatos a serem seguidos, assumindo que / dev / sda4 é a raiz do linux, / dev / sdb2 é sua partição EFI (localizada em / boot / efi), e seus arquivos linux / initrd são /boot/vmlinuz-linux & /boot/initramfs.img
Grave um live usb do ubuntu (16.04?) Com arquitetura amd64, inicialize e cole estes comandos:

sudo os-prober
efibootmgr

Instale o os-prober ou o efibootmgr, se ainda não estiver instalado:

sudo apt-get install os-prober
sudo apt-get install efibootmgr

O grub no modo efi provavelmente não está instalado, instale-o também

sudo apt-get install grub-efi-amd64-signed

Em seguida, instale o grub:

sudo mount -t ext4 /dev/sda4 /mnt
sudo mount -t vfat /dev/sdb2 /mnt/boot/efi
grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot --bootloader-id=grub

Não tente usar grub-mkconfig , isso não funcionará.
Em vez disso, inicialize a partir do seu gerenciador de boot recentemente grub, você terá um shell grub, cole estes comandos :

set root=(hd0,4)
linux /boot/vmlinuz-linux root=/dev/sda4
initrd /boot/initramfs.img
boot

Depois disso, você deve estar no linux, monte sua partição efi se ainda não estiver, instale o grub / os-prober / efibootmgr e execute estes:

sudo os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg

Reinicie e o grub está de volta.

    
por 02.08.2017 / 14:54
0

Inicialize uma mídia de recuperação / live CD do Linux e monte / dev / sda4 em / mnt e / dev / sdb2 em / mnt / boot. chroot / mnt e depois execute o grub-install / dev / sdb.

    
por 29.07.2017 / 17:21