Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !


Ce howto provient de http://lenerve.free.fr/dotclear/index.php?2006/08/14/20-customisation-du-livecd-ubuntu qui se base sur https://help.ubuntu.com/community/LiveCDCustomization/6%2e10 http://www.atworkonline.it/~bibe/ubuntu/custom-livecd.htm http://lichota.net/~krzysiek/projects/ubuntu-livecd-customization/ pour la partie francisation Le script de montage des partitions au boot du live cd est basé sur celui disponible ici: http://www.ubuntulinux.nl/files/diskmounter

0.Prérequis

Il nous faut les paquets suivant : squashfs-tools mkisofs xdialog qemu pour tester et faire les ultimes customisations

 sudo apt-get install squashfs-tools mkisofs xdialog

et il faut environ 5Go de disponible

1.Télécharger le livecd

wget http://fr.releases.ubuntu.com/xubuntu/6.06.01/release/xubuntu-6.06-desktop-i386.iso

2.Création de la variable (WORK) pointant vers le répertoire de travail

(ici : mylivecd à la racine de mon répertoire home)

export WORK=~/mylivecd
mkdir -p $WORK

3.Montage de l'iso du livecd

sudo mount -t iso9660 -o loop /repertoire vers/xubuntu-6.06-desktop-i386.iso /cdrom

4.copie de l'image

Maintenant on va copier l'intégralité de l'image vers un nouveau répertoire, lui réglé les permission d'écriture, et pour finir, démontage de l'iso

cd $WORK
mkdir ubuntu-livecd
cp -a /cdrom/. ubuntu-livecd
chmod -R u+w ubuntu-livecd
sudo umount /cdrom

5. nettoyage des prog. de windows

Commençons à faire de la place, le Livecd original est fournit avec quelques programmes windows, on peut donc supprimer sans soucis ce répertoire (95MB d'économisé)

rm -rf $WORK/ubuntu-livecd/programs

6.Décompression de l'image

Les répertoires et fichiers du Live CD que vous pouvez voir dans $WORK/ubuntu-livecd/ sont nécéssaire pour le boot du cd. Le système ubuntu est stocké dans un fichier image compressé $WORK/ubuntu-livecd/casper/filesystem.squashfs. Pour décompresser cette image et pouvoirs travailler dessus pour la customisation, il faut le module squashfs. On va donc charger ce module, et monter l'image dans un nouveau répertoire $WORK/old

sudo modprobe squashfs
mkdir $WORK/old
sudo mount -t squashfs -o loop,ro $WORK/ubuntu-livecd/casper/filesystem.squashfs $WORK/old

Si vous regardez dans le répertoire $WORK/old, vous pouvez reconnaire le système de fichier standard d'une Ubuntu

7.Création de l'image

On va créer une image de 2 Go (taille maximum décompressée du LIVE CD, ça nous permet de controler la taille de notre customisation sans risquer de dépassé la taille maximum) On crée donc un fichier de 2GB:

sudo dd if=/dev/zero of=$WORK/ubuntu-fs.ext2 bs=1M count=2147

On le format en EXT2 :

sudo mke2fs $WORK/ubuntu-fs.ext2

mke2fs va nous prévenir que ubuntu-fs.ext2 n'est pas disque réel, on clique sur yes. On crée un nouveau répertoire qu'on lie au système de fichier que l'on vient de créer

mkdir $WORK/new
sudo mount -o loop $WORK/ubuntu-fs.ext2 $WORK/new

On copie l'ancien sytème de fichier afin de le modifier.

sudo cp -a $WORK/old/. $WORK/new

On peut maintenant démonter $WORK/old

sudo umount $WORK/old

8. Chroot customisation du système

Il faut bien copier /etc/resolv.conf dans notre système de fichier, sinon, on n'aura pas accès au réseau donc pas de téléchargement possible. On peut aussi copier le sources.list utilisé habituellement pour avoir accès au dépots que vous utilisez habituellement.

sudo cp /etc/resolv.conf $WORK/new/etc/
sudo cp /etc/apt/sources.list $WORK/new/etc/apt/sources.list
sudo mount -t proc -o bind /proc $WORK/new/proc
sudo chroot $WORK/new /bin/bash

Nous sommes maintenant root du système de fichier, on peut donc faire toutes les modifications désirées (apt-get remove, install…). Voir la liste des paquets supprimés et installés.

 apt-get update
  apt-get remove...

On fini par un :

  apt-get clean
  dpkg-reconfigure console-data # (Sélectionner le clavier français)

Une fois que l'on a fini la customisation, on sort du chroot :

exit

Le livecd ne monte pas automatique les partitions que vous avez sur votre disque local, il faut passer par l'utilitaire Système/Administration/Disque Si vous voulez qu'elles soient montée au boot du livecd, il faut utiliser ces scripts automounter / diskmounter disponible ici :

http://lenerve.free.fr/download/automounter.tar.gz

A modifier selon vos besoins, dans l'état il monte les partitions NTFS, FAT et HFS en readonly. La source est disponible dans l'archive.

sudo cp /rep ou est automounter/automounter $WORK/new/usr/bin
sudo mkdir $WORK/new/local/share/diskmounter
sudo cp /rep ou est automounter/diskmounter/diskmounter $WORK/new/local/share/diskmounter

Par défaut les partitions détectées seront monter dans le répertoire /media/nomdelapartion Il faudra le rendre exécutable au démarrage dans un deuxième temps (cf point 12)

On fini de nettoyé avant de sortir du sytème

sudo umount $WORK/new/proc
sudo rm $WORK/new/etc/resolv.conf

On est de retour dans notre propre système.

9. Ultimes modifications

Tout d'abord il faut regénérer le fichier manifest pour qu'il prenne en compte les modifications dans les paquets.

sudo chroot $WORK/new dpkg-query -W --showformat='${Package} ${Version}\n'
> $WORK/ubuntu-livecd/casper/filesystem.manifest

Maintenant il faut nettoyer l'espace libre sur le disque. En effet même si nous avons enlever des paquets, l'espace disque qu'ils occupaient conserve toujours les données. On a modifié que la TOC, il faut remplir l'espace avec des zéros afin de les supprimer complètements (il se peut que cela échou en indiquant qu'il n'y a plus d'espace libre). Puis on supprime le fichier zero.

 sudo dd if=/dev/zero of=$WORK/new/dummyfile
 sudo rm $WORK/new/dummyfile

Ainsi les blocs de data sont rempli de zeros, tout cela une fois compressé ne tiendra quasiment rien.

10. Fabrication du système de fichier compressé

sudo rm $WORK/ubuntu-livecd/casper/filesystem.squashfs
cd $WORK/new
sudo mksquashfs . $WORK/ubuntu-livecd/casper/filesystem.squashfs

Cela prend extrèmement de temps.

On peut maintenant démonter $WORK/new

cd $WORK
sudo umount $WORK/new

Si vous voulez refaire une petite customisation esthétique, voir point 12, ne démonter pas la partition.

11. Fabrication du nouveau LIVE CD

On regénère un nouveau hash MD5 afin qu'il reflète le nouveau contenu du CD

cd $WORK/ubuntu-livecd
sudo find . -type f -print0 |xargs -0 md5sum |sudo tee md5sum.txt

On fabrique la nouvelle ISO, ubuntu-new.iso:

cd $WORK
sudo mkisofs -o customLivecd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -V "CustomLiveCD" -cache-inodes -J -l ubuntu-livecd

Une fois que l'iso est crée, vous pouvez la tester en utilisant QEMU.

12. Ultimes customisations

Monter votre nouvelle iso avec qemu, une fois que vous êtes dans le livecd, faites toutes les modifications que vous voulez (fond d'écran, raccourcis sur le bureau, programmes à lancer au démarrage). Une fois que vous avez fini, déloguer vous en cochant la case sauvegarde des données. Une fois que vous vous êtes delogué, passez en session console (CTRL + ALT + F1) et créer un TAR du dossier home/ubuntu.

 sudo tar cvf fichierdesauvegarde.tar /home/ubuntu

Copier le contenu de ce tar dans $WORK/new/etc/skel et reprendre à partir du point 9

13. Francisation de l'iso

Pour ce on peut utiliser ce script : http://lichota.net/~krzysiek/projects/ubuntu-livecd-customization/uck-1.1.tgz (dépend de Xdialog à lancer en console avec un sudo)

14. Tester avec Qemu, graver l'iso

Taper la commande

 qemu -cdrom customLivecd.iso
  • applications/personnalisation/customisationcd.1170470870.txt.gz
  • Dernière modification: Le 18/04/2011, 14:47
  • (modification externe)