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 suivants : squashfs-tools mkisofs xdialog qemu pour tester et faire les ultimes customisations

 sudo apt-get install squashfs-tools mkisofs xdialog

et il faut environ 5 Go 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é avec les permissions 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. Suppression des programmes pour Windows

Commençons à faire de la place. Le LiveCD original est fourni avec quelques programmes windows, on peut donc supprimer sans souci 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écessaires 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 pouvoir 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 reconnaître le système de fichiers 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 LiveCD, ça nous permet de contrôler la taille de notre customisation sans risquer de dépasser la taille maximum) On crée donc un fichier de 2 Go :

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

On le formate 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 fichiers que l'on vient de créer :

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

On copie l'ancien système de fichiers 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 fichiers, sinon on n'aura pas accès au réseau, et le téléchargement sera donc impossible. On peut aussi copier le sources.list utilisé habituellement pour avoir accès au dépôts 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 fichiers, 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 automatiquement les partitions que vous avez sur votre disque local, il faut passer par l'utilitaire Système > Administration > Disques 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 montées dans le répertoire /media/nomdelapartion Il faudra le rendre exécutable au démarrage dans un deuxième temps (cf point 12).

On finit de nettoyer avant de sortir du systè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 régé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 enlevé des paquets, l'espace disque qu'ils occupaient conserve toujours les données. On n'a modifié que la TOC, il faut remplir l'espace avec des zéros afin de les supprimer complètement (il se peut que cela échoue 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 remplis de zéros. Une fois compressé, tout cela ne tiendra sur quasiment rien.

10. Fabrication du système de fichiers 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, soyez patient.

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émontez pas la partition.

11. Fabrication du nouveau LiveCD

On regénère un nouveau hash MD5 afin qu'il réflè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

Montez 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éloguez-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éez un TAR du dossier home/ubuntu.

 sudo tar cvf fichierdesauvegarde.tar /home/ubuntu

Copiez le contenu de ce tar dans $WORK/new/etc/skel et reprenez à partir du point 9.

13. Francisation de l'iso

Pour ce faire, 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

Tapez la commande

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