Archiso (Français)

From ArchWiki
État de la traduction: Cet article est la version francophone de Archiso. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

Archiso est un outil hautement personnalisable pour construire des images ISO CD/USB live d'Arch Linux. Les images officielles sont construites avec Archiso. Il peut être utilisé comme base pour des systèmes de secours, des installateurs linux ou d'autres systèmes. Cet article du wiki explique comment installer Archiso et comment le configurer pour contrôler certains aspects de l'image ISO résultante, tels que les paquets et les fichiers inclus. Les exigences techniques et les étapes de construction peuvent être trouvées dans la documentation officielle du projet. Archiso est implémenté avec un certain nombre de scripts bash. L'élément central d'Archiso est la commande mkarchiso. Ses options sont documentées dans mkarchiso -h et ne sont pas couvertes ici.

Installation

Installez le paquet archiso ou archiso-gitAUR.

Préparer un profil personnalisé

Archiso est livré avec deux profils, releng et baseline.

  • releng est utilisé pour créer l'ISO officiel d'installation mensuelle. Il peut être utilisé comme point de départ pour créer une image ISO personnalisée.
  • baseline est une configuration minimaliste, qui ne comprend que le strict minimum de paquets nécessaires pour démarrer l'environnement live à partir du support.

Pour construire une version non modifiée des profils, passez à #Créer l'ISO. Sinon, si vous souhaitez adapter ou personnaliser l'un des profils fournis par archiso, copiez-le depuis /usr/share/archiso/configs/profile-name/ vers un répertoire accessible en écriture portant le nom de votre choix. Par exemple :

$ cp -r /usr/share/archiso/configs/releng/ archlive

Passez aux sections suivantes pour personnaliser et construire le profil personnalisé.

Structure du profil

Un profil archiso contient la configuration qui définit l'image ISO résultante. La structure du profil est documentée dans /usr/share/doc/archiso/README.profile.rst [1].

Sélection des paquets

Modifiez packages.x86_64 pour sélectionner les paquets à installer sur l'image système live, en listant les paquets ligne par ligne.

Dépôt local personnalisé

Pour ajouter des paquets qui ne se trouvent pas dans les dépôts standards d'Arch (par exemple des paquets personnalisés ou des paquets provenant de AUR/ABS), créez un dépôt local personnalisé et ajoutez-y vos paquets personnalisés. Ajoutez ensuite votre dépôt à pacman.conf comme suit :

archlive/pacman.conf
...
[customrepo]
SigLevel = Optional TrustAll
Serveur = file:///path/to/customrepo (fichier)
...
Note: L'ordre dans pacman.conf est important. Pour donner la priorité absolue à votre dépôt personnalisé, placez-le au-dessus des autres entrées de dépôt

Paquets de multilib

Pour installer des paquets du dépôt multilib, il suffit de décommenter ce dépôt dans pacman.conf.

Ajout de fichiers à l'image

Le répertoire airootfs est utilisé comme point de départ pour le root directory. (/) du système live sur l'image. Tout son contenu sera copié dans le répertoire de travail avant l'installation des paquets.

Placez tous les fichiers et/ou répertoires personnalisés à l'emplacement souhaité sous airootfs/. Par exemple, si vous avez un ensemble de scripts iptables sur votre système actuel que vous voulez utiliser sur votre image live, copiez-les comme tel :

$ cp -r /etc/iptables archlive/airootfs/etc

De même, il faut faire attention aux fichiers de configuration spéciaux qui se trouvent quelque part dans la hiérarchie. Les parties manquantes de la structure de répertoire peuvent être simplement créées avec mkdir(1).

Astuce: Pour ajouter un fichier au répertoire personnel de l'utilisateur de l'installation, placez-le dans archlive/airootfs/root/. Pour ajouter un fichier au répertoire personnel de tous les autres utilisateurs, placez-le dans archlive/airootfs/etc/skel/.
Note: Les fichiers personnalisés qui entrent en conflit avec ceux fournis par les paquets seront écrasés à moins qu'un paquet ne les spécifie comme «backup files».

Par défaut, les permissions seront 644 pour les fichiers et 755 pour les répertoires. Tous ces fichiers appartiennent à l'utilisateur root. Pour définir des permissions ou des propriétés différentes pour des fichiers et/ou des dossiers spécifiques, utilisez le tableau associatif file_permissions dans profiledef.sh. Consultez README.profile.rst pour plus de détails.

Noyau

Bien que les deux profils inclus d'archiso n'aient que linux, les ISO peuvent être faits pour inclure d'autres ou même de multiples noyaux.

Tout d'abord, éditez packages.x86_64 pour inclure les noms des paquets du noyau que vous voulez. Quand mkarchiso s'exécute, il inclura tous les fichiers work_dir/airootfs/boot/vmlinuz-* et work_dir/boot/initramfs-*.img dans l'ISO (et en plus dans l'image FAT utilisée pour le démarrage UEFI).

Les presets de mkinitcpio construiront par défaut des images initramfs de secours. Pour un ISO, l'image initramfs principale n'inclut généralement pas le crochet autodetect, ce qui rend inutile la création d'une image de repli supplémentaire. Pour empêcher la création d'une image initramfs de secours, afin qu'elle ne prenne pas de place ou ne ralentisse pas le processus de construction, placez un préréglage personnalisé dans archlive/airootfs/etc/mkinitcpio.d/pkgbase.preset. Par exemple, pour linux-lts :

archlive/airootfs/etc/mkinitcpio.d/linux-lts.preset
PRESETS=('archiso')

ALL_kver='/boot/vmlinuz-linux-lts
ALL_config='/etc/mkinitcpio.conf

archiso_image="/boot/initramfs-linux-lts.img"

Enfin, créez la configuration du chargeur d'amorçage pour permettre de démarrer le(s) noyau(x).

Chargeur d'amorçage

Archiso prend en charge syslinux pour le démarrage du BIOS et systemd-boot pour le démarrage de l'UEFI. Référez-vous aux articles des chargeurs d'amorçage pour des informations sur leur syntaxe de configuration.

Astuce:
  • Le profil releng construit par défaut un ISO qui prend en charge les démarrages BIOS et UEFI lorsqu'il est gravé sur un disque optique à l'aide d'El Torito, ou lorsqu'il est écrit sur un disque dur (ou une clé USB, ou similaire) à l'aide de Isohybrid.
  • En raison de la nature modulaire d'isolinux, vous pouvez utiliser beaucoup d'addons puisque tous les fichiers .c32 sont copiés et disponibles pour vous. Jetez un coup d'oeil au site officiel syslinux et au archiso git repo. En utilisant ces addons, il est possible de faire des menus visuellement attractifs et complexes. Consultez [2].

mkarchiso s'attend à ce que la configuration systemd-boot se trouve dans le répertoire efiboot, et la configuration syslinux dans les répertoires syslinux et isolinux.

Boot sécurisé UEFI

Si vous voulez rendre votre Archiso démarrable sur un environnement activé par UEFI Secure Boot, vous devez utiliser un chargeur d'amorçage signé. Vous pouvez suivre les instructions sur Secure Boot#Booting an installation medium.

unités systemd

Pour activer les services/sockets/temporisateurs de systemd pour l'environnement live, vous devez créer manuellement les liens symboliques comme le fait systemctl enable.

Par exemple, pour activer gpm.service, qui contient WantedBy=multi-user.target, exécutez :

$ mkdir -p archlive/airootfs/etc/systemd/system/multi-user.target.wants
$ ln -s /usr/lib/systemd/system/gpm.service archlive/airootfs/etc/systemd/system/multi-user.target.wants/

Les liens symboliques requis peuvent être trouvés en lisant l'unité systemd, ou si le service est installé, en l'activant et en observant la sortie de systemctl.

Gestionnaire de connexion

Le démarrage de X au démarrage se fait en activant le service systemd de votre gestionnaire de connexion. Si vous ne savez pas quel .service activer, vous pouvez facilement le découvrir si vous utilisez le même programme sur le système sur lequel vous construisez votre ISO. Utilisez simplement :

$ ls -l /etc/systemd/system/display-manager.service

Créez maintenant le même lien symbolique dans archlive/airootfs/etc/systemd/system/. Pour LXDM :

$ ln -s /usr/lib/systemd/system/lxdm.service archlive/airootfs/etc/systemd/system/display-manager.service

Ceci activera LXDM au démarrage du système sur votre système live.

Modification de la connexion automatique

La configuration de la connexion automatique de getty se trouve sous airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf.

Vous pouvez modifier ce fichier pour changer l'utilisateur de la connexion automatique :

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin username --noclear %I 38400 linux

Ou supprimez-la complètement pour désactiver la connexion automatique.

Utilisateurs et mots de passe

Pour créer un utilisateur qui sera disponible dans l'environnement réel, vous devez modifier manuellement archlive/airootfs/etc/passwd, archlive/airootfs/etc/shadow, archlive/airootfs/etc/group et archlive/airootfs/etc/gshadow.

Note: Si ces fichiers existent, ils doivent contenir l'utilisateur et le groupe root.

Par exemple, pour ajouter un utilisateur archie. Ajoutez-le à archlive/airootfs/etc/passwd en suivant la syntaxe passwd(5) :

archlive/airootfs/etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
archie:x:1000:1000::/home/archie:/usr/bin/zsh

Générez un hachage de mot de passe avec openssl passwd -6 et ajoutez-le à archlive/airootfs/etc/shadow en suivant la syntaxe de shadow(5). Par exemple :

archlive/airootfs/etc/shadow
root::14871::::: :
archie:$6$randomsalt$cij4/pJREFQV/NgAgh9YyBIoCRRNq2jp5l8lbnE5aLggJnzIRmNVlogAg8N6hEEecLwXHtMQIl2NX2HlDqhCU1:14871::::: :

Ajoutez le groupe de l'utilisateur et les groupes dont il fera partie à archlive/airootfs/etc/group selon group(5). Par exemple :

archlive/airootfs/etc/group
root:x:0:root
adm:x:4:archie
wheel:x:10:archie
uucp:x:14:archie
archie:x:1000 :

Créez le archlive/airootfs/etc/gshadow approprié selon gshadow(5) :

archlive/airootfs/etc/gshadow
root:!*::root
archie:!*: :

Vérifiez que /etc/shadow et /etc/gshadow ont les bonnes permissions :

archlive/profiledef.sh
...
file_permissions=(
  ...
  ["/etc/shadow"]="0:0:0400"
  ["/etc/gshadow"]="0:0:0400"
)

Après l'installation du paquet, mkarchiso créera tous les répertoires personnels spécifiés pour les utilisateurs listés dans archlive/airootfs/etc/passwd et y copiera work_directory/x86_64/airootfs/etc/skel/*. Les fichiers copiés auront la propriété de l'utilisateur et du groupe appropriés.

Changer le nom de la distribution utilisé dans l'ISO

Commencez par copier le fichier /etc/os-release dans le dossier etc/ du rootfs. Ensuite, éditez le fichier en conséquence. Vous pouvez également changer le nom dans GRUB et syslinux.

Créer l'ISO

Créez un ISO que vous pouvez ensuite graver sur un CD ou une clé USB en exécutant :

# mkarchiso -v -w /path/to/work_dir -o /path/to/out_dir /path/to/profile/
  • -w spécifie le répertoire de travail. Si l'option n'est pas spécifiée, il s'agira par défaut de work dans le répertoire courant.
  • -o spécifie le répertoire où l'image ISO construite sera placée. Si l'option n'est pas spécifiée, il s'agira par défaut de out dans le répertoire courant.
  • Il convient de noter que le fichier de profil profiledef.sh ne peut pas être spécifié lors de l'exécution de mkarchiso, juste le chemin d'accès au fichier.

Remplacez /path/to/profile/ par le chemin d'accès à votre profil personnalisé, ou par /usr/share/archiso/configs/releng/ si vous construisez un profil non modifié.

Astuce: Si la mémoire le permet, il est préférable de placer le répertoire de travail en tmpfs. Par exemple :
# mkarchiso -v -w /tmp/archiso-tmp /path/to/profile/

Une fois exécuté, le script téléchargera et installera les paquets que vous avez spécifiés dans work_directory/x86_64/airootfs, créera le noyau et les images init, appliquera vos personnalisations et enfin construira l'ISO dans le répertoire de sortie.

Suppression du répertoire de travail

Attention: Si mkarchiso est interrompu, exécutez findmnt(8) pour vous assurer qu'il n'y a pas de liaison de montage avant de le supprimer - sinon, vous risquez de perdre des données (par ex. un périphérique externe monté dans /run/media/user/label est lié à work/x86_64/airootfs/run/media/user/label pendant le processus de construction).

Les fichiers temporaires sont copiés dans le répertoire de travail. Après avoir réussi à construire l'ISO , le répertoire de travail et son contenu peuvent être supprimés. Par exemple :

# rm -rf /path/to/work_dir

Utilisation de l'ISO

Consultez Guide d'installation#Préparer un support d'installation pour connaître les différentes options.

Tester l'ISO dans QEMU

Installez les dépendances optionnelles qemu-desktop et edk2-ovmf.

Utilisez le script de commodité run_archiso pour exécuter une image construite en utilisant QEMU.

$ run_archiso -i /path/to/archlinux-yyyy.mm.dd-x86_64.iso

La machine virtuelle peut également être exécutée à l'aide de l'émulation UEFI :

$ run_archiso -u -i /path/to/archlinux-yyyy.mm.dd-x86_64.iso

Trucs et astuces

Construction en ligne

Si vous ne disposez pas d'un système d'archivage ou si vous devez configurer Archiso à partir d'une autre distribution GNU/Linux, sachez qu'il existe un générateur en ligne.

Préparer un ISO pour une installation via SSH

Note: Depuis archlinux-2021.02.01-x86_64.iso, la prise en charge de cloud-init est fournie, et sshd.service est activé par défaut.

Pour installer Arch Linux via SSH sans aucune interaction avec le système, une clé publique SSH doit être placée dans authorized_keys.

L'ajout de la clé SSH peut être fait manuellement (expliqué ici), ou par cloud-init.

Pour ajouter la clé manuellement, commencez par copier le profil releng d'Archiso dans un répertoire accessible en écriture. L'exemple suivant utilise archlive.

$ cp -r /usr/share/archiso/configs/profil/ archlive

Créez un répertoire .ssh dans le répertoire personnel de l'utilisateur qui sera utilisé pour se connecter. Dans l'exemple suivant, nous utiliserons l'utilisateur root.

$ mkdir archlive/airootfs/root/.ssh

Ajoutez la ou les clés publiques SSH, qui seront utilisées pour se connecter, à authorized_keys :

$ cat ~/.ssh/key1.pub >> archlive/airootfs/root/.ssh/authorized_keys
$ cat ~/.ssh/key2.pub >> archlive/airootfs/root/.ssh/authorized_keys

Définissez les permissions et la propriété correctes pour le répertoire .ssh et le fichier authorized_keys :

archlive/profiledef.sh
...
file_permissions=(
  ...
  ["/root"]="0:0:0750"
  ["/root/.ssh"]="0:0:0700"
  ["/root/.ssh/authorized_keys"]="0:0:0600"
)

Enfin, créez l'ISO. Au démarrage de l'ISO, OpenSSH démarrera et il sera possible de se connecter en utilisant la ou les clés privées SSH correspondantes.

Se connecter automatiquement à un réseau Wi-Fi en utilisant iwd

Créez /var/lib/iwd/ dans le répertoire airootfs du profil et définissez les permissions correctes :

$ mkdir -p archlive/airootfs/var/lib/iwd
archlive/profiledef.sh
...
file_permissions=(
  ...
  ["/var/lib/iwd"]="0:0:0700"
)

Suivez les instructions de Iwd#Network configuration et de iwd.network(5) pour créer un fichier de configuration réseau pour votre réseau Wi-Fi.

Enregistrez le fichier de configuration dans archlive/airootfs/var/lib/iwd/.

Ajustement de la taille de la partition racine à la volée

Si vous obtenez le message d'erreur suivant lors du téléchargement de fichiers ou de l'installation de paquets dans l'environnement ISO démarré, vous devrez peut-être arrêter et ajuster la taille de la partition racine en redémarrant l'Archiso.

error: partition / too full: 63256 blocks needed, 61450 blocks free
error: not enough free disk space
error: failed to commit transaction (not enough free disk space) 
Errors occurred: no packages were upgraded.

Pour ajuster la taille de la partition racine sur le système Arch Linux en direct, appuyez sur la touche Tab pour modifier les paramètres du noyau. Ajoutez cow_spacesize=2G à la fin pour obtenir une taille de 2G pour la partition racine. Appuyez sur Enter pour continuer à démarrer dans le système "live". Vous pouvez vérifier la taille des systèmes de fichiers en exécutant :

$ df -h

Vous pouvez également ajuster la taille de la partition racine à la volée en exécutant cette commande :

# mount -o remount,size=2G /run/archiso/cowspace

Consultez d'autres paramètres de démarrage ici

Chiffrement

Pour que mkarchiso produise des images chiffrées, la prise en charge de LUKS dans archiso, la compatibilité du hook encrypt dans mkinitcpio-archiso et la prise en charge des cryptkeys imbriquées dans cryptsetup doivent être approuvées.

Les paquets avec ces fonctionnalités sont archiso-encryptionAUR[broken link: package not found], mkinitcpio-archiso-encryptionAUR[broken link: package not found] et cryptsetup-nested-cryptkeyAUR[broken link: package not found].

Pour activer le chiffrement à un profil existant :

  • ajoutez +luks à la valeur airootfs_image_type dans profiledef.sh ;
  • Définissez une encryption_key dans profiledef.sh (pour utiliser un fichier clé au lieu d'un mot de passe).
  • activer le hook encrypt dans /etc/mkinitcpio.conf ;
  • ajouter les paquets AUR (ou construire des remplacements personnalisés avec les sources mentionnées ci-dessus) dans packages.x86_64
  • Ajouter le mode de construction keys au tableau buildmodes de profiledef.sh (pour construire un deuxième ISO contenant le fichier clé qui, placé sur un stockage externe, est capable de démarrer le système).

Des exemples de configurations basées sur les profils baseline et releng sont disponibles en tant que ebaseline et ereleng dans le paquet archiso-profilesAUR[broken link: package not found].

Images Google Compute Engine

Une image compressée releng compatible avec Google Compute Engine est disponible sous la forme archlinux-gceAUR[broken link: package not found].

Configuration de la machine virtuelle libvirt

Une configuration libvirt qui exécute l'image releng est disponible sous archlinux-libvirtAUR[broken link: package not found].

Dépannage

Le gestionnaire de fenêtres se bloque

Si vous voulez utiliser un gestionnaire de fenêtres dans le Live CD, vous devez ajouter les pilotes vidéo nécessaires et corrects, ou le WM peut se bloquer au chargement.

Voir aussi