Archiso (Français)
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) ...
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ôtPaquets 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).
archlive/airootfs/root/
. Pour ajouter un fichier au répertoire personnel de tous les autres utilisateurs, placez-le dans archlive/airootfs/etc/skel/
.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.
- 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
.
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 dework
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 deout
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é.
# 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
/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
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 cryptkey
s 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 valeurairootfs_image_type
dansprofiledef.sh
; - Définissez une
encryption_key
dansprofiledef.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 tableaubuildmodes
deprofiledef.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.