Est-il toujours possible d'installer Ubuntu sur un disque dur externe avec UEFI?

9

Il semble que l' installation d'Ubuntu sur un disque dur externe ne soit pas possible avec UEFI, où comme avec MBR il n'y avait pas de grande différence entre externe et interne. Est-ce vrai ou est-ce toujours possible?

Est-il même possible de combiner les deux méthodes de démarrage?

LiveWireBT
la source

Réponses:

12

C'est effectivement possible .

Avant de continuer, ces instructions sont destinées aux partitions système EFI (ESP) vierges et remplaceront probablement les fichiers existants, ou ne fonctionneront pas comme prévu. Faites au moins des sauvegardes!

Ajout de partitions requises pour différentes plates-formes

Plateformes: PC hérité, ordinateur Windows basé sur UEFI, ordinateur Apple

Ajouter un ESP à une installation existante avec MBR

Vous devez suivre ces instructions à partir d'une autre installation ou d'un média en direct.

  1. Installez le grub-efi-amd64-binpackage. Cela n'installera que les ressources nécessaires. Il ne basculera pas votre installation de style MBR existante vers UEFI et bouleversera les choses.

  2. Réduisez votre partition Ubuntu dans GParted pour faire de la place pour un ESP. Les tailles recommandées pour les ESP vont de 100 Mo à 500 Mo, mais les fichiers créés en suivant ces instructions ici ne nécessiteront pas plus de 2 à 5 mégaoctets.

    Remarque: Peu importe où se trouve votre ESP sur le disque et réduire votre partition Ubuntu de quelques mégaoctets à la fin devrait être rapide et sûr. Rétrécir au début n'est pas sûr . Une mise en garde cependant, votre ESP doit être une partition principale et ne pas faire partie d'une partition étendue ou d'un volume logique, les numéros de partition de 1 à 4 sont très bien, les chiffres ci-dessus indiquent une partition étendue sur les tables de partition MBR.

    Choisissez FAT32 comme système de fichiers et définissez l'indicateur de démarrage.

  3. Montez l'ESP que vous venez de créer et le système de fichiers racine que vous avez réduit:

    mkdir -p /mnt/esp
    mount $esp_device /mnt/esp
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Remarque: remplacez $esp_deviceet $root_devicepar les dispositifs appropriés, par exemple /dev/sdb2et /dev/sdb1. Les points de montage /mnt/esp et ne /mnt/rootfssont que des exemples choisis pour travailler avec le reste de cette réponse.

    Installez l'image EFI de GRUB et un fichier de configuration minimal avec:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Notez que $devicec'est l'ensemble du périphérique, par exemple /dev/sdb, pas une partition.

  4. Voilà, nous avons déjà terminé, mais permettez-moi d'essayer d'expliquer quelques choses.

    Le paramètre --target x86_64-efigarantira que les images et modules UEFI seront installés sur les chemins donnés. --removableinstalle l'image UEFI sur le chemin codé en dur \EFI\BOOT\BOOT{arch}.EFIpour les supports amovibles, au lieu d'un chemin spécifique à la distribution. Votre grub.cfgen /boot/grub/devrait fonctionner avec les deux méthodes de démarrage et un nouveau dossier nommé x86_64-efidevrait exister maintenant à côté i386-pc.

    Pour être complet, il s'agit de la commande pour les supports non amovibles qui écrit et s'appuie sur les entrées NVRAM dans la plate-forme:

    grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
    

    Les installations UEFI appropriées incluent une ligne similaire à celle ci-dessous /etc/fstab, mais la configuration est fonctionnelle sans et l'image UEFI (similaire au chargeur de démarrage MBR) n'est généralement écrite / mise à jour que lors de l'installation du système d'exploitation.

    UUID=1234-567F /boot/efi vfat defaults 0 1
    

Ajout d'un ESP ou GRUB-BBP à une installation avec GPT

L'ajout d'un ESP à une installation héritée sur un lecteur partitionné GPT est très similaire à ce qui précède:

  1. Installez le grub-efi-amd64-binpackage.
  2. Créez une partition avec un système de fichiers FAT32 similaire aux instructions ci-dessus en redimensionnant la partition racine et définissez l' bootindicateur.
  3. Montez les partitions et exécutez la grub-installcommande ci-dessus qui inclut le --removableparamètre.

Cela fonctionne également si vous souhaitez simplement démarrer votre installation UEFI existante sur un autre ordinateur.

La création d'une partition de démarrage BIOS (BBP) pour GRUB est un peu différente:

  1. Installez le grub-pc-binpackage.

  2. Créez une partition similaire aux instructions ci-dessus en redimensionnant la partition racine et définissez l' bios_grubindicateur. Ne choisissez aucun système de fichiers et laissez-le non formaté.

  3. Modifiez le fichier de configuration /etc/default/grubavec des droits d'administration et ajoutez-le GRUB_DEVICE=/dev/sdb6à la fin. Remplacez /dev/sdb6par le nom de périphérique réel de votre BBP. Vous pouvez utiliser l'éditeur de ligne de commande nano pour simplifier les choses.

    Installez l'image GRUB MBR sur le BBP avec:

    grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
    

    Vous souhaiterez peut-être supprimer ou commenter la ligne /etc/default/grubet l'ajouter à l'installation réelle.

Bonus: ajouter une partition pour Mac sur une installation avec GPT

J'ai trouvé que le tout nouveau Mac (Mac Mini A1347 EMC 2840) avec lequel je testais pouvait démarrer à partir d'un ESP FAT32 standard, même à partir de MBR! Quoi qu'il en soit, c'est parti:

  1. Installez les grub-efi-amd64-bin, hfsprogs, mactel-bootet mactel-boot-logo(facultative). Vous devez activer les référentiels Univers ( Comment activer le référentiel "Univers" à partir de la ligne de commande? ) Et ajouter le PPA de support Mactel actuel (voir l' équipe de la communauté de support Mactel pour plus de détails) pour les installer tous.

  2. Créez une partition avec un système de fichiers HFS + similaire aux instructions ci-dessus en redimensionnant la partition racine. Cette fois, nous avons besoin de quelques mégaoctets de plus, alors doublez la taille de l'ESP si vous n'aviez que 5 mégaoctets ou moins auparavant. Aucun drapeau n'est requis.

  3. Montez les partitions:

    mkdir -p /mnt/esp-mac
    mount $esp-mac_device /mnt/esp-mac
    mkdir -p /mnt/rootfs
    mount $root_device /mnt/rootfs
    

    Remarque: j'ai choisi $esp-mac_deviceet /mnt/esp-macpour éviter les conflits.

    Exécutez la grub-installcommande qui inclut le --removableparamètre:

    grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
    

    Enfin, configurez la partition comme un Mac s'attend à ce qu'elle soit:

    sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
    sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
    sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
    sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
    echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
    

    Pour démarrer Ubuntu à partir d'un support externe sur un Mac, il vous suffit maintenant d'appuyer sur la touche option ou Altsur les claviers Windows et de sélectionner le bon disque.

    Gestionnaire de démarrage Mac affichant les volumes et le logo Ubuntu

À propos des indicateurs de partition, des codes de type et des GUID

Pour être aussi précis que possible, l'indicateur de démarrage n'est pas important pour GRUB, par défaut GRUB recherche les UUID pour trouver le bon système de fichiers à partir duquel démarrer. La définition de l'indicateur de démarrage ou de l'indicateur bios_grub dans GParted définit généralement un type (MBR) ou GUID (GPT) pour la partition.

L'avantage de définir le type ou le GUID correct, en plus d'avoir une configuration qui fonctionne correctement, est que ces partitions seront cachées dans le gestionnaire de fichiers. Le moyen le plus simple de vérifier et de modifier les types et les GUID est via Disks ( gnome-disks).

capture d'écran montrant les lecteurs et les partitions dans les disques gnome

capture d'écran montrant la boîte de dialogue d'édition de partition dans les disques gnome

Vous pouvez également utiliser parted ou gdisk:

  • 0xef est le code de type pour ESP dans MBR à utiliser avec fdisk
  • ef00 est le code de type abrégé pour ESP dans GPT pour une utilisation avec gdisk
  • ef02 est le code de type abrégé pour BBP dans GPT pour une utilisation avec gdisk

Wikipedia a une grande liste de GUID pour GPT .

Les équivalents de la ligne de commande partedselon le manuel sont parted $device set partition esp onet parted $device set partition bios_grub on.

LiveWireBT
la source
Je n'ai pas documenté les détails. Mais j'ai pu simplement partitionner mon lecteur flash en gpt, créer une partition efi et copier les fichiers de démarrage efi dans la partition efi. Le grub-mkimage crée un grubx64.efi qui attend certains chemins pour les fichiers, donc j'ai juste copié la structure des fichiers de mon installation dans / boot / grub et ajouté un grub.cfg avec une entrée de fichier de configuration à un autre grub.cfg dans mon / iso dossier pour démarrer en boucle mes ISO. Probablement plus correct pour créer votre propre grubx64.efi avec l'image de création, mais la copie a fonctionné.
oldfred
J'ai cherché haut et bas en essayant de comprendre comment faire la partie "Ajouter un ESP à une installation existante avec MBR". J'étais nerveux à ce sujet, mais cela a fonctionné du premier coup! Très bonne réponse!
Mark E. Haase
J'essaie d'ajouter la capacité de démarrage EFI à une installation complète BIOS / MRR d'Ubuntu sur USB en utilisant la partie Ajouter un ESP à une installation existante avec MBR de la réponse. J'obtiens une "Erreur: fichier /boot/introuvable". Le grub.cfgdans la partition ESP pointe vers l'UUID droit. Des idées? Je serais heureux de poster une nouvelle question.
user68186
@ user68186 avez-vous pu le faire?
BRabbit27
J'ai pu installer Ubuntu sur mon disque dur externe à partir d'un Mac. Lorsqu'il est connecté au Mac, il démarre correctement dans Ubuntu. Cependant, lorsqu'il est connecté à une machine Windows10 (xps 15 9560) dans les périphériques de démarrage, le disque dur externe n'apparaît pas. Mon intuition est due à l'UEFI. Quelqu'un peut-il confirmer si mon intuition est bonne et aussi si ce fil est ce dont j'ai besoin pour pouvoir démarrer à partir d'une machine Windows?
BRabbit27