Comment créer son ISO Archlinux personnalisée

archecho-boot

Cet article vous explique comment créer votre propre #ISO personnalisée d'#Archlinux. Grâce à l'excellent travail d'Erik Dubois, gérant d'arcolinux, vous allez récupérer par git un script, qu'il vous faudra ensuite modifier à votre guise. Voici les différentes étapes à suivre avec quelques astuces et exemples.

Il y a 3 étapes principales. qui demandent d'avoir quelques bonnes bases et un minimum d'expérience avec le fonctionnement de #Linux. Il sera plus que recommandé de tester votre ISO dans une VM, comme celle de Qemu, par exemple. Avant d'obtenir le système de vos rêves, vous devrez faire quelques essais.

Première étape

Dans le dossier de votre choix (ici ISO), récupérez par git, le script pour l'environnement que vous voulez

Ici la version pour l'environnement cinnamon en version minimale. Dans un terminal, tapez

mkdir ISO
cd ISO/
git clone https://github.com/arcolinuxb/arco-cinnamon-minimal

Dans l'archive récupérée, ici dans le dossier “arco-cinnamon-minimal”, 2 fichiers serviront à personnaliser votre ISO. * archiso/packages.x86_64 * installation-scripts/30-build-the-iso-the-first-time.sh

Avoir sa propre ISO consiste à intégrer ses fichiers de configurations et différents paramètres système. Je vous conseille donc de créer un dossier nommé à votre guise comme “.myconfig”, dans lequel vous copierez vos dossiers ou fichiers personnels de configuration des logiciels comme celui de firefox (.mozilla), et/ou encore de vos autres logiciels préférés dans le dossier (.config). Par exemple, si on veut conserver sa configuration de l'environnement Cinnamon, on utilise dconf pour créer un fichier .dconf, renseignant les changements appliqués. Ça fonctionne aussi avec nemo, entre autres...

dconf dump /org/cinnamon/ > ~/ISO/.myconfig/cinnamon.dconf

Seconde étape (Installation/suppression de logiciels)

Ouvrez le fichier “packages.x86_64” (avec geany, gedit...), et gérez les noms des paquets que vous voulez. Par exemple, pour intégrer nativement Qemu et geany, ajoutez ces paquets :

geany
qemu
qemu-arch-extra

Pour ne pas intégrer certains logiciels indésirables, mettez un # devant le nom du paquet.

Troisième étape (créer/copier les configurations)

Ouvrez ensuite le fichier “30-build-the-iso-the-first-time.sh”, dans lequel vous intègrerez vos fichiers de configurations de votre dossier “.myconfig”, ajouté précédemment.

Il faut renseigner vos fichiers de configuration dans le dossier “skel”, qui représente le futur dossier personnel. On retrouvera aussi ce dossier skel complet dans la racine du futur système. Faites le après la ligne de récupération du fichier .bashrc (qu'il vous faudra modifier en bashrc-latest si vous voulez intégrer le vôtre)

Après la ligne 80, environ...

echo "getting .bashrc from arcolinux-root"
# Modifiez la copie /skel/.bashrc comme suit, si vous voulez intégrer votre fichier bash
wget https://raw.githubusercontent.com/arcolinux/arcolinux-root/master/etc/skel/.bashrc-latest -O ../work/archiso/airootfs/etc/skel/.bashrc-latest

Ensuite ajoutez par exemple ceci, pour copier vos fichiers de configuration :

fdcinsysconf="$HOME/ISO/.myconfig"
cp -f $fdcinsysconf/.bashrc ../work/archiso/airootfs/etc/skel/
cp -f $fdcinsysconf/lightdm/lightdm-gtk-greeter.conf ../work/archiso/airootfs/etc/lightdm/
cp -r $fdcinsysconf/backgrounds ../work/archiso/airootfs/usr/share/

Le dossier “airootfs” représente le dossier root du futur système. Ici, on copie depuis son dossier “.myconfig” son fichier “.bashrc” dans son futur dossier personnel, son dossier backgrounds dans usr/share et la configuration de la fenêtre de connexion lightdm dans /etc/lightdm

Après, on se fait plaisir... Quelques exemples

Pour que le terminal se lance au démarrage du système, et donc au premier lancement, afin de peaufiner l'installation avec des installations manuelles, et effectuer diverses opérations, on ajoute le fichier “org.gnome.Terminal.desktop” en le copiant dans le dossier “skel/.config/autostart”. Dans son fichier “.bashrc”, pour lancer sa fonction, ici nommée “firststart” automatiquement, on peut ajouter ceci dedans :

if 	[[ -d ~/.myconfig ]] && [[ ! -f ~/.myconfig/.myconfig-done ]];then
	if	[[ -f ~/.myconfig/.bashrc-first-start ]];then
		. ~/.myconfig/.bashrc-first-start
		firststart
	fi
fi

Dans son fichier “.bashrc-first-start”, on peut ajouter ceci.

function firststart {
# Restauration de Cinnamon
dconf load /org/cinnamon/ < $HOME/.myconfig/cinnamon.dconf

# Installation manuelle de youtube-dl
	if	[[ ! -f /usr/local/bin/youtube-dl ]];then
			echo "#  Installation (manuelle) de youtube-dl dans /usr/local/bin/youtube-dl..."
			echo
			sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl 2> /dev/null
			sudo chmod a+rx /usr/local/bin/youtube-dl 2> /dev/null
	fi

# Some Cleaning
sudo bleachbit -c thumbnails.cache system.cache system.clipboard system.custom system.desktop_entry system.memory system.recent_documents system.rotated_logs system.tmp system.trash firefox.* journald.* 2> /dev/null

# Mark done	&& update db
	echo "" > $HOME/.myconfig/.myconfig-done
	sudo updatedb
}

Ce script bash restaure ses paramètres de Cinnamon, et installera youtube-dl manuellement et de manière silencieuse. Si vous avez installé bleachbit, ce script fera un peu de nettoyage au démarrage. Ensuite, le fichier “.myconfig-done” sera créé, indiquant que l'opération a été faite. Ainsi, quand un terminal sera lancé à nouveau, comme le fichier “.myconfig-done” est présent, l'exécution de la fonction “firststart” sera ignorée. Enfin, comme cela ne concerne que le premier démarrage, on met à jour la base de donnée avec sudo updatedb. Pratique si on veut utiliser “locate”.

Si vous avez compris jusqu'ici le principe, vous avez alors tous les outils pour créer votre belle ISO personnelle. À vous de la partager et d'aider vos amis à franchir le pas d'Archlinux. Attention avec les fichiers personnels de configuration, comme ceux de firefox. Assurez-vous avant de le déployer, d'avoir vidé son historique, et les mots de passe enregistrés dans 'about:logins”.

Compilation, création du fichier ISO

Une fois toutes ces étapes terminées, il ne reste plus qu'à créer l'ISO. Dans un terminal :

./30-build-the-iso-the-first-time.sh

Graver votre ISO sur une clé USB...

# Identifier sa clé USB
grep -Ff <(hwinfo --disk --short) <(hwinfo --usb --short)
# Copier son ISO sur sa clé (sdc...) avec indicateur de progression
dd if=MaSuperISO.iso of=/dev/sd-CLEUSB- bs=4M status=progress && sync

archecho-install-calamares

Amusez-vous bien.