web-dev-qa-db-fra.com

Comment installer Grub sur un disque dur externe?

Donc, j'ai utilisé Ubuntu pendant un mois ou deux en double démarrage avec Windows 8, ça avait l'air bien et ça fonctionnait bien, mais il est tombé en panne pour une raison quelconque et j'ai dû restaurer tout le PC. En raison de cette mauvaise expérience, j'ai décidé de réinstaller Ubuntu sur un disque dur externe séparé de mon ordinateur Windows principal. Cette option semble être bonne pour les deux systèmes d'exploitation.

Cependant, lors de l’installation d’Ubuntu, le chargeur de démarrage Grub n’était pas installé sur le lecteur externe, alors que l’ancien chargeur de démarrage Grub n’était jamais effacé du disque dur interne du PC. En conséquence, je me trouve dans une situation étrange: lorsque je veux utiliser Windows, je mets simplement le PC sous tension et je pars. Quand je veux utiliser Linux, je dois brancher le lecteur externe, aller dans le menu de démarrage et changer le chargeur de démarrage de Windows en Grub. Le disque dur externe n'est pas amorçable (comme une clé USB par exemple) et cette longue séquence d'opérations doit être répétée à chaque fois.

Récapitulation rapide:

  1. Le disque dur interne de l'ordinateur contient le système d'exploitation Windows, le chargeur de démarrage Windows et Grub de l'ancienne installation de Linux.
  2. Le disque dur externe contient Ubuntu 15.10, éventuellement Grub, mais n’est pas amorçable comme une clé USB.
  3. Chaque fois que je veux changer de système d'exploitation, j'ai besoin de changer manuellement le chargeur de démarrage dans le menu de démarrage, ce qui est fastidieux.
  4. Les périphériques d’amorçage sont classés comme suit: 1. USB 2. Lecteur externe 3. Lecteur interne

Ma question: comment puis-je rendre le lecteur externe amorçable de sorte que, lorsque je souhaite passer de Windows à Linux, je mette simplement le PC hors tension, branchez la clé USB, allumez le PC et continuez? (sans perdre les données que j'ai déjà stockées et toutes les préférences)

PS Pour une raison quelconque, Windows est terriblement lent lorsqu'il est chargé via le chargeur de démarrage Grub disponible dans le lecteur interne. De plus, si le disque dur externe n’est pas branché, le chargeur de démarrage Grub affiche uniquement le panneau de secours Grub. Donc, utiliser Grub déjà installé comme seul chargeur de démarrage n’est pas une option.

1
mickkk

J'ai finalement trouvé la solution à mon problème. Je le posterai ici au cas où quelqu'un en aurait besoin. De plus, je ne suis pas tout à fait sûr de ce qui a fonctionné et si toutes les mesures que j'ai prises étaient vraiment nécessaires, mais cela a fonctionné.

  1. Assurez-vous d’avoir une partition EFI sur votre disque externe en utilisant gparted ou quelque chose de similaire. La partition doit être FAT32, avoir les drapeaux boot et esp, et être montée sur/boot/efi. La taille devrait être d'au moins 200 Mo, bien que je l'aie rendue à 1 Go, car j'ai de l'espace disponible sur mon disque dur. Si vous n'avez pas cette partition, alors faites-la.
  2. Vérifiez que l’UUID de la partition EFI BOOT de votre disque dur externe correspond à celui du fichier fstab.

pour vérifier l'UUID des partitions, tapez simplement le terminal

ls -l /dev/disk/by-uuid

pendant la modification du fichier fstab

Sudo nano /etc/fstab
  1. Maintenant, installez Grub. (Vous pouvez également essayer de copier grub du lecteur interne vers la partition du lecteur externe, mais cela ne fonctionne pas pour moi).

    Sudo grub-install/dev/sdX

remplacez sdX par le lecteur actuel.

  1. Si ce n'est déjà fait, activez le démarrage à partir d'un lecteur USB et assurez-vous que le chargeur de démarrage externe est chargé avant le chargeur interne à partir du menu de configuration de votre UEFI. Maintenant, votre machine devrait d’abord démarrer à partir de l’USB (si aucun chargeur n’a été trouvé) à partir du disque dur interne.
1
mickkk

C'est ainsi que j'ai installé grub sur mon disque dur externe sur lequel Ubuntu 17.04 était installé. Lorsque vous faites cela, il vous permet de démarrer votre Ubuntu sur n’importe quel PC prenant en charge UEFI en utilisant le grub de l’extérieur sans s’appuyer sur le grub du PC. Il peut également servir de sauvegarde au cas où il y aurait un problème avec EFI de Windows.

Installer Grub sur un disque dur externe sur lequel Ubuntu est installé

  1. Démarrez dans une clé USB Live Ubuntu et connectez le disque dur externe.

  2. Liste des partitions de tous les périphériques:

    lsblk
    
  3. À partir des résultats de lsblk, identifiez la partition linux ainsi que la partition efi du disque dur externe, à savoir /dev/sdXY1 et /dev/sdXY2 respectivement. Remplacez XY1 et XY2 par vos propres noms de partition.

  4. Monter spécialement la partition linux:

     Sudo mount /dev/sdXY1 /mnt
    
  5. Monter des systèmes de fichiers virtuels critiques:

    for i in /dev /dev/pts /proc /sys /run; do Sudo mount -B $i /mnt$i; done
    
  6. chroot dans la partition Linux que vous avez montée:

    Sudo chroot /mnt
    

    Vous êtes maintenant dans le système de fichiers Linux du disque dur externe.

  7. Créez le répertoire où grub installera ses fichiers:

    mkdir -p /boot/efi
    

    S'il existe déjà, passez à l'étape 8.

  8. Montez la partition efi à partir de l'étape 3:

    mount /dev/sdXY2 /boot/efi
    
  9. Installez grub sur le disque dur externe:

    grub-install /dev/sdX
    
  10. Mettre à jour la nourriture:

    update-grub
    
  11. Trouvez l'UUID de la partition efi (aka 'vfat') et notez-le:

    blkid
    

    ou

    ls -l /dev/disk/by-uuid
    
  12. Maintenant, nous devons dire à fstab de monter cette partition au démarrage:

    cp /etc/fstab /etc/fstab.bak  
    Sudo nano /etc/fstab  
    

    Ajoutez les deux lignes ci-dessous à fstab en remplaçant xxxx-xxxx par l'UUID de l'étape 11:

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

    Assurez-vous de commenter l'entrée fstab de Windows esp pour qu'elle ne soit pas en conflit.

  13. Quittez le chroot:

    exit
    
  14. Redémarrez le PC:

    Sudo reboot
    

À ce stade, lorsque vous redémarrez et choisissez votre périphérique externe à partir du gestionnaire de démarrage EFI, il démarrera sur grub.

Pour que Ubuntu démarre automatiquement lorsque vous insérez l'externe et que Windows démarre automatiquement lorsque l'externe n'est pas inséré, vous devez créer une entrée de démarrage personnalisée pour qu'Ubuntu pointe vers l'efi du lecteur externe:

Création d’une entrée de démarrage personnalisée pour Ubuntu afin de pointer vers efi sur le disque dur externe

Depuis Windows , EasyUEFI peut ajouter ou supprimer des entrées de démarrage.

Depuis Linux , efibootmgr peut ajouter ou supprimer des entrées de démarrage.

Alternative # 1 - en utilisant EasyUEFI

  1. Sous Windows, téléchargez EasyUEFI, installez-le et lancez-le.

  2. Choisissez le gestionnaire d'options EFI

  3. Choisissez créez une nouvelle entrée avec le signe +

  4. Choisissez Linux ou autre système d'exploitation et nommez-le dans la zone de description.

  5. Sélectionnez la partition FAT32 EFI sur le lecteur externe contenant le chargeur de démarrage Grub.

  6. Choisissez parcourir

  7. Naviguez jusqu'à / efi/ubuntu/shimx64.efi ou / efi/ubuntu/grubx64

  8. Sauver

  9. Déplacez-le en haut de la liste des entrées de démarrage

  10. Redémarrer

Alternative # 2 - en utilisant efibootmgr

  1. Liste des entrées du menu de démarrage:

    efibootmgr
    
  2. Créez une entrée de démarrage:

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

    exemple: efibootmgr -c -L myubuntu -d /dev/sdX

    Cette entrée de démarrage serait automatiquement la première entrée.

    /dev/sdX est le disque dur externe avec le chargeur de démarrage grub.

  3. Vous pouvez maintenant redémarrer et sans votre intervention, Ubuntu s’amorcerait automatiquement lorsque le disque dur externe est branché. Lorsque le disque dur externe n’est pas branché, le PC saute notre entrée bunt à la prochaine entrée qui est probablement Gestionnaire de démarrage Windows.

2
ptetteh227