Archiso

De ArchwikiFR


Recréer un live sur CD ou image USB d'Arch Linux, c'est possible en utilisant un programme nommé archiso.

Archiso est un ensemble de petits scripts bash capable de générer une image de live-CD/USB complètement opérationnelle. C'est un outil assez générique qui peut notamment servir à construire des systèmes de secours, des disques d'installation spécifiques ou des systèmes live axés sur des intérets particuliers, du système minimaliste à l'usine à gaz de démonstration...

Le système d'archiso tourne autours de mkarchiso. Toutes ses options sont documentées dans la sortie standard.

Attention: Certains scripts comme build.sh et le contenu du répertoire airootfs doivent être manipulés en root uniquement. Bien que ce ne soit pas nécessaire pour toutes les manipulations, effectuez les en root afin d'éviter les problèmes de droit.

Installation

pacman -S archiso

Utilisation

Note: Page en cours de rédaction, ce qui suit représente le minimum syndical pour recréer une live Arch

Commencez par créer un répertoire dédié à votre distribution. Ici nous l’appellerons archlive :

mkdir ~/archlive

Durant l'installation du paquet archiso nous avons installé une série de scripts et d'arborescences qui permettront de générer l'image disque. Ceux -ci se présentent sous deux arborescences: releng et baseline. Si vous souhaitez créer un live complet avec tous vos paquets favoris pré-installés et des scripts poussés, utilisez releng. Si vous préférez une installation ultra-minimale, sans paquet pré-installé utilisez baseline. À titre d'exemple, si vous utilisez releng sans aucune modification ultérieure, vous recréerez l'iso d'archlinux officielle. Nous montrerons ici la méthode releng.

Premièrement, copiez les scripts et l'arborescence nécessaires et allez dans le répertoire releng:

cp -r /usr/share/archiso/configs/releng/ ~/archlive
cd archlive/releng

Configuration de l'iso

Cette section décrit comment configurer notre image disque, comment y installer des paquets, ajouter des utilisateurs, rajouter des fichiers, scripts à exécuter, etc.

Installation de paquets

Pour installer de nouveaux paquets, il suffira d'ajouter le nom de ceux qui nous intéressent dans les fichiers packages.both (pour toutes les architectures), packages.x86_64 (seulement pour les architectures 64 bits) ou packages.i686 (seulement pour les architectures 64 bits). Les noms des paquets doivent être écrits un par ligne. Si par exemple on veut rajouter vim à notre image on peut procéder de la sorte:

echo vim >> ~/archlive/releng/packages.both

vim sera ainsi installé sur votre iso quelque soit l'architecture de la machine sur laquelle le live est lancé.

Si un paquet présente une incompatibilité flagrante avec l'une ou l'autre des architectures, alors il faudra l'indiquer uniquement dans le fichier packages.i686 ou packages.x86_64 selon le cas.

Scripter le démarrage

Pour lancer des scripts au démarrage de l'iso, il faut éditer le fichier releng/airootfs/root/customize-airootfs.sh.

vim ~/archlive/releng/airootfs/root/customize-airootfs.sh

Voici quelques exemples utiles de modifications :

Locales et clavier en français

Pour générer les locales françaises commentez la ligne par défaut et éditez le fichier comme suit :

Fichier: customize-airootfs.sh
#sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
sed -i 's/#\(fr_FR\.UTF-8\)/\1/' /etc/locale.gen
locale-gen

Changez de la même manière le fuseau horaire :

Fichier: customize-airootfs.sh
#ln -sf /usr/share/zoneinfo/UTC /etc/localtime
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

Pour avoir le clavier azerty français dans votre terminal :

echo "KEYMAP=fr-latin9" > ~/archlive/releng/airootfs/etc/vconsole.conf

Changer le shell de zsh vers bash

Par défaut, le shell est zsh. pour revenir à bash, modifiez customize-airootfs.sh comme suit :

Fichier: customize-airootfs.sh
#usermod -s /usr/bin/zsh root
usermod -s /usr/bin/bash root

Ajout d'utilisateurs et autologin

Par défaut un utilisateur nommé arch est créé dans l'iso à la ligne :

Fichier: customize-airootfs.sh
useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh arch

Vous noterez qu'il dispose d'un home, n'a pas de mot de passe et qu'il fait partie du groupe wheel, il dispose donc de privilèges d'administration. Vous pouvez vous servir de cette ligne comme référence pour ajouter d'autres utilisateur ou bien encore la supprimer.

Pour vous logger automatiquement avec un autre utilisateur que root (par exemple toto), modifiez le fichier releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf comme suit :

Fichier: autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin toto --noclear %I 38400 linux

Ou supprimez l'option --autologin pour ne pas vous connecter automatiquement à aucun compte.

Installation de fichiers

L'arborescence déployée dans le live se situe dans le répertoire releng/airootfs/

Ici nous allons voire deux cas de figures :

  • Installation d'un fichier dans l'arborescence racine
  • Installation d'un fichier dans le home des utilisateurs

Arborescence racine

Copions par exemple vos scripts de configuration de firewall iptables.

cp -r /etc/iptables ~/archlive/releng/airootfs/etc

Ainsi vos règles seront prises en compte dans le live.

Répertoire home des utilisateurs

Admettons que vous voudriez copier votre fichier .vimrc préféré. Ne créez pas de répertoire releng/airootfs/home/toto ! Vous devez créer un répertoire skel :

mkdir ~/archlive/releng/airootfs/etc/skel

Puis y copier votre fichier :

cp ~/.vimrc ~/archlive/releng/airootfs/etc/skel

Ainsi il sera déployé pour tous les utilisateurs créés.

Création de l'iso

Avec les droits root lancez le script de construction de l'image:

./build.sh -v

Vous retrouverez l'image iso dans le répertoire ~/archlive/releng/work/out .

Relancer la création de l'iso

Si vous ajustez votre image et que vous opérez des modifications ultérieures, pour relancer la création de l'iso, vous devrez supprimer des fichiers de lock. Ce sont tous les fichiers contenus dans le répertoire work.

rm -rvf ~/archlive/releng/work

Si vous ne souhaitez pas supprimer de paquet mais juste en ajouter, vous pouvez simplement supprimer les fichiers commençant par build.make_* :

rm -vf ~/archlive/releng/work/build.make_*

Cela vous évitera de retélécharger tous les paquets

Lancer le build sur une archi 32 bits

Par défaut, il n'est pas possible de construire une ISO sur une architecture 32 bits.

Pour pallier cela, il suffit de modifier le script build.sh de la manière suivante :

- supprimer le test d'architecture suivant :

             if [[ ${arch} != x86_64 ]]; then
                   echo "This script needs to be run on x86_64"
                   _usage 1
             fi

- supprimer x86_64 dans les trois boucles en fin de script

- supprimer les appels aux fonctions "run_once make_efi" et "run_once make_efiboot" en fin de script