J’ai récemment repris mon tutoriel pour la personnalisation d’un live-cd Ubuntu. Je désirai créer un live usb, une clé usb contenant une distribution Ubuntu live personnalisée, qui du coup dépasse la capacité d’un cd et contient les applications dont j’ai besoin.

Pour toute la partie concernant la modification du live-cd jusqu’à la reconstruction du squashfs, je vous renvoi au premier tutoriel.

Par contre je vais ici détailler la fin du processus avec notamment la personnalisation de l’interface et des applications au démarrage mais aussi donner quelques éléments utiles concernant la création de l’iso et l’installation de celui-ci sur une clé USB.

Rappel sur la reconstruction du squashfs:

Il faut systématiquement régénérer l’initrd avant le processus de reconstruction du squashfs via la commande:

update-initramfs -k all -u

et ce dans le chroot puis démonter /proc, /sys et /dev avant de sortir du chroot via exit.

sudo umount /dev

sudo umount /sys

sudo umount /proc

sudo rm /etc/resolv.conf

exit

Création de l’image iso:

La création de l’iso consiste en une commande mais doit être précédée de la copie de l’initrd.gz et de vmlinuz ainsi que de la régeneration de l’empreinte md5 du système:

sudo cp squashfs/boot/vmlinuz-2.6.31-20-generic iso/casper/vmlinuz

sudo cp squashfs/boot/initrd.img-2.6.31-20-generic iso/casper/initrd.gz

cd squashfs

sudo bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"

cd ..

sudo mkisofs -r -V "Custom Ubuntu Live CD" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o custom-live-cd-i386.iso iso

Notre image iso ainsi crée se nomme « custom-live-cd-i386.iso« .

Personnalisation de l’interface et des applications au lancement du système:

Le moyen le plus simple pour personnaliser ces éléments est de lancer la distribution précédemment crée dans une machine virtuelle puis de personnaliser l’interface et les données du /home à son gout puis créer une archive de ce /home contenant toutes les modifications apportées:

tar -cvzf /tmp/perso-home.tar.gz /home/ubuntu

Il suffira ensuite de récupérer cette archive par quelque moyen que ce soit (mail, ftp, ssh, …) puis de l’extraire dans le dossier /etc/skel de votre squashfs:

scp /tmp/perso-home.tar.gz 192.168.0.1:/tmp

tar -xvzf /tmp/perso-home.tar.gz /livecd/squashfs/etc/skel/

Puis vérifier à l’aide de la commande:

ls -al /livecd/squashfs/etc/skel/

Vous devriez voir ce qui était tout à l’heure dans votre répertoire personnel.

Une fois toutes les modifications effectuées, il faut reprendre à l’étape « reconstruction du squashfs » puis régénérer l’iso.

Installer votre distribution sur une clé USB:

Formater votre clé usb:

sudo mkfs.vfat /dev/sdx1

L’installation d’une distribution sur clé usb se fait très facilement via l’utilitaire Unetbootin.

Il faut monter cette clé avant d’utiliser Unetbootin:

sudo mount /dev/sdx1 /mnt

sudo unetbootin

Il suffit de choisir l’iso et le disque de destination (clé usb). L’installation devrait se passer sans problème.

Une fois content de votre distribution, vous aimeriez certainement pouvoir l’installer plus rapidement sur d’autres clé usb. Il vous suffit de dupliquer cette clé dans un fichier qui vous servira à créer les autres clés.

Dupliquer une clé usb:

La ou les clés usb concernées ne doivent pas être montées:

sudo umount /dev/sdx1

La duplication se fait à l’aide de la commande « dd » qui permet d’effectuer des copies bloc par bloc, ici par bloc de 1024 kbits:

Dupliquer une clé vers un fichier:

dd if=/dev/sda | gzip -v9 | dd of=/emplacement/de/la/sauvegarde/ghost.gz bs=1024k

Dupliquer un fichier vers une clé: (opération inverse)

zcat /emplacement/de/la/sauvegarde/ghost.gz | dd of=/dev/sda bs=1024k

Dupliquer directement une clé usb sur une autre:

dd if=/dev/sdx of=/dev/sdy bs=1024k

Vous êtes maintenant en possession de tous les éléments permettant de personnalisation une distribution pour en faire un live-usb.