J'écris ceci à l'intérieur d'ubuntu 16.04 sur un disque dur externe USB de 1 To. Cela fonctionne bien sur cet ordinateur portable, mais lorsque j'essaie de démarrer à partir du menu de démarrage UEFI de tout autre ordinateur, le lecteur apparaît sous la forme d'un disque dur externe, mais lorsqu'il est sélectionné, il ne démarrera pas Linux, mais redémarrera sous le système d'exploitation Windows sur l'ordinateur. ordinateur. J'ai activé le démarrage USB et désactivé le démarrage sécurisé pour voir si c'était le problème, mais cela ne s'est pas corrigé.
Point intéressant: lorsque je démarre mon ordinateur portable (qui exécute Linux) sans la clé USB connectée, cela fait toujours le menu initial Grub. Peut-être que mon lecteur externe ne dispose pas des informations de démarrage/grub appropriées pour fonctionner sur un autre ordinateur? Peut-être que cette information est stockée uniquement ici sur mon ordinateur portable?
Le lecteur externe est partitionné en:
Ce que je veux faire est de pouvoir brancher mon disque dur externe sur n’importe quel ordinateur et d’exécuter la distribution Linux. Quelqu'un peut-il m'aider à rendre ma distribution portable?
Votre hypothèse est correcte. Lorsque vous avez installé Ubuntu, il a installé grub sur la partition EFI du disque dur interne. Afin de rendre le disque externe amorçable, il faut une partition système EFI avec grub installé. Généralement, cette partition est la première partition du lecteur. Toutefois, le déplacement de la partition racine peut provoquer des erreurs de démarrage.
Repartitionnez le disque dur externe. Supprimez la partition linux, puis créez une partition de 500 Mo au format FAT32 et signalée comme ESP (partition système Efi). Utilisez l'espace restant pour la partition Linux au format Ext4. Le résultat devrait être:
Puis réinstallez Ubuntu. Utilisez l'option de partitionnement manuel pour sélectionner vos partitions précréées. Assurez-vous que la partition EFI du lecteur interne est réglée sur "Ne pas utiliser".
Le démarrage d’un lecteur externe nécessite l’utilisation du chemin de support par défaut. Démarrez le LiveCD et montez la partition EFI sur le disque externe (vous devrez peut-être retirer temporairement le drapeau ESP pour le faire). Copiez EFI/ubuntu/shimx64.efi
vers EFI/boot
puis renommez-le bootx64.efi
. Démontez la partition EFI et activez le drapeau ESP si vous devez le supprimer.
Démarrez à partir d’un LiveCD et utilisez gparted
pour réduire la partition Linux de 500 Mo. Créez une nouvelle partition avec l'espace libre, formatez-la en FAT32 et marquez-la en ESP. Enregistrez l'UUID de la nouvelle partition.
Montez votre partition Linux. Éditez etc/fstab
. Cherchez une ligne semblable à:
# /boot/efi was on /dev/sda1 during installation
UUID=BB1E-83B5 /boot/efi vfat umask=0077 0 0
Remplacez l'UUID par celui de la nouvelle partition EFI.
Ensuite, montez les partitions EFI pour les deux lecteurs (vous devrez peut-être supprimer temporairement l'indicateur ESP). Copiez /efi/ubuntu/shimx64.efi
à partir du lecteur interne vers /efi/boot/
sur le disque externe, puis renommez-le bootx64.efi
. Remarque: vous devrez créer les dossiers sur les lecteurs externes.
Enfin, montez la partition EFI du lecteur interne. Supprimez le dossier /EFI/ubuntu
. Redémarrez et ouvrez les paramètres du système en appuyant sur la touche de fonction appropriée lors du démarrage. Modifiez l'ordre de démarrage de sorte que le disque dur USB se trouve avant le lecteur interne.
Vous devriez maintenant démarrer Linux lorsque le serveur externe est connecté et Windows lorsque le serveur externe n'est pas connecté.