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 | ||
personnaliser_live_cd [Le 27/02/2008, 07:58] 145.232.234.8 |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>personnalisation tutoriel feisty}} | ||
- | ---- | ||
- | |||
- | ====== Personnaliser un Live CD ====== | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Pré-requis ===== | ||
- | |||
- | * [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **squashfs-tools mkisofs xdialog** et **qemu** pour tester et faire les finalisations. | ||
- | * 5 Gio d'espace disque disponible. | ||
- | |||
- | |||
- | ===== Télécharger le live CD ===== | ||
- | |||
- | Pour télécharger la version 7.10 de Ubuntu : | ||
- | wget http://fr.releases.ubuntu.com/7.10/ubuntu-7.10-desktop-i386.iso | ||
- | |||
- | Pour télécharger la version 7.10 de Kubuntu : | ||
- | wget http://fr.releases.ubuntu.com/kubuntu/7.10/kubuntu-7.10-desktop-i386.iso | ||
- | |||
- | Pour télécharger la version 7.10 de Xubuntu : | ||
- | wget http://cdimage.ubuntu.com/xubuntu/releases/7.10/release/xubuntu-7.10-desktop-i386.iso | ||
- | |||
- | ===== Création d'une variable pointant vers le répertoire de travail ===== | ||
- | |||
- | On considère que le répertoire de travail sera le répertoire **mylivecd** à la racine de mon répertoire home. | ||
- | Pour travailler plus facilement, on va créer une variable d'environnement pointant vers le chemin ///home/monlogin/mylivecd//. | ||
- | |||
- | export WORK=~/mylivecd | ||
- | mkdir -p $WORK | ||
- | |||
- | Le ~ est un raccourci pointant vers /home/monlogin. | ||
- | |||
- | |||
- | |||
- | ===== Montage de l'ISO du live CD ===== | ||
- | |||
- | Il va falloir maintenant monter (de la même façon qu'une partition) l'image du Live CD téléchargé précédemment pour pouvoir le manipuler, pour cela on va utiliser la commande mount en spécifiant le répertoire ///cdrom/// pour point de montage. | ||
- | |||
- | sudo mount -t iso9660 -o loop /repertoire_vers/monimagelivecd.iso /cdrom | ||
- | |||
- | La commande //mount// permet de monter l'image dans le système de fichier courant. | ||
- | |||
- | L'attribut //-t iso9660// permet de renseigner l'encodage des caractères (les CD utilisent cet encodage). | ||
- | |||
- | L'attribut //-o loop// est pour dire au système qu'il faut monter l'image comme un périphérique local (il sera reconnu donc comme un lecteur de cdrom). | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Copie de l'image ===== | ||
- | |||
- | Maintenant, on va copier l'intégralité de l'image vers le répertoire de travail créé précédemment (en utilisant la variable WORK), lui mettre les droits d'écriture, et pour finir, démonter l'ISO qui ne nous sert plus à rien. | ||
- | |||
- | cd $WORK | ||
- | mkdir ubuntu-livecd | ||
- | sudo cp -a /cdrom/. ubuntu-livecd | ||
- | sudo chmod -R u+w ubuntu-livecd | ||
- | sudo umount /cdrom | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Suppression des programmes pour Windows ===== | ||
- | |||
- | Commençons à faire de la place. Le Live CD original est fourni avec quelques programmes Windows permettant de promouvoir Ubuntu quand on utilise le Live CD sur une plateforme Windows. | ||
- | |||
- | On peut donc supprimer sans souci ces répertoires (44Mo d'économisé) | ||
- | |||
- | cd $WORK/ubuntu-livecd | ||
- | rm -r bin pics disctree programs autorun.inf kubuntu.ico start.bmp start.exe start.ini wubi-cdboot.exe | ||
- | |||
- | ===== 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 personnalisation, 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 reconnaitre le système de fichiers standard d'une Ubuntu (racine /, répertoire /home, etc...). | ||
- | |||
- | ===== Création de l'image ===== | ||
- | |||
- | On va créer une image de 2 Go (taille maximum décompressée du Live CD), ceci nous permettra de contrôler la taille de notre personnalisation sans risquer de dépasser la taille maximum.\\ | ||
- | On crée donc un fichier de 2 Go avec la commande dd : | ||
- | |||
- | sudo dd if=/dev/zero of=$WORK/ubuntu-fs.ext2 bs=1M seek=2146 count=1 | ||
- | |||
- | On formate l'image précédemment créee en ext2 : | ||
- | |||
- | sudo mke2fs $WORK/ubuntu-fs.ext2 | ||
- | |||
- | mke2fs va nous prévenir que //ubuntu-fs.ext2// n'est pas disque réel (normal, c'est une image), on clique sur yes. | ||
- | On crée un nouveau répertoire, et on monte cette nouvelle image dedans : | ||
- | |||
- | mkdir $WORK/new | ||
- | sudo mount -o loop $WORK/ubuntu-fs.ext2 $WORK/new | ||
- | |||
- | On copie l'ancien système de fichiers (se trouvant dans le répertoire old) dans le nouveau afin de le modifier : | ||
- | |||
- | sudo cp -a $WORK/old/. $WORK/new | ||
- | |||
- | On peut maintenant démonter $WORK/old : | ||
- | |||
- | sudo umount $WORK/old | ||
- | |||
- | ===== Chroot et personnalisation du système ===== | ||
- | |||
- | ==== Préparation du chroot ==== | ||
- | |||
- | 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 | ||
- | |||
- | Maintenant, on peut "chrooter" le système pour pouvoir personnaliser le Live CD. On monte en plus le système de fichier /proc pour travailler plus aisément (contient toutes les infos du système). | ||
- | |||
- | sudo mount -t proc -o bind /proc $WORK/new/proc | ||
- | sudo chroot $WORK/new /bin/bash | ||
- | |||
- | L'utilisation du chroot permet d'isoler l'exécution du programme (ici /bin/bash) et ainsi, utiliser le terminal nouvellement ouvert pour travailler sur le Live CD comme si on travaillait sur le système local. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ==== Personnalisation du Live CD par le chroot ==== | ||
- | |||
- | Nous sommes maintenant connectés en root (grâce au chroot) au système de fichiers du Live CD. On peut donc faire toutes les modifications désirées (apt-get remove, install...). Voir la liste des paquets supprimés et installés.\\ | ||
- | On commence donc par la mise à jour des programmes installés dans le LiveCD : | ||
- | |||
- | apt-get update | ||
- | |||
- | Puis mise à jour du système : | ||
- | |||
- | <code> | ||
- | apt-get upgrade | ||
- | </code> | ||
- | |||
- | Et si on le souhaite, on supprime ou on installe les programmes de nos choix.\\ | ||
- | On finit par un : | ||
- | |||
- | apt-get clean | ||
- | apt-get install console-data | ||
- | dpkg-reconfigure console-data # (Sélectionner le clavier français) | ||
- | |||
- | Finalement, on peut mettre le Live CD en français. Pour ce faire, on télécharge ce script : | ||
- | http://lichota.net/~krzysiek/projects/ubuntu-livecd-customization/uck-1.1.tgz | ||
- | |||
- | Et on l'exécute en console avec les droits d'administration (avec un sudo). | ||
- | |||
- | Une fois que l'on a fini la personnalisation, on sort du chroot : | ||
- | |||
- | exit | ||
- | |||
- | |||
- | |||
- | |||
- | ==== Finalisation ==== | ||
- | |||
- | Le Live CD ne monte pas automatiquement les partitions que vous avez sur votre disque local, il faut passer par ces scripts automounter / diskmounter disponibles ici : | ||
- | |||
- | http://lenerve.free.fr/download/automounter.tar.gz | ||
- | |||
- | À 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 /repertoire oû est automounter/automounter $WORK/new/usr/bin | ||
- | sudo mkdir $WORK/new/usr/local/share/diskmounter | ||
- | sudo cp /repertoire oû est automounter/diskmounter/diskmounter $WORK/new/usr/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 plus loin dans le tutoriel). | ||
- | |||
- | 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. | ||
- | |||
- | |||
- | |||
- | |||
- | ===== 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. | ||
- | |||
- | <code>sudo chroot $WORK/new dpkg-query -W --showformat='${Package} ${Version}\n' > $WORK/ubuntu-livecd/casper/filesystem.manifest | ||
- | sudo chroot $WORK/new dpkg-query -W --showformat='${Package} ${Version}\n' > $WORK/ubuntu-livecd/casper/filesystem.manifest-desktop</code> | ||
- | |||
- | Cette deuxième ligne permet de considérer que la liste des paquets à prendre en compte lors d'une installation est celle des paquets présents sur le live CD. | ||
- | |||
- | Pour enlever le paquet ubiquity et qtparted de la liste des paquets à installer (programmes nécessaires à l'installation interactive) | ||
- | <code>sudo sed -i '/ubiquity/d' $WORK/ubuntu-livecd/casper/filesystem.manifest-desktop</code> | ||
- | <code>sudo sed -i '/qtparted/d' $WORK/ubuntu-livecd/casper/filesystem.manifest-desktop</code> | ||
- | |||
- | ===== Fabrication du système de fichiers compressé ===== | ||
- | |||
- | Il faut maintenant compresser le système de fichier du Live CD pour pouvoir le mettre dans une image CD. | ||
- | |||
- | sudo rm $WORK/ubuntu-livecd/casper/filesystem.squashfs | ||
- | cd $WORK/new | ||
- | sudo mksquashfs . $WORK/ubuntu-livecd/casper/filesystem.squashfs | ||
- | |||
- | Cela dure extrêmement longtemps, soyez patient. | ||
- | On peut maintenant démonter $WORK/new | ||
- | |||
- | <note>Si vous voulez refaire une petite personnalisation esthétique, (détaillé plus loin), ne démontez pas la partition (ne pas suivre les deux instructions ci-dessous).</note> | ||
- | |||
- | cd $WORK | ||
- | sudo umount $WORK/new | ||
- | |||
- | |||
- | |||
- | ===== Fabrication du nouveau Live CD ===== | ||
- | |||
- | On régénère un nouveau hash MD5 afin qu'il reflète le nouveau contenu du CD. | ||
- | <code>cd $WORK/ubuntu-livecd | ||
- | sudo find . -type f -print0 |xargs -0 md5sum |sudo tee md5sum.txt</code> | ||
- | |||
- | On fabrique la nouvelle ISO portant le nom ubuntu-new.iso : | ||
- | <code>cd $WORK | ||
- | sudo mkisofs -o ubuntu-new.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</code> | ||
- | |||
- | Une fois que le fichier ISO crée, vous pouvez la tester en utilisant [[:qemu]]. | ||
- | |||
- | |||
- | |||
- | ===== Modification esthétique du Live CD ===== | ||
- | |||
- | Montez votre nouvelle ISO avec qemu. | ||
- | |||
- | qemu -no-acpi -cdrom ubuntu-new.iso | ||
- | |||
- | Une fois que vous êtes dans le Live CD, faites toutes les modifications que vous voulez (fond d'écran, raccourcis sur le bureau, programmes à lancer au démarrage). | ||
- | |||
- | Profitez-en pour rendre exécutables au démarrage les scripts automounter / diskmounter vus précédemment. | ||
- | Pour cela, allez dans //Système -> Session//, et rajouter le programme automounter en lui mettant une priorité de 30. | ||
- | |||
- | Une fois que vous avez fini, déloguez-vous en cochant la case "sauvegarde des données". Une fois que vous vous êtes délogué, passez en session console (Ctrl--Alt--F1) et créez un TAR du dossier /home/ubuntu. | ||
- | |||
- | sudo tar cvf fichierdesauvegarde.tar /home/ubuntu | ||
- | |||
- | Quittez qemu puis copiez le contenu de ce tar dans //$WORK/new/etc/skel// et refaites une image ISO en reprenant à partir de [[personnaliser_live_cd#ultimes_modifications|ce point]]. | ||
- | |||
- | |||
- | ===== Sources, liens et références ===== | ||
- | |||
- | 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 | ||
- | |||
- | ---- | ||
- | |||
- | //Contributeurs : [[:utilisateurs:Adam0509]], [[:utilisateurs:Fengy]], [[:utilisateurs:spiers]].// |