C'est possible, et c'est très fréquent fait avec des clés USB externes et des disques internes.
Concernant les types de table de partition :
-
Le BIOS n'a normalement pas besoin n'importe quelle table de partition. Il ne s'intéresse qu'au code d'amorçage partie qui correspond aux 440 premiers octets de votre MBR. (Bien qu'il y ait des exceptions. Certaines implémentations du BIOS se cassent si elles ne peuvent pas trouver un MBR avec l'un des types de partition habituels. Espérons que ceux-ci soient rares.)
La table de partition GPT ne fonctionne pas physiquement remplacer un MBR - il commence toujours au secteur 1, tandis que le MBR est dans le secteur 0 - il est donc possible qu'un disque ait les deux. En fait, la plupart des disques GPT le font avoir un « MBR de protection » contenant une seule partition qui couvre l'intégralité du disque, pour empêcher les anciens outils de partitionnement uniquement MBR de détruire accidentellement les données.
Ainsi, vous pouvez installer, par exemple, le secteur de démarrage Syslinux dans votre MBR, et il démarrera. (Le
syslinux-install_update
le script le fera pour vous, mais vous pouvez cherchergptmbr.bin
dans votre package syslinux pour le faire manuellement.)Tout comme l'indicateur « actif » sur les partitions MBR, Syslinux recherchera l'indicateur « Legacy BIOS bootable » sur les partitions GPT (bit 2 – UEFI spec 2.4 section 5.3.3 tableau 20); le script susmentionné définit également cet indicateur automatiquement si vous avez
sgdisk
(à partir de gptfdisk) installé.GRUB peut également être utilisé, mais c'est aussi un peu plus ennuyeux. Étant donné que GRUB 2 veut "intégrer" des parties de lui-même dans les secteurs 1 à 62 traditionnellement inutilisés, il écraserait un GPT stocké au même emplacement. Vous devrez donc peut-être créer une partition dédiée de 2 à 4 Mo et la marquer comme amorçable par le BIOS, de sorte que
grub-install
se trouverait un lieu d'encastrement. -
D'autre part, la spécification UEFI fait nécessitent la prise en charge des types de partition MBR (section 12.3.1) et attribuent le type de partition MBR
0xEF
à la partition système EFI (section 5.2.2).Donc, si pour une raison quelconque vous ne parvenez pas à faire fonctionner votre disque avec GPT, vous pouvez toujours créer une partition système EFI sur MBR, et elle sera utilisée tant qu'elle a le bon système de fichiers et tous les fichiers nécessaires (section 12.3.1.3) :
Pour les périphériques de support amovibles, il ne doit y avoir qu'une seule partition système compatible UEFI, et cette partition doit contenir un répertoire défini par UEFI dans le répertoire racine. Le répertoire sera nommé
EFI
. Tous les chargeurs et applications du système d'exploitation seront stockés dans un sous-répertoire sousEFI
appeléBOOT
. Il ne doit y avoir qu'une seule image EFI exécutable pour chaque architecture de processeur prise en charge dans leBOOT
annuaire. Pour qu'un support amovible soit amorçable sous EFI, il doit être construit conformément aux règles énoncées dans la section 3.4.1.1.
En ce qui concerne les systèmes d'exploitation, Linux ne se soucie généralement pas du tout de savoir s'il est démarré à partir du BIOS aujourd'hui et à partir de l'UEFI demain. J'ai dû redémarrer mon ordinateur portable du mode UEFI au mode "compatibilité BIOS" et inversement peut-être une centaine de fois cette semaine, tout en essayant de trouver un bogue dans le support UEFI 3.17...
Notez que l'article "BIOS to UEFI Transformation" traite d'une chose assez différente. Il décrit comment installer UEFI lui-même - une implémentation UEFI appelée "DUET" - à démarrer à partir d'un système BIOS uniquement. Cela n'a rien à voir avec le démarrage d'un système d'exploitation directement à partir du BIOS.
Oui, c'est possible.
L'idée de base est de partitionner votre clé USB en GPT comme ceci :
- Partition de démarrage du BIOS (type GPT
1686148-6449-6E6F-744E-656564454649
) - 1 Mio, pas de système de fichiers - Partition système EFI (type GPT
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
) - 200 Mio, système de fichiers VFAT - Partition de démarrage Linux (type GPT
0FC63DAF-8483-4772-8E79-3D69D8477DE4
) - 1 Gio, système de fichiers ext4 - Système de fichiers Linux root/home (type GPT
0FC63DAF-8483-4772-8E79-3D69D8477DE4
) - espace restant, système de fichiers XFS ou Btrfs
Ce partitionnement nous permet de démarrer sur des systèmes hérités car avec GPT, il y a encore de la place pour un MBR (pour des raisons de rétrocompatibilité) et Grub2 a suffisamment d'espace pour installer une étape intermédiaire dans la partition de démarrage du BIOS. Les BIOS hérités ne se soucient pas du schéma de partitionnement et le noyau Grub2/Linux n'a aucun problème à comprendre GPT sur les systèmes hérités.
Sur les systèmes UEFI, le micrologiciel UEFI ignore le MBR et utilise la partition système EFI comme point d'entrée.
Par exemple, avec Fedora, vous devez essentiellement faire ce qui suit :
Assurez-vous que le système de fichiers Linux Boot est monté sous /boot
et que le système de fichiers de la partition système EFI est monté sous /boot/efi
.
(Ré-)Installez les chargeurs de démarrage hérités et UEFI :
grub2-pc grub2-efi-x64 shim-x64 efibootmgr
(Re-)Générez les fichiers de configuration grub pour le démarrage hérité et UEFI :
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg
Selon que votre système a démarré en mode hérité ou UEFI, vous devez corriger le premier ou le deuxième fichier et remplacer (linux|initrd)16
avec (linux|initrd)efi
ou l'inverse.
Installez grub dans le MBR :
# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device
Voilà.