Como instalar o Grub em um disco rígido externo?

1

Então, eu usei o Ubuntu por um mês ou dois em dualboot com o Windows 8, parecia e funcionou bem, no entanto, quebrou por algum motivo e eu tive que restaurar o PC inteiro. Devido a essa experiência ruim, decidi reinstalar o Ubuntu em um disco rígido externo separado da minha máquina Windows principal. Esta opção parece ser boa para ambos os sistemas operacionais.

No entanto, ao instalar o Ubuntu, por algum motivo, o gerenciador de boot Grub não foi instalado na unidade externa e, ao mesmo tempo, o carregador de boot "antigo" nunca foi apagado do disco rígido interno do PC. Como resultado, eu estou em uma situação estranha: quando eu quero rodar o Windows, eu apenas ligar o pc e ir embora. Quando eu quero rodar o Linux, eu tenho que conectar a unidade externa, ir no menu de inicialização e alterar o bootloader do Windows para o Grub. O disco rígido externo não é inicializável (como um pendrive, por exemplo) e essa longa seqüência de operações precisa ser repetida a cada vez.

Recapitulação rápida:

  1. O disco rígido interno do PC contém o sistema operacional Windows, o gerenciador de inicialização do Windows e o Grub da instalação antiga do linux.
  2. O disco rígido externo contém o Ubuntu 15.10, possivelmente o Grub, mas não é inicializável como um pen drive USB.
  3. Toda vez que eu quero mudar o sistema operacional, eu preciso alterar o gerenciador de inicialização manualmente no menu de inicialização, o que é entediante.
  4. Os dispositivos de inicialização são classificados da seguinte forma: 1. USB 2. Unidade externa 3. Unidade interna

Minha pergunta: Como posso fazer o disco externo inicializável para que quando eu quiser mudar do Windows para o Linux eu apenas desligar o pc, conecte o USB, ligar o pc e ir embora? (sem perder os dados que já armazenei e todas as preferências)

PS. Por alguma razão, o Windows é terrivelmente lento quando carregado através do gerenciador de inicialização Grub, disponível na unidade interna. Além disso, se o disco rígido externo não estiver conectado, o bootloader do Grub mostra apenas o painel de resgate do Grub. Portanto, usar o Grub já instalado como o único gerenciador de inicialização não é uma opção.

    
por mickkk 29.02.2016 / 00:43

2 respostas

0

Eu finalmente encontrei a solução para o meu problema. Vou postar aqui caso alguém precise. Além disso, não tenho certeza do que funcionou e se todos os passos que dei foram realmente necessários, mas isso funcionou.

  1. Verifique se você tem uma partição EFI em sua unidade externa usando o gparted ou algo similar. A partição deve ser FAT32, ter os flags boot e esp, e ser montada em / boot / efi. O tamanho deve ser de pelo menos 200 Mb, embora eu tenha conseguido 1 GB, já que tenho espaço disponível no meu HD. Se você não tem essa partição, então faça isso.
  2. Verifique se o UUID da partição EFI BOOT em seu disco rígido externo corresponde ao do arquivo fstab.

para verificar o UUID das partições, basta digitar o terminal

ls -l /dev/disk/by-uuid

enquanto edita o arquivo fstab

sudo nano /etc/fstab
  1. Agora instale o Grub. (Você também pode tentar copiar o grub da unidade interna para a partição da unidade externa, mas não funcionou para mim).

    sudo grub-install / dev / sdX

substitua sdX pela unidade real.

  1. Caso ainda não tenha feito isso, ative a inicialização a partir da unidade USB e verifique se o carregador de inicialização externo está carregado antes do interno do menu de configuração do UEFI. Agora, sua máquina deve inicializar primeiro a partir do USB e, em seguida, (se nenhum carregador de inicialização tiver sido encontrado) do disco rígido interno.
por mickkk 06.03.2016 / 13:41
1

Foi assim que instalei o grub no meu disco rígido externo (GPT) que tinha o Ubuntu 17.04 instalado. Quando você faz isso, você pode inicializar seu Ubuntu em qualquer PC que suporte UEFI usando o grub no externo sem depender do grub do PC. Ele também pode servir como backup grub no caso de o problema com o EFI do Windows.

Instalando o Grub em um disco rígido externo que tenha o Ubuntu instalado

  1. Inicialize em um Ubuntu USB ao vivo e conecte o disco rígido externo.

  2. Listar partições de todos os dispositivos:

    lsblk
    
  3. A partir dos resultados de lsblk , identifique a partição linux e também a partição efi do disco rígido externo, ou seja, /dev/sdXY1 e /dev/sdXY2 , respectivamente. Substitua XY1 e XY2 pelos seus próprios nomes de partições.

  4. Montagem especial da partição do Linux:

     sudo mount /dev/sdXY1 /mnt
    
  5. Montar sistemas de arquivos virtuais críticos:

    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    
  6. chroot na partição do Linux que você montou:

    sudo chroot /mnt
    

    Você está agora no sistema de arquivos linux do disco rígido externo.

  7. Crie o diretório onde o grub instalaria seus arquivos:

    mkdir -p /boot/efi
    

    Se já existir, pule para o passo 8.

  8. Monte a partição efi do passo 3:

    mount /dev/sdXY2 /boot/efi
    
  9. Instale o grub no disco rígido externo:

    grub-install /dev/sdX
    
  10. Atualizar o grub:

    update-grub
    
  11. Encontre o UUID da partição efi (também conhecida como 'vfat') e anote:

    blkid
    

    ou

    ls -l /dev/disk/by-uuid
    
  12. Agora precisamos dizer ao fstab para montar essa partição efi na inicialização:

    cp /etc/fstab /etc/fstab.bak  
    sudo nano /etc/fstab  
    

    Adicione as duas linhas abaixo ao fstab substituindo xxxx-xxxx pelo UUID da etapa 11:

    #my modified fstab to mount external hard drive's esp  
    UUID=xxxx-xxxx   /boot/efi   vfat   umask=0077   0   1  
    

    Certifique-se de comentar a entrada fstab do Windows esp para que não entre em conflito.

  13. Saia do chroot:

    exit
    
  14. Reinicie o PC:

    sudo reboot
    

Neste ponto, quando você reiniciar e escolher seu dispositivo externo a partir do gerenciador de inicialização EFI, ele será inicializado no grub.

Para que o Ubuntu inicialize automaticamente quando você inserir o externo e o Windows inicialize automaticamente quando o externo não estiver inserido, você deverá criar uma entrada de inicialização personalizada para o Ubuntu apontar para o efi na unidade externa:

Criando uma entrada de inicialização personalizada para o Ubuntu para apontar para o efi no HD externo

Do Windows EasyUEFI pode adicionar ou remover entradas de inicialização.

Do Linux efibootmgr pode adicionar ou remover entradas de inicialização.

Alternativa # 1 - usando o EasyUEFI

  1. No Windows, faça o download do EasyUEFI, instale-o e execute-o.

  2. Escolha o gerenciador de opções da EFI

  3. Escolha criar "nova entrada" com o sinal de +

  4. Escolha Linux ou outro sistema operacional e atribua a ele um nome na caixa de descrição

  5. Selecione a partição FAT32 EFI na unidade externa que contém o bootloader grub

  6. Escolha procurar

  7. Navegue até /efi/ubuntu/shimx64.efi ou / efi / ubuntu / grubx64

  8. Salvar

  9. Mova-o para o topo da lista de entradas de inicialização

  10. Reinicie

Alternativa # 2 - usando efibootmgr

  1. Listar entradas do menu de inicialização:

    efibootmgr
    
  2. Crie uma entrada de inicialização:

    efibootmgr -c [-L label] [-d /dev/sdX]
    

    por exemplo: efibootmgr -c -L myubuntu -d /dev/sdX

    Esta entrada de inicialização seria automaticamente a primeira entrada.

    /dev/sdX é o disco rígido externo com o bootloader grub.

  3. Agora você pode reinicializar e, sem a sua intervenção, o Ubuntu inicializaria automaticamente quando o disco rígido externo estivesse conectado. Quando o disco rígido externo não estiver conectado, o computador não funcionará. nossa Ubuntu entrada de inicialização para a próxima entrada que provavelmente é Gerenciador de inicialização do Windows .

por ptetteh227 14.08.2017 / 16:22