Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
personnaliser_live_cd [Le 11/01/2008, 18:18]
82.121.220.175
— (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é 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 programme installé dans le LiveCD : 
- 
-  apt-get update 
- 
-Et si on le souhaite, on supprime ou on installe les programme de nos choix.\\ 
-On fini par un : 
- 
-  apt-get clean 
-  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 droit 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 disponible 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 ou est automounter/​automounter $WORK/​new/​usr/​bin 
-  sudo mkdir $WORK/​new/​usr/​local/​share/​diskmounter 
-  sudo cp /repertoire ou 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écutable au démarrage les scripts automounter / diskmounter vu 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 delogué, 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 refaite 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]].//​ 
  • personnaliser_live_cd.1200071887.txt.gz
  • Dernière modification: Le 18/04/2011, 14:40
  • (modification externe)