Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
installer:bios_uefi [2021/02/18 22:10] – [Amorces] david | installer:bios_uefi [2022/06/25 22:22] (Version actuelle) – newfs david |
---|
====== Démarrer sur une architecture de type PC ====== | ====== Démarrer sur une architecture de type PC ====== |
| |
Il s'agit des machines les plus communes, c'est à dire majoritairement basée sur des puces de type Intel x86 et x86_64. A opposer au machines PowerPC, ARM, RISC-V ou MIPS. | Il s'agit des machines les plus communes, c'est à dire majoritairement basées sur des puces de type Intel x86 et x86_64. À opposer aux machines PowerPC, ARM, RISC-V ou MIPS. |
</jumbotron> | </jumbotron> |
| |
Sur cette architecture, un micrologiciel (//firmware//) va chercher à amorcer sur disque dur selon deux standards: | Sur cette architecture, un micrologiciel (//firmware//) va chercher à amorcer sur disque-dur selon deux standards: |
| |
* BIOS, l'ancienne méthode cherche à lire les premiers secteurs du disque. | * BIOS, l'ancienne méthode cherche à lire les premiers secteurs du disque. |
* [[ https://uefi.org/ | UEFI ]], le dernier standard, parcours une hiérarchie de fichiers à partir de la première partition de type //FAT// trouvée. | * [[ https://uefi.org/ | UEFI ]], le dernier standard, parcours une hiérarchie de fichiers à partir de la première partition de type //FAT// trouvée. |
| |
Le partitionnement décrit dans cet article va vous permettre d'être à fois compatible //UEFI//et //BIOS//. | Le partitionnement décrit dans cet article va vous permettre d'être à la fois compatible //UEFI//et //BIOS//. |
| |
===== Disques ===== | ===== Disques ===== |
</code> | </code> |
| |
Si un partitionnement existe déjà comme ci dessus, détruisez le au préalable: | Si un partitionnement existe déjà comme ci-dessus, détruisez-le au préalable: |
| |
<code bash> | <code bash> |
</code> | </code> |
| |
| Vous pouvez retrouver les //uuid// dans ''/dev/gptid'' à l'aide de la clef ''kern.geom.label.gptid.enable'' de loader.conf(5). Pour pouvoir les monter via leur identifiant dans fstab(5), par exemple. |
===== Schémas de partitionnement ===== | ===== Schémas de partitionnement ===== |
| |
La plupart des firmware reconnaissent le schémas de partitionnement [[https://fr.wikipedia.org/wiki/GUID_Partition_Table | GPT ]], successeur de MBR. | La plupart des firmwares reconnaissent le schéma de partitionnement [[https://fr.wikipedia.org/wiki/GUID_Partition_Table | GPT ]], successeur de MBR. |
| |
Au passage, assurons nous que geom(4) va calculer les alignements au préalable. | Au passage, assurons-nous que geom(4) va calculer les alignements au préalable. |
| |
<code bash> | <code bash> |
| |
En règle générale, il est préférable d'assurer les alignement sur 4096 octets (//4k//). | En règle générale, il est préférable d'assurer les alignement sur 4096 octets (//4k//). |
Les partitions seront numérotée dans l'ordre où on les créés. | Les partitions seront numérotées dans l'ordre où on les crée. |
| |
Créons une première partition pour l'EFI, qui sera étiquetée //efiboot0//: | Créons une première partition pour l'EFI, qui sera étiquetée //efiboot0//: |
</code> | </code> |
| |
Un firmware EFI sera capable de monter cette partition et d' exécuter le //bootloader// qu'elle contient. | Un firmware EFI sera capable de monter cette partition et d'exécuter le //bootloader// qu'elle contient. |
| |
<callout type="warning" icon="true"> | <callout type="warning" icon="true"> |
En fait ''boot1.efifat'' est une partition FAT entière qui contient aussi bien le lanceur //EFI// (''/EFI/BOOT/BOOTX64.EFI'') que les méta-données de la partition. | En fait ''boot1.efifat'' est une partition FAT entière qui contient aussi bien le lanceur //EFI// (''/EFI/BOOT/BOOTX64.EFI'') que les méta-données de la partition. |
Depuis FreeBSD 13, ce fichier n'existe plus (s'il est encore là, c'est un vieux). Copiez directment ''/boot/loader.efi'' dans ''efi/boot/BOOTx64.efi''. | Depuis FreeBSD 13, ce fichier n'existe plus (s'il est encore là, c'est un vieux). Copiez directement ''/boot/loader.efi'' dans ''efi/boot/BOOTx64.efi'', après avoir formaté la partition avec newfs_msdos(8). |
</callout> | </callout> |
| |
</code> | </code> |
| |
le premier //bootcode// va s'inscrire dans le schéma //GPT// lui même pour aider la machine à trouver la partition //freebsd-boot// et y exécuter le deuxième, qui se trouve sur la deuxième partition (''-i 2''). | le premier //bootcode// va s'inscrire dans le schéma //GPT// lui-même pour aider la machine à trouver la partition //freebsd-boot// et y exécuter le deuxième, qui se trouve sur la deuxième partition (''-i 2''). |
| |
==== FreeBSD ==== | ==== FreeBSD ==== |
| |
Passons à FreeBSD en lui même, | Passons à FreeBSD en lui-même, |
soit une partition pour le swap et le reste du disque pour un système ZFS. | soit une partition pour le swap et le reste du disque pour un système ZFS. |
| |
| |
| |
===== Resultat ===== | ===== Résultat ===== |
| |
| |
===== Réplication ===== | ===== Réplication ===== |
| |
Les commande ''backup'' et ''restore'' de gpart(8) vous aideront à reproduire le schéma de partition d'un disque à l'autre.Et si vous utilisez zfs(8), vous pouvez ajouter de nouveaux disques **après** la mise en service de votre machine. | Les commande ''backup'' et ''restore'' de gpart(8) vous aideront à reproduire le schéma de partition d'un disque à l'autre. Et si vous utilisez zfs(8), vous pouvez ajouter de nouveaux disques **après** la mise en service de votre machine. |
| |
===== En savoir plus ===== | ===== En savoir plus ===== |