web-dev-qa-db-fra.com

Ubuntu portable sur disque dur externe pour travailler sur plusieurs appareils

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:

  • système ext4 (sans drapeaux) pour tous les fichiers linux
  • système de fichiers linux-swap (pas de drapeaux, indique 0 utilisation)
  • système de fichiers ntfs à utiliser pour d’autres fichiers, fichiers Windows, etc.

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?

2
Tim

Sauvegardez toujours vos informations avant de tenter toute réparation.

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.

Si la réinstallation est une option viable

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:

  • Partition EFI FAT32 formatée à 500 Mo et marquée ESP
  • Partition Linux formatée Ext4 sans drapeaux
  • Swap formated partition swap pas d'indicateur
  • Partition NTFS

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.

Essayer de réparer l'installation actuelle

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.

Après réparation

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é.

3
ravery