From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Autres langues
English ; français ;
Résumé :
draklive2 est un outil de création d’image ISO contenant un système Mageia autonome (ou « ISO autonome » en abrégé). L’image est un ISO hybride, ce qui lui permet d’être utilisée à la fois avec des supports optiques et des clés USB.

Contents

Vue d’ensemble

draklive2 utilise l’outil d’installation classique de Mageia pour créer le système autonome, avec quelques modifications ultérieures pour optimiser le système en vue d’une utilisation immédiate. Il compresse ensuite le système de fichiers racine résultant (pour réduire la taille de l’image ISO) et ajoute le chargeur de démarrage GRUB2 pour permettre le démarrage à partir du support autonome. Le chargeur d’amorçage est compatible avec l’ancien système (MBR) et l’amorçage EFI.

draklive2 est l’outil utilisé pour créer les ISOs autonomes de la distribution Mageia. Les utilisateurs et utilisatrices de Mageia peuvent également avoir recours à cet outil pour créer sur mesure leurs propres ISOs autonomes contenant un environnement de bureau ou une sélection de paquets non disponibles dans les offres officielles de Mageia.

Normalement, la composition de l’ISO Autonome créée avec draklive2 est déterminée par un fichier de configuration fourni par la personne qui l’utilise, mais si celui-ci est incomplet, le programme d’installation classique sera exécuté en mode graphique, ce qui permettra à la personne de sélectionner les langues, les environnements de bureau et les paquets par le biais de cette interface.

Origines

draklive2 est une évolution de l’outil initial draklive. À la différence de draklive, son unique fonction est de créer des images ISO ; la création d’images disques et la copie d’images sur des supports n’est pas prise en charge.

Les principales nouveautés de l’outil initial draklive sont les suivantes :

  • la possibilité d’utiliser l’interface graphique du programme d’installation pour configurer le système autonome
  • une configuration simplifiée basée sur le texte
  • le chargeur d’amorçage GRUB2 est utilisé à la fois pour le démarrage des systèmes hérités (du passé) et des systèmes EFI
  • le menu de démarrage de GRUB2 gère à la fois la langue et la sélection du clavier et est lui-même traduit dans la langue sélectionnée
  • les systèmes de démarrage EFI 32 bits et 64 bits sont pris en charge
  • la persistance est prise en charge

Démarrage rapide

Pour commencer, installez d’abord les paquets drakiso et drakiso-bootloader-files. Si vous avez l’intention d’utiliser l’interface graphique du programme d’installation, installez également le paquet x11-server-xephyr ou x11-server-xnest. Ensuite, si nécessaire, installez et configurez sudo pour vous permettre d’exécuter les commandes qui requièrent les privilèges de l’administrateur (root). Enfin, sélectionnez l’un des trois exemples suivants et suivez les instructions qui s’y rapportent.

Si draklive2 est exécuté par l’utilisateur root, sudo est inutile et son installation devient alors superflue.

Remarque :
Vous pouvez créer des variantes 32 bits et 64 bits de votre ISO autonome, indépendamment du système que vous utilisez pour les créer, qu’il soit 32 bits ou 64 bits. Cependant, si vous souhaitez créer une ISO amorçable EFI 64 bits, vous devez installer le paquet drakiso-bootloader-files en version x86_64, et, si vous souhaitez créer une ISO amorçable EFI 32 bits, vous devez installer le paquet drakiso-bootloader-files en version i586.

Exemple 1 : ISO autonome Xfce

Cet exemple crée une ISO autonome basée sur l’environnement de bureau Xfce. Le résultat est très similaire aux ISO autonomes officiels de Mageia Xfce.

Pour créer l’ISO :

1. Faire une copie de travail de /usr/share/drakiso/examples/xfce. Le système de fichiers contenant votre copie de travail doit avoir au moins 12 Go d’espace libre.

2. Dans la copie de travail, modifier le fichier config/settings.cfg et ajuster les paramètres suivants :

arch – soit i586 ou x86_64
repository – soit un FTP ou HTTP URL ou un chemin vers un miroir local du dépôt

3. Dans une fenêtre de terminal, passez au répertoire de niveau supérieur de votre copie de travail et exécutez la commande :

draklive2 --clean --all

Exemple 2 : Personnaliser l’ISO autonome

Cet exemple crée une ISO autonome à partir des sélections effectuées par la personne dans l’interface graphique du programme d’installation.

Pour créer l’ISO :

1. Faire une copie de travail du fichier /usr/share/drakiso/examples/gui. Le système de fichiers contenant votre copie de travail doit avoir au moins 6 Go d’espace libre, et 12 Go ou plus si vous sélectionnez un environnement de bureau lourd ou un grand nombre de paquets.

2.Dans la copie de travail, modifiez le fichier config/settings.cfg et ajustez les paramètres suivants :

arch – soit i586 ou x86_64

repository – soit une URL FTP ou HTTP, soit un chemin d’accès à un miroir local du dépôt


Si vous souhaitez que toutes les langues et paramètres régionaux soient inclus, ajoutez également la ligne

region=all

(la personne sera invitée à choisir une langue lors du démarrage du système autonome).

Si vous souhaitez utiliser le nom d’utilisateur par défaut « live » sans mot de passe, ajoutez également la ligne

default_user=live

Si vous souhaitez une connexion automatique, ajoutez également la ligne

default_session=<session name>

<session name> est la valeur du Nom trouvé dans le fichier session .desktop (situé dans /usr/share/xsessions), après suppression de tout espace.

Et avec la v1.15 ou plus récente de drakiso

Si vous comptez partager votre ISO avec d’autres personnes, changez le paramètre show_licence de no à yes.

Si vous voulez que MageiaWelcome démarre automatiquement, changer le paramètre show_welcome de no à yes.

Si vous souhaitez inclure l’outil d’installation autonome (draklive-install), changer le paramètre live_installer de no à yes.

Si vous souhaitez inclure les pilotes propriétaires (NVIDIA et Broadcom wl), changer le paramètre nonfree_drivers de no à yes.

Si vous voulez inclure (ou exclure) des paquets supplémentaires qui ne peuvent pas être sélectionnés dans l’interface graphique, ajouter une liste de noms de paquets séparés par des virgules au paramètre include_packages (ou exclude_packages). Utilisez le nom du paquet de base, et surtout sans espace autour des virgules.

3. Dans un terminal, changez de répertoire pour atteindre le niveau supérieur de votre copie de travail et exécutez la commande :

draklive2 --clean--all

L’interface graphique de l’outil d’installation démarre et vous permet de choisir votre (vos) langue·s, votre (vos) environnement·s de bureau, les paquets, les détails de l’utilisateur ou utilisatrice et divers paramètres du système avant de créer l’image ISO.

Remarque :
Le chargeur d’amorçage prendra en charge toutes les langues, quelle que soit la ou les langues que vous aurez sélectionnées. Voir ci-dessous pour savoir comment changer cela.

Exemple 3 : ISO autonome minimal

Cet exemple crée une ISO autonome avec un système Mageia en mode texte uniquement.

Pour créer l’ISO :

1. Faites une copie de travail de /usr/share/drakiso/exemples/minimal. Le système de fichiers contenant votre copie de travail doit avoir au moins 3 Go d’espace libre.

2. Dans la copie de travail, modifiez le fichier config/settings.cfg et ajustez les paramètres suivants :

arch – soit i586 ou x86_64
repository – soit une URL FTP ou HTTP ou un chemin d’accès à un miroir local du dépôt

3. Dans un terminal, changez de répertoire pour atteindre le niveau supérieur de votre copie de travail et exécutez la commande :

draklive2 --clean --all

Dans le détail

draklive2 se lance en ligne de commande. Il peut être exécuté par n’importe quel utilisateur, car il utilisera alors la commande sudo pour exécuter toutes les opérations qui nécessitent les privilèges root. S’il est lancé sans aucune option en ligne de commande, il se contentera de donner un résumé des options disponibles et se terminera automatiquement.


draklive2 crée l’ISO autonome en quatre étapes essentielles :

Root

Il utilise l’outil d’installation classique pour installer un système Mageia standard dans une réplique du système de fichiers de base et effectue ensuite toute personnalisation post-installation indiquée par la personne. La seule différence significative par rapport à une installation standard est que celle-ci installe le support pour tout le matériel (plutôt que de détecter ce qui est nécessaire pour la machine cible), et (en option) installe le support pour tous les environnements linguistiques (locales).
Cette étape est effectuée lorsque l’option --root ou --all est précisée sur la ligne de commande.

Boot

Cela permet de préparer tous les fichiers nécessaires au démarrage du système autonome. La réplique du système de fichiers de base doit avoir été créé avant d’effectuer cette étape, car il est utilisé pour fournir l’image du noyau Linux et créer l’image mémoire initiale utilisée lors du démarrage du système.
Cette étape est effectuée lorsque l’option --boot ou --all est définie sur la ligne de commande. Il est normalement inutile de la relancer si l’étape Root est relancée.

Loop

Cela compresse le système de fichiers racine factice en une image de système de fichiers squashfs. Celle-ci est stockée dans le système de fichiers image ISO dans le fichier /loopbacks/distrib.sqfs. Lorsque vous démarrez le système autonome, cette image est montée (en lecture seule) et fusionnée soit en mémoire ou une partition Overlay persistante utilisant le système de fichiers overlayfs. Cette fusion en mémoire ou avec une partition persistante est ce qui permet d’apporter des modifications au système en cours d’exécution.
Cette étape est effectuée lorsque l’option --loop ou --all est mentionnée sur la ligne de commande. Elle doit être relancée si l’étape Root est relancée. Elle doit seulement être relancée après l’étape de démarrage si l’image en mémoire change.

Master

Cela permet de créer l’image ISO finale à partir des fichiers créés lors des étapes de démarrage et de relance et de générer les sommes de contrôle demandées.
Cette étape est effectuée lorsque l’option --master ou --all est renseignée sur la ligne de commande. Elle doit être exécutée à nouveau si l’une des étapes précédentes est exécutée une nouvelle fois.

Si plusieurs étapes sont précisées sur la ligne de commande, draklive2 les exécutera dans l’ordre correct, quel que soit l’ordre dans lequel elles apparaissent.

L’option --clean peut être ajoutée à la ligne de commande pour supprimer tous les fichiers créés lors des exécutions précédentes. Notez qu’elle utilise les paramètres actuels pour déterminer ce qu’il faut supprimer ; la dernière exécution effectuée est totalement effacée.

draklive2 produit normalement une quantité relativement faible d’informations au fur et à mesure de sa progression. Le niveau de verbosité peut être augmenté ou diminué en ajoutant l’option --verbose <level> sur la ligne de commande, où <level> varie de 0 (verbosité minimale) à 4 (verbosité maximale).

Composition de l’ISO

La composition de l’ISO autonome est contrôlée par deux fichiers, un fichier de paramètres de base et un fichier de configuration de construction. draklive2 recherche ces fichiers dans le répertoire demandé au moyen de l’option --config-dir en ligne de commande (ci-après dénommé <config-dir>). Dans ce cas, <config-dir> sera placé dans le répertoire de travail en cours.

Remarque :
draklive2 est hautement configurable, mais nombre des options décrites ci-dessous sont rarement requises et peuvent être omises dans la plupart des cas. Il est suggéré que l’utilisateur ou l'utilisatrice commence par un des exemples dans /usr/share/drakiso/examples, et modifie les paramètres et la configuration de la construction selon les besoins.

Paramètres de bases

Le fichier des paramètres de base contient une liste de paramètres permettant de contrôler la création de l’ISO autonome. Le nom et l’emplacement de ce fichier peuvent être spécifiés par l’option --settings en ligne de commande. Si elle n’est pas spécifiée, la valeur par défaut est <config-dir>/config/settings.cfg.

Syntaxe

Chaque ligne du fichier des paramètres de base doit contenir un nom de paramètre unique et une valeur associée, le nom et la valeur étant séparés par un signe « = », p. ex.

arch=x86_64 release=7

Les noms doivent être de simples identificateurs alphanumériques et ne doivent pas contenir d’espace. Les valeurs peuvent être n’importe quelle séquence de caractères. Si une valeur est placée entre guillemets simples ou doubles, la paire de caractères la plus éloignée est supprimée. Aucun espace n’est autorisé entre le nom et le signe « = » ou, pour les valeurs entre guillemets, entre le signe « = » et le premier caractère de citation ou après le dernier caractère de citation.

Les lignes commençant par un caractère « # » sont traitées comme des commentaires et sont ignorées.

Remarque :
Dans les sections suivantes, un nom de paramètre entre crochets (par exemple <arch>) est utilisé comme abréviation pour la valeur du paramètre.

Paramètres requis

draklive2 exige que les paramètres suivants soient définis :

arch

Les architectures supportées pour le système autonome sont i586 et x86_64.

repository
L’URL ou le chemin d’accès au dépôt qui sera utilisé pour créer le système autonome. Seuls les URL FTP ou HTTP sont pris en charge. L’URL ou le chemin d’accès doit se terminer par le numéro de version de Mageia ; l’architecture sera ajoutée automatiquement.
vendor
Une chaîne arbitraire de 128 caractères maximum identifiant la personne ou l’organisation qui crée l’ISO autonome. Elle sera utilisée comme ID de l’éditeur dans les méta-données de l’ISO.

Paramètres optionnels

draklive2 reconnaît les paramètres optionnels suivants :

default_session
Le nom de session par défaut utilisé pour la connexion automatique. Ce doit être la valeur Nom trouvée dans le fichier de session .desktop (situé dans /usr/share/xsessions), après suppression de tout espace.
Sinon, aucun nom de session par défaut ne sera défini pour la connexion automatique.
default_user
Le nom de l’utilisateur ou utilisatrice par défaut du système autonome doit être un nom d’utilisateur Linux valide. S’il est renseigné, le système sera configuré pour se connecter automatiquement à cet utilisateur ou utilisatrice après le démarrage.
Faute de quoi, le programme d’installation sera exécuté et présentera l’écran de gestion des utilisateurs ou utilisatrices.
desktop
Une chaîne arbitraire. Utilisé seulement pour la construction du Nom de l’ISO autonome.
distro
Une chaîne arbitraire. Utilisé seulement pour la construction du Nom de l’ISO autonome.
media
Une chaîne arbitraire. Utilisé seulement pour la construction du Nom de l’ISO autonome.
product
Une chaîne arbitraire. Utilisé seulement pour la construction du Nom de l’ISO autonome.
region
L’ensemble des environnements linguistiques qui seront inclus dans l’ISO autonome. Cela peut être soit le nom d’un ensemble de paramètres linguistiques définis dans le fichier de configuration de la construction, soit la valeur spéciale all (qui entraîne l’inclusion de tous les paramètres linguistiques disponibles).
S’ils ne sont pas configurés, le programme d’installation sera exécuté et présentera les écrans de sélection de la langue et du clavier.
release
Une chaîne arbitraire. Utilisé seulement pour la construction du Nom de l’ISO autonome.
set
Une option issue de draklive. Non testée dans draklive2.
workdir
Le chemin d’accès au répertoire de travail de base pour draklive2. Tous les fichiers créés par draklive2 seront stockés dans un sous-répertoire (nommé comme le Nom de l’ISO autonome) sous ce répertoire.
À défaut, le répertoire de travail actuel sera utilisé.

Paramètres utilisateur

La personne peut ajouter des variables supplémentaires dans le fichier des paramètres de base pour les utiliser dans le fichier de configuration de construction. draklive2 ignorera ces paramètres.

Paramètres prioritaires

Un paramètre peut être écrasé (ou ajouté) en utilisant l’option de ligne de commande --define <name>=<value>.

Construire la configuration

Le fichier de configuration de construction décrit tous les aspects de la composition de l’ISO autonome. Le nom et l’emplacement de ce fichier peuvent être spécifiés par l’option de ligne de commande --config. S’il n’est pas sinifié, la valeur par défaut est <config-dir>/config/build.cfg.

Syntaxe

La configuration de construction est composée des types de données de base suivants :

number
toute séquence de chiffres décimaux
string
Toute séquence de caractères entre guillemets simples ou doubles. Si elle est entre guillemets simples, la chaîne de caractères est utilisée exactement comme elle est écrite. S’ils sont entre guillemets, certains caractères ont une signification particulière, comme décrit ci-dessous.
array
toute séquence d’éléments séparés par des virgules et mis entre crochets, p. ex. ['a','b','c']. Il est possible d’ajouter n’importe quel espace entre les éléments et la ponctuation. Les éléments peuvent être de n’importe quel type de données. Parfois, des tableaux sont utilisés pour contenir des paires de valeurs, auquel cas le digraphe « => » peut être utilisé pour séparer les deux éléments de chaque paire au lieu d’une virgule.
associative array
toute séquence de paires clé/valeur séparées par des virgules et placées entre parenthèses, la clé et la valeur étant séparées par le digraphe « => », p. ex. {a=>1,b=>2} .Tout espace peut être ajouté entre les clés et les valeurs et la ponctuation. Les clés doivent être de simples identificateurs alphanumériques (c’est-à-dire ne pas contenir d’espace). Les valeurs peuvent être de n’importe quel type de données.

Un caractère « # » en dehors d’une chaîne de caractères lance un commentaire. Ce caractère et tous les caractères suivants sur la même ligne sont ignorés.

Les lecteurs familiers avec Perl auront déjà réalisé que le fichier de configuration de construction utilise la syntaxe Perl. Le fichier peut, en fait, contenir n’importe quelle construction Perl ; la seule restriction étant que le tableau associatif décrivant la configuration de la construction est le dernier élément du fichier.

Les chaînes de caractères à double guillemet sont donc interprétées selon les règles de Perl. En plus des séquences d’échappement habituelles communes à la plupart des langages de programmation (par exemple «\n » pour une nouvelle ligne), toute variable Perl sera étendue à la valeur de la variable. Voir la documentation du langage Perl pour plus de détails.

Remarque :
Dans les sections suivantes, une clé de configuration entre parenthèses (par exemple {system}{vga_mode}) est utilisée comme raccourci pour la valeur de configuration.

Clés

La configuration complète de la construction est un tableau associatif qui peut contenir les clés suivantes :

system (requis)
Un tableau associatif contenant les valeurs de configuration utilisées pour créer et personnaliser le système autonome lors de l’étape Root. Il peut contenir les clés suivantes :
enabled_media (requis)
Un tableau précisant les médias dans le dépôt sélectionné qui doivent être activés lors de l’exécution de l’outil d’installation classique pour créer le système autonome. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom d’un support, p. ex. 'Core Release', 'Core Updates'.
rpmsrate_flags (facultatif)
Un tableau spécifiant les catégories de rpmsrate à inclure lorsque l’outil d’installation classique sélectionne des paquets. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom d’une catégorie, p. ex. 'CAT_OFFICE', 'CAT_VIDEO'. Voir le fichier <arch>/media/media_info/rpmsrate dans le dépôt sélectionné pour savoir quels paquets sont inclus dans chaque catégorie.
Si aucun élément n’est mentionné, le programme d’installation sera exécuté et présentera les écrans de sélection du bureau et des paquets.
rpmsrate_level (facultatif)
Un numéro définissant le seuil de sélection des paquets au sein des catégories de taux de modulation. Les paquets dont la note dans le fichier rpmsrate est inférieure à ce nombre ne seront pas inclus lors de la sélection d’une catégorie rpmsrate.
S’il n’est pas mentionné, le niveau par défaut est 5.
include_packages (facultatif)
Un tableau définissant une liste de paquets supplémentaires à inclure lorsque le programme d’installation classique sélectionne des paquets. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom de base d’un paquet.
Cela s’applique même lorsque l’interface graphique du programme d’installation est utilisée pour sélectionner les paquets.
exclude_packages (facultatif)
Un tableau donnant une liste de paquets à exclure lorsque le programme d’installation classique sélectionne des paquets. Chaque élément du tableau doit être une chaîne de caractères spécifiant le nom de base d’un paquet.
Cela s’applique même lorsque l’interface graphique du programme d’installation est utilisée pour sélectionner les paquets.
preferred_packages (facultatif)
Un tableau présentant une liste de paquets préférés à utiliser lorsque le programme d’installation classique sélectionne des dépendances de paquets. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom de base d’un paquet.
local_repo_packages (facultatif)
Un tableau désignant une liste de paquets à stocker dans un dépôt local dans le système autonome. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom de base d’un paquet. Ces paquets seront disponibles pour être installés (en utilisant urpmi ou rpmdrake) lorsque le système sera opérationnel. Notez que ces paquets seront automatiquement exclus lorsque le programme d’installation classique sélectionnera des paquets.
local_repo_biarch_packages (facultatif)
Un tableau précisant une liste de noms de paquets pour lesquels la version 32 bits et la version 64 bits du paquet doivent être incluses dans le dépôt local du système autonome.
langs_always (facultatif)
Un tableau indiquant une liste d’environements linguistiques qui seront toujours inclus, quel que soit le paramètre de la région. Chaque élément du tableau doit être une chaîne de caractères précisant une option linguistique. (p. ex. 'en_US').
post_install_nr (facultatif)
Une chaîne de caractères précisant une commande bash qui sera exécutée par l’outil d’installation classique dans l’environnement du système de construction à la fin du processus d’installation.
post_install (facultatif)
Une chaîne de caractères indiquant une commande bash qui sera exécutée par l’outil d’installation classique au sein d’un chroot vers la réplique du système de fichiers de base à la fin du processus d’installation.
additional_media (facultatif)
Un tableau indiquant une liste des médias à partir desquels des paquets supplémentaires peuvent être installés, et, en option, les paquets à installer à partir de ces médias. Les médias seront ajoutés en utilisant urpmi.addmedia dans l’ordre indiqué. Chaque élément du tableau doit être un tableau associatif contenant les clés suivantes :

name (required)

Une chaîne de caractères indiquant le nom du média transmis à urpmi.addmedia. Si elle est définie sur '--distrib', l’option --distrib sera transmise à urpmi.addmedia à la place d’un nom.

path (requis)

Une chaîne de caractères indiquant l’URL du support ou le chemin d’accès passé à urpmi.addmedia.

packages (facultatif)

Un tableau précisant une liste de paquets à installer à partir de ce support. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom de base du paquet.
rpms (facultatif)
Un tableau contenant une liste de paquets à installer en utilisant l’ensemble complet des médias mentionnés dans additional_media. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom de base du paquet.
erase_rpms (facultatif)
Un tableau indiquant la liste des paquets à supprimer une fois que l’installation de tous les paquets a été effectuée. Chaque élément du tableau doit être une chaîne de caractères indiquant le nom de base du paquet.
disable_services (facultatif)
Un tableau précisant une liste de services à désactiver (en utilisant systemctl). Chaque élément du tableau doit être une chaîne de caractères indiquant le nom de base d’un service ; l’extension .service sera ajoutée automatiquement.
disable_timers (facultatif)
Un tableau indiquant une liste de temporisateurs à désactiver (en utilisant systemctl). Chaque élément du tableau doit être une chaîne de caractères précisant le nom de base des temporisateurs ; l’extension .timer sera ajoutée automatiquement.
files (facultatif)
Un tableau indiquant une liste de fichiers à copier dans la réplique du système de fichiers de base. Chaque élément du tableau doit lui-même être un tableau de deux ou trois éléments comprenant :
  • une chaîne de caractères indiquant le répertoire du ou des fichiers à copier. Le chemin peut inclure de simples jokers (* et ?) et peut spécifier soit des fichiers individuels, soit des répertoires à part entière. Un chemin relatif sera pris comme relatif à <config-dir>.
  • Une chaîne de caractères spécifiant la destination. Ce doit être un chemin absolu dans la réplique du système de fichiers de base. Si la chaîne se termine par un "/", on suppose qu’il s’agit d’un répertoire et les noms de fichiers seront préservés. Un répertoire doit être défini si plusieurs fichiers sont copiés.
  • (en option) un tableau associatif contenant les clés suivantes :

mode (facultatif)

Un numéro à 4 chiffres précisant le mode de fichier copié en format octal.

no_install (facultatif)

Un nombre précisant si les fichiers doivent être supprimés du système installé si draklive-install est utilisé pour installer le système autonome. Tout nombre différent de zéro entraînera la suppression des fichiers par draklive-install.
remove_files (facultatif)
Un tableau indiquant une liste de fichiers ou de répertoires à supprimer dans la réplique du système de fichiers de base. Chaque élément du tableau doit être une chaîne de caractères indiquant un chemin absolu dans la réplique du système de fichiers de base. Le chemin peut inclure de simples jokers (* et ?) et peut désigner soit des fichiers individuels, soit des répertoires entiers.
patches (facultatif)
Un tableau contenant une liste de correctifs à appliquer à la réplique du système de fichiers de base. Chaque élément du tableau doit être une chaîne de caractères indiquant le chemin d’accès au fichier de correctifs. Un chemin relatif sera pris comme relatif à <config-dir>. Les chemins d’accès à l’intérieur du fichier correctif doivent être liés à la réplique du système de fichiers de base.
final_fixes (facultatif)
Une chaîne de caractères précisant commande bash qui sera exécutée dans un chroot vers la réplique du système de fichiers de base après que toutes les autres étapes de personnalisation aient été effectuées.
append (facultatif)
Une chaîne de caractères définissant les options par défaut qui doivent être passées sur la ligne de commande au démarrage du système. Si elle est définie, cette chaîne sera ajoutée à la ligne de commande dans chaque entrée du menu de démarrage.
vga_mode (facultatif)
Un nombre précisant le mode vga qui doit être passé sur la ligne de commande au démarrage lorsque le système autonome est démarré. S’il est précisé, vga={system}{vga_mode} sera ajouté à la ligne de commande dans chaque entrée du menu de démarrage.
loopbacks (facultatif)
Un tableau associatif contenant les valeurs de configuration utilisées lors de la compression de la réplique du système de fichiers de base pendant l’étape Loop. Il peut contenir les clés suivantes :
exclude (facultatif)
Un tableau définissant les fichiers à exclure lors de la compression de la réplique du système de fichiers de base. Chaque élément du tableau doit être un tableau associatif contenant une (et une seule) des clés suivantes :

path

Une chaîne de caractères spécifiant un chemin d’accès absolu dans la réplique du système de fichiers de base. Le chemin peut inclure de simples jokers (* et ?) et peut spécifier soit des fichiers individuels, soit des répertoires entiers.

source

Une chaîne de caractères indiquant un chemin d’accès absolu dans la réplique du système de fichiers de base. Le chemin doit identifier un fichier qui contient une autre liste de chemins absolus vers les fichiers à exclure. Le fichier doit contenir un chemin par ligne.
regions (facultatif)
Un tableau associatif qui définit des ensembles de lieux qui peuvent être inclus dans l’ISO autonome. Les noms des clés peuvent être choisis librement par l’utilisateur. Chaque clé doit être associée au tableau de chaînes de caractères indiquant une liste des lieux pour cette clé.
Au cours de l’étape Root, draklive2 sélectionnera l’ensemble des paramètres linguistiques identifiés par <region>.
media (facultatif)
Un tableau associatif contenant les valeurs de configuration utilisées pendant la préparation des fichiers du chargeur d’amorçage lors de l’étape de démarrage et durant la création de l’image ISO finale lors de l’étape principale. Il peut contenir les clés suivantes :
label (required)
Une chaîne de caractères précisant l’étiquette du volume pour l’image ISO.
overlay_label (facultatif)
Une chaîne de caractères précisant le label de volume utilisé pour identifier la partition overlay persistante optionnelle.
Si cela n’est pas défini, le chargeur d’amorçage ne recherchera pas un noyau mis à jour dans la partition overlay persistante. Cela n’affecte pas le dracut, qui cherchera et utilisera toujours une partition overlay persistante si elle existe.
bootloader_title (facultatif)
Une chaîne de caractères précisant le titre de l’écran du chargeur d’amorçage.

Sinon, {media}{label} sera utilisé, les caractères "-" de l’étiquette étant remplacés par des espaces.

bootloader_theme (facultatif)
Une chaîne de caractères indiquant le chemin d’accès au répertoire contenant les fichiers de thèmes à utiliser par le chargeur d’amorçage. Un chemin relatif sera pris comme relatif à <config-dir>.
Si cette option est omise, /boot/grub2/themes/maggy sera utilisé s’il est présent sur le système au moment de la construction, sinon, le thème du chargeur de démarrage sera exclu de l’ISO autonome.
bootloader_font (facultatif)
Une chaîne de caractères désignant le chemin d’accès au fichier contenant la police de caractères par défaut pour le chargeur d’amorçage. Pour GRUB2, cela doit être un fichier de police de type (.pf2). Un chemin relatif sera pris comme relatif à <config-dir>.

Si ce n’est pas stipulé, /usr/share/grub/unicode.pf2 sera utilisé s’il est présent sur le système en construction, sinon, la police par défaut du chargeur de démarrage sera absente de l’ISO autonome et le chargeur de démarrage repassera en mode texte.

bootloader_langs (facultatif)
Une chaîne de caractères définissant le chemin d’accès au fichier contenant la liste des langues à inclure dans le menu de sélection de la langue du chargeur d’amorçage. Un chemin relatif sera pris comme relatif à <config-dir>.
À défaut, le menu de sélection de la langue ne sera pas inclus dans le chargeur de démarrage.
bootloader_kbds (facultatif)
Une chaîne de caractères précisant le chemin d’accès au fichier contenant la liste des clavier à inclure dans le chargeur d’amorçage Menu de sélection de clavier. Un chemin relatif sera pris comme relatif à <config-dir>.
Sans précision, le menu de sélection de clavier ne sera pas inclus dans le chargeur de démarrage.
bootloader_messages (facultatif)
Une chaîne de caractères précisant le chemin d’accès au répertoire contenant les traductions de messages pour le chargeur d’amorçage. Seuls les fichiers de traduction compilés (.mo) seront inclus dans l’ISO autonome.
bootloader_default (facultatif)
Un chiffre déterminant l’entrée du menu du chargeur d’amorçage qui sera sélectionnée par défaut. Les entrées sont numérotées à partir de zéro.
En l’absence de précision, la première entrée du menu du chargeur de démarrage sera la valeur par défaut.
bootloader_timeout (facultatif)
Un nombre indiquant le délai en secondes avant que le chargeur d’amorçage ne démarre automatiquement depuis l’entrée par défaut.
Autrement, Le délai sera de 4 secondes
bootloader_entries (facultatif)
Un tableau de valeurs appairées précisant les entrées du menu du chargeur d’amorçage. Le premier élément de chaque paire doit être une chaîne de caractères indiquant le titre de l’entrée de menu. Le deuxième élément de chaque paire doit être un tableau associatif contenant les clés suivantes :

command (facultatif)

Une chaîne de caractères mentionnant la commande GRUB2 qui sera exécutée lorsque l’entrée de menu sera sélectionnée. Il doit s’agir soit de 'linux' ou 'linux16'.
Sans quoi, la commande linux sera utilisée.

image (facultatif)

Une chaîne de caractères stipulant le chemin vers l’image du noyau qui sera utilisée pour cette entrée de menu.
Faute de quoi, /boot/vmlinuz sera utilisé, c’est-à-dire le noyau copié à partir de la réplique du système de fichiers de base lors de l’étape de démarrage.

initrd (facultatif)

Une chaîne de caractères stipulant le chemin d’accès à l’image en mémoire vive qui sera utilisée pour cette entrée de menu. Dans le cas contraire, /boot/initrd.gz sera utilisée, qui est l’image en mémoire créée lors de l’étape de démarrage.La valeur spéciale 'none' peut être utilisée pour indiquer qu’il n’y a pas d’image mémoire vive pour cette entrée de menu.

append (facultatif)

Une chaîne de caractères indiquant les options supplémentaires à ajouter à la ligne de commande de démarrage pour cette entrée du menu. Toutes les options qui seront automatiquement ajoutées par draklive2 seront ajoutées avant cette chaîne.
mbr_boot_img (facultatif)
Une chaîne de caractères définissant le chemin d’accès à l’image du chargeur de démarrage du MBR GRUB2 pour le démarrage hybride. Un chemin relatif sera pris en fonction de <config-dir>.
À défaut, /usr/lib/grub/i386-pc/boot_hybrid.img sera utilisé s’il existe sur le système de construction, sinon draklive2 se terminera avec une erreur.
eltorito_img (facultatif)
Une chaîne de caractères identifiant le chemin d’accès à l’image du chargeur de démarrage GRUB2 El Torito. Le chemin relatif sera pris comme relatif à <config-dir>.
Si ce n’est pas mentionné, draklive2 utilisera grub2-mkimage pour construire l’image du chargeur de démarrage El Torito.
iso_part_start (facultatif)
Un chiffre précisant le secteur de départ de la partition de protection ISO hybride qui protège le système de fichiers ISO 9660. La valeur doit être comprise entre 0 et 1. La possibilité de commencer au secteur 1 est prévue pour des raisons de compatibilité avec les anciens BIOS.
Sans indication, la partition de protection commencera au secteur 0.
iso_part_type (facultatif)
Une chaîne de caractères mentionnant le type de partition pour la partition de protection ISO hybride qui protège le système de fichiers ISO 9660. Ce doit être un nombre hexadécimal à deux chiffres au format « C », p. ex. '0x00'.
Dans l’absence de précision, le type de partition de protection sera fixé à '0x00'.
efi_type (facultatif)
Une chaîne de caractères définissant le(s) type(s) de démarrage EFI à prendre en charge. Cela doit être une des options suivantes : 'none', '32bit', '64bit', ou 'all'.
Sans aucune précision, la valeur par défaut est 'none'.
boot32_efi (facultatif)
Une chaîne de caractères indiquant le chemin vers l’image du chargeur d’amorçage EFI 32 bits GRUB2. Un chemin relatif sera pris comme relatif à <config-dir>.
Si ce n’est pas précisé, draklive2 utilisera grub2-mkimage pour construire l’image du chargeur de démarrage EFI 32 bits si cela est nécessaire (cela entraine que le paquet grub2-efi 32 bits soit installé sur le système de construction).
Cette clé est ignorée si le type de démarrage EFI est réglé sur 'none' ou '64bit'.
boot64_efi (facultatif)
Une chaîne de caractères indiquant le chemin vers l’image du chargeur d’amorçage EFI 64 bits GRUB2. Un chemin relatif sera pris comme relatif à <config-dir>.
Si ce n’est pas précisé, draklive2 utilisera grub2-mkimage pour construire l’image du chargeur de démarrage EFI 64 bits si cela est nécessaire (cela entraine que le paquet grub2-efi 64 bits soit installé sur le système de construction).
Cette clé est ignorée si le type de démarrage EFI est réglé sur 'none' ou '32bit'.
copy_from_repo (facultatif)
Un tableau de valeurs appairées indiquant une liste de fichiers ou de répertoires à copier du dépôt vers le système de fichiers image ISO. Le premier élément de chaque paire doit être une chaîne de caractères définissant le chemin d’accès au fichier ou au répertoire à copier (par rapport au répertoire <arch> du dépôt). Le deuxième élément de chaque paire doit être une chaîne de caractères précisant le chemin d’accès au fichier ou au répertoire dans le système de fichiers image ISO (par rapport à la racine du système de fichiers). Les répertoires intermédiaires dans le système de fichiers image ISO seront automatiquement créés selon les besoins.
Si <repository> est une URL FTP ou HTTP, la liste peut uniquement contenir des fichiers, et non des répertoires.
checksums (facultatif)
Un tableau précisant une liste de types de sommes de contrôle qui doivent être calculées à partir du fichier image ISO et stockées à côté de celui-ci. Chaque élément du tableau doit être une chaîne de caractères indiquant un type de somme de contrôle. Les types reconnus sont :
  • 'md5' – a 128-bit MD5 checksum, stockée dans un fichier avec l’extension .md5
  • 'sha1' – a 160-bit SHA-1 checksum, stockée dans un fichier avec l’extension .sha1
  • 'sha2' – a 512-bit SHA-2 checksum, stockée dans un fichier avec l’extension .sha512
  • 'sha3' – a 512-bit SHA-3 checksum, stockée dans un fichier avec l’extension .sha3
Si ce n’est pas précisé, aucune somme de contrôle ne sera générée.
iso_name_fields (facultatif)
Un tableau spécifiant les valeurs des paramètres utilisés pour construire le nom de l’ISO autonome, qui est utilisé à la fois pour nommer le sous-répertoire de travail et comme nom de base pour le fichier image ISO et les fichiers de somme de contrôle associés. Chaque élément du tableau doit être une chaîne de caractères identifiant le nom d’un paramètre. Les valeurs des paramètres seront séparées par des caractères '-' lors de la construction du nom ISO autonome.
Si ce n’est pas stipulé, le nom par défaut de l’ISO autonome est <distro>-<release>-<product>-<desktop>-<region>-<arch>-<media>. Les réglages nuls sont ignorés, tout comme le réglage de la region si elle est réglée sur all.

Utilisation des paramètres

Avant de lire le fichier de configuration de construction, draklive2 lira le fichier des paramètres de base et stockera les paramètres dans un tableau associatif contenu dans un objet qui est stocké dans la variable globale $build. Cela permet d’utiliser les paramètres dans le fichier de configuration de construction. Par exemple, le réglage arch peut être obtenu par $build->{settings}{arch}. Des raccourcis peuvent être créés en déclarant des variables locales, p. ex.

my $arch = $build->{settings}{arch};

qui peuvent ensuite être utilisées dans des chaînes de caractères à double guillemets.

Fonctions Perl utiles

Un raccourci utile est la fonction qw() intégrée à Perl. Celle-ci convertit une séquence de mots simples en une liste de chaînes de caractères entre guillemets séparées par des virgules, p. ex.

qw(a b c)

il est équivalent à

'a', 'b', 'c'

Avant de lire le fichier de configuration de construction, draklive2 importe la bibliothèque MDK::Common Perl, de sorte que le fichier de configuration de construction peut utiliser toute fonction exportée par cette bibliothèque. Une fonction utile est if_(), qui permet d’inclure des éléments de manière conditionnelle dans une liste. Ainsi, par exemple, si la variable locale $arch est fixée à x86_64

'a', 'b', if_($arch eq 'x86_64', 'c', 'd')

il est équivalent à

'a', 'b', 'c', 'd'

sinon, il est équivalent à

'a', 'b'

Contrôle de la syntaxe

Comme le fichier de configuration de construction utilise la syntaxe Perl, l’interpréteur Perl peut être utilisé pour vérifier qu’il n’y a pas d’erreurs de syntaxe dans le fichier avant de lancer draklive2. Il suffit d’exécuter.

perl -qw <file>

(où <file> est le chemin d’accès au fichier). Pour éviter une fausse alerte, vous devez affecter le tableau associatif de premier niveau à une variable, p. ex.

my $config = { … } ;

Menus du chargeur de démarrage

Menus principaux

Ce menu présentera les éléments précisés par l’utilisateur ou l’utilisatrice dans {media}{bootloader_entries}. Si une partition overlay persistante identifiée par {media}{overlay_label} est détectée et contient un noyau mis à jour, elle sera suivie d’une entrée de menu qui sélectionne entre le dernier noyau de l’overlay persistant et le noyau original de l’image ISO de base. Si la personne a indiqué un fichier {media}{bootloader_langs}, celui-ci sera suivi par une entrée de menu qui sélectionnera le menu de sélection de la langue. Si la personne a mentionné un fichier {media}{bootloader_kbds}, il sera ensuite suivi d’une entrée de menu qui sélectionne le menu de sélection du clavier.

Menu de sélection de la langue

Ce menu présentera la liste des claviers précisés par le fichier {media}{bootloader_langs}. Le fichier doit contenir un tableau de valeurs appariées, utilisant la même syntaxe que le fichier de configuration de construction, à la différence près que le tableau est entouré de parenthèses au lieu de crochets. Le premier élément de chaque paire doit être une chaîne de caractères mentionnant le code de la langue (p. ex. 'en_US'). Le deuxième élément de chaque paire doit être une chaîne de caractères indiquant le nom affiché de la langue. Si le fichier est codé en UTF-8, faites précéder le tableau par la ligne.

use utf8;

Voir /usr/share/drakiso/bootloader/lang-names.txt pour avoir un exemple.

Lorsqu’une entrée est sélectionnée dans ce menu, la variable d’environnement du chargeur de démarrage lang sera définie sur le code langue sélectionné, ce qui permettra de traduire les menus du chargeur de démarrage si les traductions nécessaires ont été fournies dans le répertoire {media}{bootloader_messages}.

Lorsqu’une entrée standard du menu principal est sélectionnée, le chargeur d’amorçage ajoute une option lang=<language code> à la ligne de commande d’amorçage pour transmettre le dernier code de langue sélectionné au système actif.

Menu de sélection de clavier

Ce menu présentera la liste des claviers indiqués par le fichier {media}{bootloader_kbds}. Le fichier doit contenir un tableau de valeurs appariées, utilisant la même syntaxe que le fichier de configuration de construction, sauf que le tableau est entouré de parenthèses au lieu de crochets. Le premier élément de chaque paire doit être une chaîne de caractères définissant le code de la langue (p. ex. 'en'). Le deuxième élément de chaque paire doit être une chaîne de caractères mentionant le nom affiché de la langue. Si le fichier est codé en UTF-8, faites précéder le tableau par la ligne.

use utf8;

Voir /usr/share/drakiso/bootloader/kbd-names.txt pour avoir un exemple.

Lorsqu’une entrée standard du menu principal est sélectionnée, le chargeur d’amorçage ajoute une option lang=<language code> à la ligne de commande d’amorçage pour transmettre le dernier code de langue sélectionné au système actif.

Si un fichier nommé lang-kbds.txt existe dans le même répertoire que le fichier {media}{bootloader_langs}, le fichier lang-kbds.txt sera utilisé pour déterminer l’entrée par défaut dans le menu de sélection du clavier, dès qu’une langue aura été sélectionnée. Le fichier doit contenir un tableau associatif où les clés sont les codes de langue et les valeurs associées sont les codes de clavier par défaut.

Voir /usr/share/drakiso/bootloader/lang-kbds.txt pour avoir un exemple.

Remarque :
Il était prévu que le menu de sélection du clavier soit également utilisé pour modifier la configuration du clavier dans le bootloader, mais GRUB2 ne fournit pas un moyen fiable de le faire.

Traductions

Tout le texte du menu principal et du menu de sélection du clavier peut être traduit. Les noms de langue dans le menu de sélection de la langue ne peuvent pas être traduits – chaque nom de langue est censé être fourni sous sa forme originale dans le fichier {media}{bootloader_langs}

Configuration de dracut

La configuration dracut pour générer le disque RAM initial du système autonome devra être ajustée. Les deux changements essentiels sont les suivants.

hostonly=« no » add_dracutmodules+=« mgalive »

Le module mgalive gère le montage du système de fichiers en boucle compressé ; sans cela, le système autonome ne peut pas être démarré. Le module mgalive gère également la détection et l’utilisation d’une partition overlay persistante. Le label spécifié dans {media}{overlay_label} doit correspondre au label recherché par le module mgalive, qui est actuellement mgalive-persist.

Voir /usr/share/drakiso/examples/minimal/files/dracut-live.conf pour avoir un exemple des autres changements qui pourraient être nécessaires.