Jump to content
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.

Related articles

- Archiso as pxe server
- Offline installation
- USB flash installation medium

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. Le paquet archiso-profilesAUR contient des profils supplémentaires fournis par la communauté.

## 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 `cryptkey`s imbriquées dans cryptsetup doivent être approuvées.

Les paquets avec ces fonctionnalités sont archiso-encryptionAUR, mkinitcpio-archiso-encryptionAUR et cryptsetup-nested-cryptkeyAUR.

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.

### Images Google Compute Engine

Une image compressée `releng` compatible avec Google Compute Engine est disponible sous la forme archlinux-gceAUR.

### Configuration de la machine virtuelle libvirt

Une configuration libvirt qui exécute l'image `releng` est disponible sous archlinux-libvirtAUR.

## 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

- Page du projet Archiso
- Documentation officielle
- Liste de diffusion pour l'ingénierie de la version d'Arch Linux
- #archlinux-releng - canal IRC pour l'ingénierie des versions d'Arch Linux
- archiso-manager - l'outil utilisé pour construire les ISOs mensuels officiels.

Categories:

- Live Arch systems (Français)
- Installation process (Français)
- Arch projects (Français)