Suivant: référence de image-type, Précédent: Référence de image
, Monter: Créer des images systèmes [Table des matières][Index]
Imaginons que vous vouliez créer une image MBR avec trois partitions distinctes :
%simple-os
.
Vous écririez ensuite la définition d’image suivante dans un fichier
mon-image.scm
par exemple.
(use-modules (gnu) (gnu image) (gnu tests) (gnu system image) (guix gexp)) (define Mio (expt 2 20)) (image (format 'disk-image) (operating-system %simple-os) (partitions (list (partition (size (* 40 Mio)) (offset (* 1024 1024)) (label "GNU-ESP") (file-system "vfat") (flags '(esp)) (initializer (gexp initialize-efi-partition))) (partition (size (* 50 Mio)) (label "DATA") (file-system "ext4") (initializer #~(lambda* (root . rest) (mkdir root) (call-with-output-file (string-append root "/data") (lambda (port) (format port "my-data")))))) (partition (size 'guess) (label root-label) (file-system "ext4") (flags '(boot)) (initializer (gexp initialize-root-partition))))))
Remarquez que la première et la troisième partition utilisent les procédure
d’initialisation par défaut, respectivement initialize-efi-partition et
initialize-root-partition. Initialize-efi-partition installe un chargeur EFI
GRUB qui charge le chargeur d’amorçage GRUB situé sur la partition
racine. Initialize-root-partition instancie un système complet défini par le
système d’exploitation %simple-os
.
Vous pouvez maintenant lancer :
guix system image mon-image.scm
pour instancier la définition de l’image
. Cela produit une image
disque qui a la structure attendue :
$ parted $(guix system image mon-image.scm) print … Model: (file) Disk /gnu/store/yhylv1bp5b2ypb97pd3bbhz6jk5nbhxw-disk-image: 1714MB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 43.0MB 41.9MB primary fat16 esp 2 43.0MB 95.4MB 52.4MB primary ext4 3 95.4MB 1714MB 1619MB primary ext4 boot
La taille de la partition boot
a été inférée à 1619 Mo
pour
qu’elle soit assez grande pour héberger le système d’exploitation
%simple-os
.
Vous pouvez aussi utiliser les définitions d’enregistrements image
existantes et hériter d’elles pour simplifier la définition de
l’image
. Le module (gnu system image)
fournit les variables de
définition d’image
suivantes.
An MBR disk-image composed of a single ROOT partition. The ROOT partition starts at a 1 MiB offset so that the bootloader can install itself in the post-MBR gap.
An MBR disk-image composed of two partitions: a 64 bits ESP partition and a
ROOT boot partition. The ESP partition starts at a 1 MiB offset so
that a BIOS compatible bootloader can install itself in the post-MBR gap.
The image can be used by x86_64
and i686
machines supporting
only legacy BIOS booting. The ESP partition ensures that it can also be
used by newer machines relying on UEFI booting, hence the hybrid
denomination.
Une image disque MBR composée de deux partitions : une partition ESP 64 bits
et une partition racine d’amorçage. Cette image peut être utilisée sur la
plupart des machines x86_64
et i686
qui prennent en charge
l’amorçage via le BIOS ou l’UEFI.
Comme efi-disk-image
mais avec une partition EFI 32 bits.
Une image ISO-9660 composée d’une seule partition amorçable. Cette image
peut être utilisée sur la plupart des machine x86_64
et i686
.
Une image Docker qui peut être utilisée pour démarrer un conteneur Docker.
En utilisant efi-disk-image
nous pouvons simplifier notre précédente
déclaration d’image
de cette manière :
(use-modules (gnu) (gnu image) (gnu tests) (gnu system image) (guix gexp) (ice-9 match)) (define Mio (expt 2 20)) (define data (partition (size (* 50 Mio)) (label "DATA") (file-system "ext4") (initializer #~(lambda* (root . rest) (mkdir root) (call-with-output-file (string-append root "/data") (lambda (port) (format port "my-data"))))))) (image (inherit efi-disk-image) (operating-system %simple-os) (partitions (match (image-partitions efi-disk-image) ((esp root) (list esp data root)))))
Cela donnera exactement la même instanciation d’image
mas la
déclaration de l’image
est plus simple.
Suivant: référence de image-type, Précédent: Référence de image
, Monter: Créer des images systèmes [Table des matières][Index]