Squashfs
Squashfs est un système de fichier compressé en lecture seule et dé-dupliqué utilisé dans les LiveCD. Ils sont adaptés à l’exécution d'un système d'exploitation temporaire puisque ce dernier, couplé à Overlayfs, exploitera la RAM de la machine hôte pour permettre une écriture éphémère non destructrice (on peut tout casser, il suffit de redémarrer pour retrouver un système fonctionnel). Je l'utilise personnellement pour effectuer mes tests et réaliser les documentations de ce site sans me faire chier à installer un Debian vierge à chaque fois (imaginez un peu la galère si je faisais ça ! Le clair de mon temps serai occupés aux installations). On peut le retrouver également dans des distributions dédiés au monde de l'embarqué comme DD-WRT.
À la fin de cette documentation, nous aurons un fichier image unique (notre squashfs) ainsi qu'un noyau Linux et son Initrd. Nous pourrons alors utiliser un serveur PXE, une clé USB ou directement Qemu pour démarrer sur cette image.
Installation
Notez que l'ensemble des outils que je vous proposes n'est pas indispensable pour créer un squashfs. J'y reviens après.
apt install xorriso live-build squashfs-tools debootstrap
Fonction des outils proposés:
- xorriso: Permet de créer une image ISO adapté au boot USB (préparation avec la commande cp)
- live-build: Est une suite de scripts permettant l'automatisation de ce que nous allons faire à la main (non traité dans ce document)
- squashfs-tools: Outil de création de l'image squashfs
- debootstrap: Permet de récupérer une distribution Linux qui servira de base à notre image (une Debian Stretch dans ce document)
Préparation
Système hôte
Les actions de cette section sont à effectuées sur votre machine physique (en opposition aux étapes qui serons à effectuées dans le chroot de notre image)
Création de l'arborescence du projet
mkdir -p ~/madistrib/{chroot,binary/{live,isolinux}} && cd ~/madistrib
Installation du système de base
debootstrap --arch amd64 stretch chroot http://ftp.fr.debian.org/debian
Entrer dans le système invité
chroot chroot
Système invité
Les actions de cette section sont à effectuer dans le système que l'on vient d'installer via la commande debootstrap
"Changement temporaire de l'apparence du prompt
export PS1="\e[01;31m(live):\W \$ \e[00m"
Vous comprendrez que c'est utile quand vous avez plusieurs consoles root ouvertes avec le même prompte partout et que vous faites une commande irréversible sur la mauvaise machine...
Montage des volumes spéciaux indispensable pour lancer des commandes tel que apt
mount none -t proc /proc mount none -t sysfs /sys mount none -t devpts /dev/pts
Définition du répertoire personnel du root
export HOME=/root
Franchement je ne sais pas si ce truck sert à quelque chose vu qu'on ne trouve aucune infos compréhensibles sur le net...
apt update apt install dbus dbus-uuidgen > /var/lib/dbus/machine-id
Installation de Linux ainsi que du module de fonctionnement en LiveCD
apt install linux-image-amd64 live-boot
Ajout d'un mot de passe à root
passwd
Si vous êtes fans de sudo
(le masochisme n'est pas répressible donc faîtes-vous plaisir), ne faites pas cette étape et utilisez la configuration de sudo dont vous avez l'habitude.
Création d'un utilisateur
adduser foo
Évidemment, ne le faîte pas si vous n'en avez pas besoin.
Configurer le fuseau horaire
dpkg-reconfigure tzdata
Configurer la console en Français UTF-8
apt install locales dpkg-reconfigure locales
Cocher fr_FR.UTF-8 UTF-8 et sélectionnez fr_FR.UTF-8 sur l'écran suivant.
Configurer le clavier en azerty apt install console-data
Sélectionner pc / azerty / French / Same as X11 (latin9) / Standard. Et comme si ça ne suffisait pas, ces étapes supplémentaires, toujours pour le clavier en français
apt install keyboard-configuration console-setup
Pour keyboard-configuration
, sélectionnez Français - Français (variante obsolète).
Le contenu de /etc/default/keyboard doit être le suivant: