Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
applications:personnalisation:customisationcd [Le 03/02/2007, 03:47] 81.244.57.224 ancienne révision restaurée |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | 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 |