installer:bios_uefi

Ceci est une ancienne révision du document !


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.

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.
  • 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 UEFIet BIOS.

Trouvez les références des disques détectés sur votre machine:

root@machine $ geom disk list
Geom name: ada0
Providers:
1. Name: ada0
   Mediasize: 1000204886016 (932G)
   Sectorsize: 512
   Stripesize: 4096
   Stripeoffset: 0
   Mode: r1w1e2
   descr: WDC WD10EZEX-08WN4A0
   lunid: 50014ee263369a74
   ident: WD-WCC6Y1YZ7T6R
   rotationrate: 7200
   fwsectors: 63
   fwheads: 16

Le paramètre sector size est en général faux, pour des raisons de compatibilité.

Déterminez d'abord votre situation actuelle:

root@machine $ gpart show
=>        34  1953525101  ada0  GPT  (932G)
          34      999967     1  efi  (488M)
     1000001  1757172651     2  linux-data  (838G)
  1758172652    93389332        - free -  (45G)
  1851561984   101961728     3  linux-data  (49G)
  1953523712        1423        - free -  (712K)

Si un partitionnement existe déjà comme ci dessus, détruisez le au préalable:

root@machine $ gpart destroy ada0

La plupart des firmware reconnaissent le schémas de partitionnement GPT , successeur de MBR.

Au passage, assurons nous que geom(4) va calculer les alignements au préalable.

root@machine $ sysctl kern.geom.part.mbr.enforce_chs=0
root@machine $ gpart create -s  gpt ada0

En règle générale, il es 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.

Créons une première partition pour l'EFI, qui sera étiquetée efiboot0:

root@machine $ gpart add -a 4k -t efi -s 200M -l efiboot0 ada0

Copions le micro-code que va lire le bios pour amorcer, ici, un saut vers la partition EFI.

root@machine $ gpart bootcode -p /boot/boot1.efifat -i 1 ada0 

Un firmware EFI sera capable de monter cette partition et d' exécuter le bootloader qu'elle contient.

Dans le cas du BIOS, il faut ruser.

Ajoutons une partition pour le BIOS:

root@machine $ gpart add -a 4k -t freebsd-boot -s 512k -l gptboot0 ada0
root@machine $ gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 ada0 

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.

Passons à FreeBSD en lui même, soit une partition pour le swap et le reste du disque pour un système ZFS.

root@machine $ gpart add -a 1m -s 2G -t freebsd-swap -l swap0 ada0
root@machine $ gpart add -a 1m -t freebsd-zfs -l zfs0 ada0

Et pour finir, déclarons ce disque actif:

root@machine $ gpart set -a active ada0

Voyons ce que ça donne:

root@machine $ gpart show
=>        40  5860533088  ada0  GPT  (2.7T)
          40      409600     1  efi  (200M)
      409640        1024     2  freebsd-boot  (512K)
      410664         984        - free -  (492K)
      411648     4194304     3  freebsd-swap  (2.0G)
     4605952  5855926272     4  freebsd-zfs  (2.7T)
  5860532224         904        - free -  (452K)
root@machine gpart list -a

vous donnera plus de détails.

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.

  • installer/bios_uefi.1587898400.txt.gz
  • Dernière modification : 2020/04/26 10:53
  • de david