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.
Installez le grub-efi-amd64-bin
package. Cela n'installera que les ressources nécessaires. Il ne basculera pas votre installation de style MBR existante vers UEFI et bouleversera les choses.
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.
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_device
et $root_device
par les dispositifs appropriés, par exemple /dev/sdb2
et /dev/sdb1
. Les points de montage /mnt/esp
et ne /mnt/rootfs
sont 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 $device
c'est l'ensemble du périphérique, par exemple /dev/sdb
, pas une partition.
Voilà, nous avons déjà terminé, mais permettez-moi d'essayer d'expliquer quelques choses.
Le paramètre --target x86_64-efi
garantira que les images et modules UEFI seront installés sur les chemins donnés. --removable
installe l'image UEFI sur le chemin codé en dur \EFI\BOOT\BOOT{arch}.EFI
pour les supports amovibles, au lieu d'un chemin spécifique à la distribution. Votre grub.cfg
en /boot/grub/
devrait fonctionner avec les deux méthodes de démarrage et un nouveau dossier nommé x86_64-efi
devrait 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:
- Installez le
grub-efi-amd64-bin
package.
- 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'
boot
indicateur.
- Montez les partitions et exécutez la
grub-install
commande ci-dessus qui inclut le --removable
paramè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:
Installez le grub-pc-bin
package.
Créez une partition similaire aux instructions ci-dessus en redimensionnant la partition racine et définissez l' bios_grub
indicateur. Ne choisissez aucun système de fichiers et laissez-le non formaté.
Modifiez le fichier de configuration /etc/default/grub
avec des droits d'administration et ajoutez-le GRUB_DEVICE=/dev/sdb6
à la fin. Remplacez /dev/sdb6
par 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/grub
et 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:
Installez les grub-efi-amd64-bin
, hfsprogs
, mactel-boot
et 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.
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.
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_device
et /mnt/esp-mac
pour éviter les conflits.
Exécutez la grub-install
commande qui inclut le --removable
paramè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.
À 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
).
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 parted
selon le manuel sont parted $device set partition esp on
et parted $device set partition bios_grub on
.
/boot/
introuvable". Legrub.cfg
dans la partition ESP pointe vers l'UUID droit. Des idées? Je serais heureux de poster une nouvelle question.