Table des matières

1. Création d'une image RAW
2. Configuration avec "chroot"
2.1. Manipulations
2.2. Récapitulatif
3. Validation avec Qemu

1. Création d'une image RAW

Dans un soucis de confort on travaillera sur une copie du système de fichiers qui sera recopié bloc à bloc sur le disque dur et non directement sur la clé USB (temps d'accès Read/Write).


$ sudo dd if=/dev/sda1 of=usb_demo_wsim.raw bs=512
	  

2. Configuration avec "chroot"

L'utilisation de Chroot permet d'administrer la distribution inactive permettant notamment de ne pas augmenter sa taille. les répertoires de travail et de téléchargement (apt-get, aptitude) se font sur le système actif et non sur le système cible.

La décompression du système du fichiers "filesystem.squash" et sa modification avec Chroot permet d'agir à la fois sur la version "live" exécutée depuis la clé USB mais également sur la version installable. Ainsi, l'installation de notre distribution est fidèle à la version de "démo".

Ci-dessous un résumé du fonctionnement d'une version Live/Installable (Ubuntu) :

Fonctionnement de casper (LiveCD Ubuntu)

Figure III.1. Fonctionnement de casper (LiveCD Ubuntu)


2.1. Manipulations

Pour modifier le système de fichiers il faut tout d'abord, monter l'image RAW dans un dossier :


$ sudo mount -o loop image.raw mnt
	  

Ensuite, il faut décompresser le système de fichiers avec la commande unsquashfs


$ sudo unsquashfs mnt/casper/filesystem.squashfs 
	  

Une fois le système de fichiers décompressé dans /squashfs-root, Il ne reste plus qu'a effectuer le Chroot sans oublier de copier la configuration réseau de la machine hôte.


$ sudo cp /etc/resolv.conf /mnt/etc/

$ sudo mount /dev/    /mnt/dev      -o bind
$ sudo mount /dev/pts /mnt/dev/pts  -o bind
$ sudo mount /proc    /mnt/proc     -o bind
$ sudo mount /sys     /mnt/sys      -o bind
$ sudo chroot squashfs-root
	      

[Note]Chroot mode

Toutes les commandes que vous executerez ce feront dans le "Chroot", c'est-à-dire sur votre système de fichiers cible. Assurez vous d'avoir "aptitude" ou "apt-get" pour faire des installations / désinstallations et n'oubliez pas de faire un aptitude clean à la fin

  • Faire les Mises-à-jours
  • Installer de nouveaux paquets
  • Vérifier qu'aucun service n'est démarré avec des fichiers ouverts dans le Chroot (commande : lsof)
  • Quitter le Chroot avec exit


 $ sudo umount /mnt/sys
 $ sudo umount /mnt/proc
 $ sudo umount /mnt/dev/pts
 $ sudo umount /mnt/dev
	      

Une fois les modifications terminées, il ne reste plus qu'a recompresser le système de fichiers et le copier au bon endroit dans l'image RAW montée sur /mnt


$ sudo mksquashfs squashfs-root mnt/casper/filesystem.squashfs
	  

2.2. Récapitulatif

Voici un schéma récapitulatif des étapes à suivre pour modifier son système de fichiers :

Récapitulatif des étapes de modification

Figure III.2. Récapitulatif des étapes de modification


3. Validation avec Qemu

QEMU permet d'exécuter un ou plusieurs systèmes d'exploitation (et leurs applications) de manière isolée sur une même machine physique. Ainsi, on peut donc booter sur l'image .raw créée précédemment afin de valider le contenu de la distribution modifiée.

[Note]Remarque

Il existe une interface utilisateur permettant d'alléger son utilisation, Qemu-launcher.

Voici un exemple d'affichage sous Qemu avec une image RAW :

Live USB avec Qemu

Figure III.3. Live USB avec Qemu