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_livecd [Le 12/08/2012, 23:52]
rogue-spectre [Modification du système] astuce nettoyage en plus
personnaliser_livecd [Le 02/05/2023, 17:57] (Version actuelle)
89.86.155.3 [Modification du système]
Ligne 4: Ligne 4:
 ====== Comment personnaliser son live CD Ubuntu ====== ====== Comment personnaliser son live CD Ubuntu ======
  
-Dans ce tutoriel, nous vous expliquerons comment créer votre propre liveCD (ou liveDVD), en modifiant un liveCD ubuntu déjà existant afin qu'il corresponde à vos besoins. Vous pourrez par exemple installer les paquets que vous souhaitez, mettre dans le /home du liveCD les fichiers dont vous avez besoin, etc.+Dans ce tutoriel, nous vous expliquerons comment créer votre propre liveCD (ou liveDVD), 
 + en modifiant un liveCD ubuntu déjà existant afin qu'il corresponde à vos besoins. 
 + Vous pourrez par exemple installer les paquets que vous souhaitez, 
 +mettre dans le /home du liveCD les fichiers dont vous avez besoin, etc.
  
  
Ligne 10: Ligne 13:
  
 Il existe plusieurs applications permettant de personnaliser votre liveCD : Il existe plusieurs applications permettant de personnaliser votre liveCD :
-  * [[:UCK]] +  * Le script "​isorespin.sh"​ (conçu par l'​individu "​Linuxium"​)]] permet (aux utilisateurs avancés) de modifier des [[wp>fr:Image disque|images disque]] ISO de Ubuntu afin de les rendre compatibles (démarrables et modification de drivers) avec les CPU Intel Atom (2017) 
-  * [[:Remastersys]] +  * [[https://ubuntuplace.info/questions/16155/comment-utiliser-cubic-pour-creer-une-image-cd-ubuntu-person|Cubic]] 
-  *[[ http://forum.ubuntu-fr.org/viewtopic.php?​id=424373|ModCustom]] +
-  * [[http://www.le-libriste.fr/​2012/​03/​creer-votre-propre-distribution-avec-ubuntu-builder/|Ubuntu-Builder]]+
  
 <note tip>Il est recommandé d'​utiliser la méthode manuelle ci-dessous pour des questions de fiabilité.</​note>​ <note tip>Il est recommandé d'​utiliser la méthode manuelle ci-dessous pour des questions de fiabilité.</​note>​
Ligne 23: Ligne 25:
   * Posséder une image CD (iso) d'​Ubuntu Desktop. (l'​[[:​cd_ubuntu-fr|Edition Francophone]] par exemple)   * Posséder une image CD (iso) d'​Ubuntu Desktop. (l'​[[:​cd_ubuntu-fr|Edition Francophone]] par exemple)
   * Disposer d'​environ 3Go d'​espace libre sur votre Disque Dur.   * Disposer d'​environ 3Go d'​espace libre sur votre Disque Dur.
 +  * Installer les outils relatifs au squashfs (format de compression en lecture seule utilisé dans les ISOs Ubuntu) : <code bash>​sudo apt-get install -y squashfs-tools schroot genisoimage xorriso</​code>​
  
 ==== Introduction : Généralités sur le liveCD ==== ==== Introduction : Généralités sur le liveCD ====
  
-Comme vous le savez, un liveCD est un CD bootable, qui va charger un système Linux en mémoire vive. Cela permet de tester une distribution sans risquer de faire des dégâts sur les disques dur, par exemple.\\ +Comme vous le savez, un liveCD est un CD bootable, qui va charger un système 
-Un liveCD Linux n'est donc rien d'​autre qu'un système Linux classique, son but étant d'​être en lecture seule et de ne pas tenir de place, il est compressé. Pour la compression,​ on utilise squashfs : un système de fichier (tel que ext3 ou reiserfs), qui ne permet que la lecture mais permet un gain de place très important.\\ + Linux en mémoire vive. Cela permet de tester une distribution sans risquer de faire 
-Malheureusement,​ ce système seul ne permet pas de faire fonctionner un système Linux. On l'​associe donc à un autre système de fichier, qui est entièrement placé en mémoire : ramfs.\\+ des dégâts sur les disques dur, par exemple.\\ 
 +Un liveCD Linux n'est donc rien d'​autre qu'un système Linux classique, 
 +son but étant d'​être en lecture seule et de ne pas tenir de place, il est compressé. 
 + Pour la compression,​ on utilise squashfs : un système de fichier (tel que ext3 ou reiserfs), 
 + qui ne permet que la lecture mais permet un gain de place très important.\\ 
 +Malheureusement,​ ce système seul ne permet pas de faire fonctionner un système Linux. 
 +On l'​associe donc à un autre système de fichier, qui est entièrement placé en mémoire : ramfs.\\
 Un dernier système de fichier permet d'​associer les deux précédents : unionfs. Un dernier système de fichier permet d'​associer les deux précédents : unionfs.
-Unionfs est utilisable grâce à l'​initrd,​ qui permet de charger un mini-système en mémoire au boot, et d'agir sur le « vrai » système.\\ +Unionfs est utilisable grâce à l'​initrd,​ qui permet de charger un mini-système 
-Le soft casper permet la mise en place du boot du liveCD ​partir de l'​initrd.+ en mémoire au boot, et d'agir sur le « vrai » système.\\ 
 +Le soft casper permet la mise en place du boot du liveCD ​à partir de l'​initrd.
  
  
 ==== Extraction du système ==== ==== Extraction du système ====
  
-On commence par extraire le squashfs de l'​image ISO pour pouvoir lui apporter les modifications souhaitées.\\ +On commence par extraire le squashfs de l'​image ISO pour pouvoir lui apporter 
-Au cours du tutoriel, nous allons utiliser plusieurs dossiers. Créez-les avec les commandes suivantes (à passer dans votre terminal favori) :+ les modifications souhaitées.\\ 
 +Au cours du tutoriel, nous allons utiliser plusieurs dossiers. 
 + Créez-les avec les commandes suivantes (à passer dans votre terminal favori) :
  
-<​code>​mkdir ~/livecd+<​code ​bash>mkdir ~/livecd
 cd ~/livecd cd ~/livecd
 mkdir iso squashfs</​code>​ mkdir iso squashfs</​code>​
  
-L'​image ISO sera stockée dans le dossier iso, dans squashfs sera stocké ​un « vrai » système. +L'​image ISO sera stockée dans le dossier iso, dans squashfs sera stocké ​le « vrai » système ​live.
- +
-=== Copie de l'ISO ===+
  
 Il nous faut commencer par copier le contenu de l'​image ISO sur le disque dur. Il nous faut commencer par copier le contenu de l'​image ISO sur le disque dur.
  
-  * On va donc le monter : +  * On va donc la monter : // Remplacez ubuntu-desktop-xxx.iso par le chemin de votre fichier ISO.//<​code ​bash>sudo mount -o loop ubuntu-desktop-xxx.iso /mnt</​code>​
-<​code>​ +
-sudo mount -o loop ubuntu-desktop-xxx.iso /cdrom +
-</​code>​ +
-//Remplacez ubuntu-desktop-xxx.iso par le chemin de votre fichier ISO.//+
  
-  * Puis on copie son contenu dans le dossier iso : +  * On copie son contenu dans le dossier iso : //​l'​option -a permet de conserver les droits des fichiers copiés// ​<code bash>​sudo cp -av /mnt/. iso</​code>​
-<​code>​ +
-sudo cp -a /cdrom/. iso +
-</​code>​ +
-//​l'​option -a permet de conserver les droits des fichiers copiés//+
  
-  * Une fois celà fait, on peut le démonter : +  * Une fois cela fait, on peut la démonter :<​code ​bash>sudo umount /mnt</​code>​ 
-<​code>​ +\\
-sudo umount /cdrom +
-</​code>​ +
- +
-== Alternative n'​utilisant pas de fichier ISO == +
- +
-On peut se passer d'une image ISO en utilisant l'​utilitaire ([[:​tutoriel:​comment_installer_un_paquet|debootstrap]]) qui permet de télécharger les packages essentiels à Ubuntu. Cette méthode permet d'​avoir la dernière version disponible avec les dernières mises à jour disponibles. +
- +
-Pour l'​utiliser : +
-<​code>​ +
-sudo debootstrap --arch i386 hardy iso +
-</​code>​ +
-où iso est le répertoire allant accueillir les fichiers. +
- +
-Pour plus de détail sur cette méthode, voici un lien (en anglais): [[https://​help.ubuntu.com/​community/​LiveCDCustomizationFromScratch]] +
- +
-=== Suppression des programmes pour Windows === +
-Commençons à faire de la place. Le LiveCD original est fourni avec quelques programmes Windows permettant de promouvoir Ubuntu quand on utilise le LiveCD sur une plate-forme Windows. +
- +
-On peut donc supprimer sans souci ces répertoires ​ FIXME //liste des fichiers à vérifier svp// +
-<​code>​ +
-~/livecd$ cd iso +
-~/​livecd/​iso$ sudo rm -r bin pics autorun.inf usb-creator.exe wubi.exe +
-~/​livecd/​iso$ cd .. +
-~/livecd$ +
-</​code>​ +
- +
-Remplacer ubuntu.ico par kubuntu.ico ou xubuntu.ico en fontion du fichier ISO téléchargé+
  
 === Copie du squashfs === === Copie du squashfs ===
  
-<note tip>La version 4 de squashfs n'​étant pas rétrocompatible avec la version 3.3 présente dans les noyaux Linux < 2.6.31, toutes les modifications touchant au squashfs pour Karmic Koala et supérieur devront être faîtes à partir d'un système hôte disposant d'un noyau Linux >= 2.6.31.</​note>​ +Nous allons maintenant copier le squashfs (le système de fichier de notre liveCD) 
-Nous allons maintenant copier le squashfs (le système de fichier de notre liveCD) sur le disque dur afin de pouvoir le modifier.+sur le disque dur afin de pouvoir le modifier.
  
-<​note>​[[apt://​squashfs-tools | apt-get install squashfs-tools]] si le type de fichier squashfs n'est pas reconnu.</​note>​ +  ​* On le monte de la même manière que n'​importe quel système de fichier :<​code ​bash
-  ​* On le monte de la même manière que n'​importe quel système de fichier : +sudo mount -t squashfs -o loop iso/​casper/​filesystem.squashfs /mnt</​code>​ 
-<​code>​ +<​note>​On pourra reconnaître dans /mnt l'​arborescence ​classique ​de Linux : /etc/​boot,​…,​ 
-~/​livecd$ ​sudo mount -t squashfs -o loop iso/​casper/​filesystem.squashfs /cdrom +qui est présente dans le squashfs.</​note>​ 
-</​code>​ +  * Comme nous l'avons dit, le squashfs est en lecture seule : il est impossible de modifier directement le squashfs. \\ Il faut copier le système ​qu'il contient dans le dossier //​squashfs//​ créé dans ce but. :<code bash>​sudo cp -av /mnt/. squashfs</​code>//​Attentioncette opération prend un peu de temps.//
-//En faisant ''​ls /​cdrom'',​ on observe ​l'​arborescence de notre squashfs, qui est la même que celle de n'importe quel système ​linux : /etc ; /bootetc.//+
  
-  ​* Comme nous l'​avons dit au début, le squashfs est un système de fichier sur lequel on ne peut écrire. Il est donc impossible de modifier directement le squashfs que l'on vient de monter. Il faut le copier dans un autre emplacement,​ le dossier squashfs, que nous avons créé dans ce but : +  * Pour finir, on le démonte :<​code ​bash>sudo umount /mnt</​code>​
-<​code>​ +
-~/livecd$ sudo cp -av /cdrom/. squashfs +
-</​code>​ +
-//​Attention,​ cette opération prend un peu de temps.// +
- +
-  ​* Pour finir, on le démonte : +
-<​code>​ +
-sudo umount /cdrom +
-</​code>​+
  
 ==== Modification du système ==== ==== Modification du système ====
- +Maintenant ​que nous avons notre système dans le dossier ''​~/​livecd/​squashfs'​', ​ 
-Pour modifier le système ​que l'on vient de copier, nous utilisons alors un chrootPour en savoir plusconsultez man chroot. +nous allons pouvoir le modifier à notre guiseMais comment utiliser les logiciels 
-<note tip>Petite parenthèse sur le chroot ​: En gros un chroot c'est un système dans le système. On va se loguer « dans » le chroot, et se retrouver ​dans un nouvel environnement,​ qui utilise les capacités physiques du système ​hôte (exemple : le noyau utilisé par le chrootest le noyau du système hôte, en l'​occurrence le noyau de votre Ubuntu). + qui y sont présentspour travailler proprement dessus ? C'est là que le chroot ​intervient
-</​note>​ +<note tip>Le chroot ​permet de "se connecter"​ en super-utilisateur ​dans un système 
- + ​hébergé ​(dans ''​~/​livecd/​squashfs''​)en utilisant ​le noyau du système ​ 
-Nous pouvons ainsi ajouter supprimer des paquets, ainsi que mettre à jour le système ​disponible ​dans l'ISO de baseAu choix et bon vouloir ​de l'​utilisateur. +hôte (votre jolie Ubuntu ​à vous ;-) ). C'est une Inception, si vous voulez !</​note>​ 
 +<note warning>​Il faut que le système ​hôte ait une architecture au moins du 
 +niveau du système hébergé : votre Ubuntu doit être en 64b pour chrooter 
 +dans un système 64b.\\ Si vous essayez ​de modifier un système 64b dans 
 + une installation 32b, vous aurez une erreur qui ressemble 
 +à <code bash>​chroot:​ failed to run command ’/​bin/​bash’:​ Exec format error</​code>​FIXME</​note>​ 
 +Vous pourrez modifier votre système hébergé (presque) comme s'il était installé en dur !
  
 === Chroot === === Chroot ===
  
-Ici nous allons donc faire un chroot dans le système que nous avons copié à partir du squashfs, ceci afin de pouvoir le modifier à notre convenance. +  ​Quelques ​réglages préalables pour que le chroot fonctionne correctement :<​code ​bash
- +sudo mount --bind /proc squashfs/​proc  
-  ​quelques ​réglages préalables pour que le chroot fonctionne correctement : +sudo mount --bind /sys squashfs/​sys</​code>//​Ces lignes permettent 
-<​code>​ +d'​utiliser les informations du système hôte// 
-~/​livecd$ ​sudo mount --bind /proc squashfs/​proc  +<note tip>En cas d'​erreur avec ''​apt-get'',​ il peut être utile de mettre : 
-~/​livecd$ ​sudo mount --bind /sys squashfs/​sys +<​code ​bash
-~/livecd$ sudo mount -t devpts none squashfs/​dev/​pts +sudo mount --bind ​/dev squashfs/​dev 
-</​code>​ +sudo mount --bind /dev/pts squashfs/​dev/pts
-//ces deux lignes permettent d'​utiliser les informations du système hôte// +
-<note tip>En cas d'​erreur avec //apt-get ​update//: +
-<​code>​ +
-# apt-get update +
-[...] +
-98% [Working]FATAL -> Could not set non-blocking flag Bad file descriptor +
-E: Method http has died unexpectedly! +
-</​code>​ +
-Il peut être utile de mettre : +
-<​code>​ +
-~/livecd$ ​sudo mount --bind /dev squashfs/​dev+
 </​code>​ </​code>​
-</​note>​ 
- 
-<note tip>En cas d'​erreur "Can not write log, openpty() failed (/dev/pts not mounted?​)"​ , monter aussi : 
-<​code>​sudo mount -B /dev/pts squashfs/​dev/​pts</​code>​ 
-Peut aussi servir dans le cas d'​erreurs remontées par apt-get (au moins avec Maverick). 
 </​note>​ </​note>​
  
 <note tip> <note tip>
 En cas d'​erreur En cas d'​erreur
-<​code>​ +<​code ​bash
-Failed to open connection to "​system"​ message bus: Failed to connect to socket /​var/​run/​dbus/​system_bus_socket:​ No such file or directory+Failed to open connection to "​system"​ message bus: Failed to connect ​ 
 +to socket /​var/​run/​dbus/​system_bus_socket:​ No such file or directory
 </​code>​ </​code>​
 il peut être utile de mettre : il peut être utile de mettre :
-<​code>​+<​code ​bash>
 sudo mount --bind /​var/​run/​dbus/​ squashfs/​var/​run/​dbus/​ sudo mount --bind /​var/​run/​dbus/​ squashfs/​var/​run/​dbus/​
 </​code>​ </​code>​
 </​note>​ </​note>​
- +==Quelques réglages pas nécessaires,​ mais éventuellement utiles :== 
-<​code>​ +  * Pour utiliser la connexion du système hôte (mettre à jour, installer des logiciels) :<​code ​bash>sudo cp /​etc/​resolv.conf squashfs/​etc/​resolv.conf</​code>​ 
-~/​livecd$ ​sudo cp /​etc/​resolv.conf squashfs/​etc/​resolv.conf +  * Pour pouvoir lancer un serveur PostgreSQL ou un LAMP dans le chroot (il faudra préalablement éteindre les serveurs sur la machine hôte pour éviter les conflits de port)<code bash>​sudo cp /etc/hosts squashfs/​etc/​hosts</code> 
-</​code>​ +  * Pour avoir la même liste de dépôts :<code bash>sudo cp /​etc/​apt/​sources.list squashfs/​etc/​apt/​sources.list</​code>​ 
-//afin d'​utiliser la connexion réseau du système hôte// +<note important>​N'​utilisez cette commande que si le liveCD 
-<​code>​ +que vous modifiez et le système à partir duquel vous 
-~/livecd$ sudo cp /etc/hosts squashfs/​etc/​hosts + le modifiez sont de la même version d'​Ubuntu. 
-</​code>​ +Dans le cas contraire, vous n'​installeriez pas sur le liveCD 
-//si vous voulez ​pouvoir lancer un serveur PostgreSQL ou un LAMP dans le chroot (il faudra préalablement éteindre les serveurs sur la machine hôte pour éviter les conflits de port)// + les bonnes versions des paquets.</​note>​ 
-<​code>​ +  * Vous pouvez alors éditer manuellement les fichiers ''​~/iso/squashfs/​etc/​apt/​sources.list''​ et ''​~/iso/squashfs/​etc/​apt/​sources.list.d/''​ pour rajouter des dépôts ​:<code bash>​sudo nano squashfs/etc/apt/​sources.list</​code>​
-~/​livecd$ ​sudo cp /​etc/​apt/​sources.list squashfs/​etc/​apt/​sources.list +
-</​code>​ +
-//pour utiliser votre sources.list personnel// +
-<note important>​N'​utilisez cette commande que si le liveCD que vous modifiez et le système à partir duquel vous le modifiez sont de la même version d'​Ubuntu. +
-Dans le cas contraire, vous n'​installeriez pas sur le liveCD les bonnes versions des paquets.</​note>​ +
-<​code>​ +
-~/livecd$ gksudo gedit squashfs/​etc/​apt/​sources.list +
-</code> +
-//éditez le fichier ​sources.list ​si besoin pour activer/désactiver certains ​dépôts//+
    
- * Si vous souhaitez lancer des applications graphiques, vous serez peut-être amené ​à utiliser  +  ​* Si vous souhaitez lancer des applications graphiques, vous devez permettre au chroot d'​accéder ​à X :<​code ​bash>xhost +</​code>​Sans oublier ​une fois fini d'​enlever cette autorisation avec : <​code ​bash>xhost -</​code>​
-<​code>​ +
-xhost + +
-</​code>​ +
- pour permettre au chroot d'​accéder à X, une fois fini n'​oubliez pas d'​enlever cette autorisation avec: +
-<​code>​ +
- xhost - +
-</​code>​.  +
- +
-  * Pour finir, on peut entrer dans le chroot : +
-<​code>​ +
-~/livecd$ sudo chroot squashfs +
-</​code>​ +
  
 + Pour finir, on peut entrer dans le chroot : <code bash>​sudo chroot squashfs</​code>​
  
 === Exemples de modifications === === Exemples de modifications ===
  
 <note important>​ <note important>​
-Faites attention ​à la taille ! Ne soyez pas trop gourmand, ​si la taille d'un CD (700 Moest dépassée, vous ne le saurez malheureusement qu'​à ​la reconstruction du CD . Il est toutefois possible de faire un liveDVDsur lequel ​vous aurez beaucoup plus d'​espacevoire même un liveUSB+Vous ne saurez qu'à la reconstruction du squashfs ​si votre iso 
-</​note>​+ ​tiendra sur un CD (700Mo), donc soit vous devez bien gérer ​la taille, 
 + ​soit ​vous pourrez graver un DVDou utiliser ​un LiveUSB.</​note>​ 
 +<note tip>Pas besoin de ''​sudo'',​ vous êtes connectés 
 + en Root (super-utilisateur).</​note>​ 
 +Vous pouvez, si vous avez lancé ''​xhost +'',​ 
 + ​lancer les applications graphiques présentes dans le LiveCD.
  
 == Mise à jour du système == == Mise à jour du système ==
  
-<​code>​+<​code ​bash>
 apt-get update apt-get update
 apt-get dist-upgrade apt-get dist-upgrade
-apt-get install console-data # (sélectionner ​le clavier français)+apt-get install console-data # Sélectionner ​le clavier français
 </​code>​ </​code>​
-//pas besoin de sudo, vous êtes en root//\\ +<note warning>​La ​commande ​''​apt-get dist-upgrade'' ​peut amener 
-Attention : la commande apt-get dist-upgrade peut amener une mise à jour du kernel, ce qui vous obligera à une manipulation supplémentaire à la fin.+ une mise à jour du kernel, ce qui vous obligera à une manipulation 
 +supplémentaire à la fin.</​note>​
  
 == Installation / Désinstallation de paquets == == Installation / Désinstallation de paquets ==
  
-  * Installez les paquets que vous souhaitezà l'aide de la commande ''​apt-get install ​*nom du paquet*''​+  * Installez les paquets que vous souhaitez à l'aide de la commande ''​apt-get install ​//​nom_du_paquet//​''​
  
-  * Désinstallez ​les paquets qui vous sont inutiles : +  * Vous pouvez lister ​les paquets ​par taille pour voir ceux qui prennent de la place.<​code ​bash>
-<​code>​+
 dpkg-query -W --showformat='​${Installed-Size} ${Package}\n'​ | sort -nr | less dpkg-query -W --showformat='​${Installed-Size} ${Package}\n'​ | sort -nr | less
 </​code>​ </​code>​
-//Cette commande vous renvoie la liste des paquets installés, classés par taille.// +  * Supprimez ceux qui ne vous servent à rien :<​code ​bash>apt-get purge //​nom_du_paquet//</​code>​ 
-Supprimez ceux qui ne vous servent à rien : + 
-<​code>​ +<note tip>​Supprimer des paquets peut, par inadvertance,​ 
-apt-get ​remove --purge *nom du paquet* + ​désinstaller le paquet ​**ubuntu-desktop** qui est nécessaire au moment 
-</​code>​+d'une mise à niveau de la distribution. Ce paquet ​devrait donc figurer 
 + sur tout liveCD destiné à être distribué à un certain nombre 
 + ​d'​utilisateurs de différents niveaux de compétence. 
 +Il est donc bon, après avoir fini de faire les modifications,​ 
 +d'​utiliser la commande **apt-get install ubuntu-desktop*
 +pour s'​assurer que le paquet est toujours installé.</​note>​ 
 + 
 +== Modifier les raccourcis de la barre de lanceurs Unity == 
 + 
 +<code bash>​gsettings get com.canonical.Unity.Launcher favorites #Pour connaître la liste actuelle 
 +echo "​[com.canonical.Unity.Launcher] 
 +favorites=['​nautilus-home.desktop',​ '​firefox.desktop','​ubuntu-software-center.desktop',​ '​otherapp1.desktop'​ '​otherapp2.desktop'​]"​ >/​usr/​share/​glib-2.0/​schemas/​10_local-unity-launcher.gschema.override 
 +glib-compile-schemas /​usr/​share/​glib-2.0/​schemas/​</​code>​
  
-<note tip>Supprimer des paquets peut, par inadvertance,​ désinstaller le paquet **ubuntu-desktop** qui est nécessaire au moment d'une mise à niveau ​de la distribution. Ce paquet devrait donc figurer sur tout liveCD destiné à être distribué à un certain nombre d'​utilisateurs de différents niveaux de compétence. Il est donc bon, après avoir fini de faire les modifications,​ d'​utiliser la commande **apt-get ​install ubuntu-desktop** pour s'​assurer que le paquet est toujours installé.</note>+== Autres modifications == 
 +  * On peut utiliser l'​utilitaire bleachbit afin de nettoyer les fichiers langues superflus.<code bash>apt-get install bleachbit</​code>​ 
 +  ​Synaptic permet ​de gérer les logiciels installés<code bash>​apt-get install synaptic</​code>​ 
 + 
 +  * Il est logique ​de supprimer ​les fichiers de cache pour ne pas surcharger le cd :<code bash>apt-get ​clean</​code>​ 
 +  * Et les logs de crash :<code bash>​rm ​-r /var/crash/*</​code>​ 
 +  ​FIXME On peut supprimer ​le cache : (https://​askubuntu.com/​questions/​87142/​safe-to-remove)<​code bash>rm -r /​var/​cache/​*</code>
  
 == Sortie du chroot == == Sortie du chroot ==
Ligne 234: Ligne 191:
 D'​autres modifications peuvent se faire à l'​extérieur du chroot. D'​autres modifications peuvent se faire à l'​extérieur du chroot.
  
-  ​* On peut utiliser l'​utilitaire bleachbit afin de nettoyer les fichiers langues superflux. +  * On sort du chroot :<​code ​bash>exit 
-  * Supprimer les eventuels fichiers de crash d'​applications dans /var/crash afin d'​éviter d'​ennuyeux messages au démarrage de notre live cd +sudo umount -lf squashfs/sys 
-  +sudo umount -lf squashfs/proc 
-  * On nettoie le système : +sudo umount -lf squashfs/dev/pts 
-<​code>​ +sudo umount -lf squashfs/​dev 
-apt-get clean +sudo rm -f squashfs/​etc/​resolv.conf 
-</​code>​ +sudo rm -f squashfs/​etc/​hosts</​code>​
-//Supprime les .deb téléchargés via apt-get// +
- +
-  ​* On sort du chroot : +
-<​code>​ +
-umount -lf /sys +
-umount -lf /proc +
-umount -lf /dev +
-rm /​etc/​resolv.conf +
-rm /etc/hosts +
-exit +
-</​code>​ +
- +
-Si umount /proc indique une erreur, essayez ceci : +
-<​code>​ +
-umount -lf /proc +
-</​code>​+
  
 == Insérer des fichiers == == Insérer des fichiers ==
-  ​Dans le répertoire ​utilisateur+**__Dans ​le répertoire ​utilisateur__**
  
-L'​utilisateur par défaut du système chargé lorsque l'on utilise le liveCD n'​existe pas dans le système compressé. Il est créé par casper pendant le boot. casper copie les fichiers se trouvant dans /etc/skel dans le dossier utilisateur qu'il crée au boot.\\ +L'​utilisateur par défaut du système chargé lorsque l'on utilise le liveCD 
-Placez donc tous les fichiers que vous voulez dans ce dossier, ils apparaîtront dans le répertoire personnel après le boot. + n'​existe pas dans le système compressé. Il est créé par casper pendant le boot. 
-<​code>​ + casper copie les fichiers se trouvant dans ''​/etc/skel'' ​dans le dossier utilisateur qu'il crée au boot.\\ 
-~livecd$ ​sudo cp *votre fichier* squashfs/​etc/​skel+Placez donc tous les fichiers que vous voulez dans ce dossier, 
 + ils apparaîtront dans le répertoire personnel après le boot. 
 +<​code ​bash
 +sudo cp *votre fichier* squashfs/​etc/​skel
 </​code>​ </​code>​
  
-Nous allons pouvoir utiliser cette propriété ​un peu plus tard pour modifier l'​apparence du bureau et utiliser ​par défaut ​des thèmes personnalisés.+Nous allons pouvoir utiliser cette technique ​un peu plus tard pour 
 + modifier l'​apparence du bureau et utiliser des thèmes personnalisés.
  
-  ​Dans le système +**__Dans ​le système__**,​ vous pouvez recopier des fichiers au même 
-Vous pouvez recopier des fichiers au même emplacement que sur votre propre système, par exemple : + emplacement que sur votre propre système, par exemple : 
-     ​* Des thèmes +  * Des thèmes<​code ​bash>sudo cp -r /​usr/​share/​themes/​* squashfs/​usr/​share/​themes</​code>​ 
-<​code>​ +  Des fonds d'​écran<​code ​bash>sudo cp -r /​usr/​share/​backgrounds/​* squashfs/​usr/​share/​backgrounds/</​code>​
-~/​livecd$ ​sudo cp -r /​usr/​share/​themes/​* squashfs/​usr/​share/​themes +
-</​code>​ +
-     ​des fonds d'​écran +
-<​code>​ +
-~/​livecd$ ​sudo cp -r /​usr/​share/​backgrounds/​* squashfs/​usr/​share/​backgrounds/​ +
-</​code>​+
  
 == Rendre le boot explicite == == Rendre le boot explicite ==
  
-Il est possible de supprimer l'​option "​quiet"​ du boot, afin que toutes les étapes soient détaillées.\\+Il est possible de supprimer l'​option "​quiet"​ du boot, 
 + afin que toutes les étapes soient détaillées.\\
 Éditez le fichier isolinux.cfg qui se trouve dans le dossier iso : Éditez le fichier isolinux.cfg qui se trouve dans le dossier iso :
-<​code>​ +<​code ​bash>gksudo gedit iso/​isolinux/​isolinux.cfg</​code>​ 
-~/​livecd$ ​gksudo gedit iso/​isolinux/​isolinux.cfg +Supprimez toutes les occurrences du mot ''​quiet''​.\\ 
-</​code>​ +Vous pouvez également supprimer le mot ''​splash''​ 
-Supprimez toutes les occurrences du mot "quiet".\\ +vous supprimerez ainsi le logo Ubuntu ainsi que la barre de chargement.\\
-Vous pouvez également supprimer le mot "splash", vous supprimerez ainsi le logo Ubuntu ainsi que la barre de chargement.\\+
 Enregistrez et quittez. Enregistrez et quittez.
  
 == Utiliser le français par défaut == == Utiliser le français par défaut ==
-<​code>​ +<​code ​bash>echo "​fr"​ | sudo tee iso/​isolinux/​lang</​code>​
-~/​livecd$ ​echo "​fr"​ | sudo tee iso/​isolinux/​lang +
-</​code>​+
  
 == Modifier l'​utilisateur par défaut == == Modifier l'​utilisateur par défaut ==
- ​L'​utilisateur par défaut (ubuntu) est créé lors du boot par le programme casper. Pour modifier celui-ci, Il faut :+ ​L'​utilisateur par défaut (ubuntu) est créé lors du boot 
 + par le programme casper. Pour modifier celui-ci, Il faut :
   - modifier les fichiers de configuration de casper   - modifier les fichiers de configuration de casper
   - régénérer le fichier initrd dans le squashfs (en chroot)   - régénérer le fichier initrd dans le squashfs (en chroot)
  
-  * Modifier le nom de l'​utilisateur +  * Modifier le nom de l'​utilisateur<​code ​bash>gksudo gedit squashfs/​etc/​casper.conf</​code>​ 
-<​code>​ + 
-~/​livecd$ ​gksudo gedit squashfs/​etc/​casper.conf ​ +Ce fichier est court et explicite : 
-</​code>​+># This file should go in /​etc/​casper.conf 
 +># Supported variables are: 
 +># USERNAME, USERFULLNAME,​ HOST, BUILD_SYSTEM,​ FLAVOUR 
 +
 +>export USERNAME="​ubuntu"​ 
 +>export USERFULLNAME="​Live session user"​ 
 +>export HOST="​ubuntu"​ 
 +>export BUILD_SYSTEM="​Ubuntu"​ 
 +
 +># USERNAME and HOSTNAME as specified above won't be honoured and will be set to 
 +># flavour string acquired at boot time, unless you set FLAVOUR to any 
 +># non-empty string. 
 +
 +># export FLAVOUR="​Ubuntu"​
  
-Ce fichier est court et explicite :  
-> # This file should go in /​etc/​casper.conf 
-> # Supported variables are: 
-> # USERNAME, USERFULLNAME,​ HOST, BUILD_SYSTEM 
- 
-> export USERNAME="​ubuntu"​ 
-> export USERFULLNAME="​Live session user" 
-> export HOST="​ubuntu"​ 
-> export BUILD_SYSTEM="​Ubuntu"​ 
  
-Modifiez les valeurs à votre convenance. ​+Modifiez les valeurs à votre convenance.
 <note important>​ <note important>​
-Par défaut, cet utilisateur possède les droits d'​administration sans qu'​aucun mot de passe ne soit requis. ​+Par défaut, cet utilisateur possède les droits d'​administration 
 +sans qu'​aucun mot de passe ne soit requis.
 </​note>​ </​note>​
-Si vous voulez conserver cette propriété,​ ne modifiez que la première partie  +Si vous voulez conserver cette propriété,​ ne modifiez que la première 
-> export USERNAME="​mon_utilisateur"​ + partie ​ainsi que la valeur de la variable FLAVOUR 
-> export USERFULLNAME="​mon_utilisateur Live CD" +>export USERNAME="​mon_utilisateur"​ 
-> export HOST="​ubuntu"​ +>export USERFULLNAME="​mon_utilisateur Live CD" 
-> export BUILD_SYSTEM="​Ubuntu"​+>export HOST="​ubuntu"​ 
 +>export BUILD_SYSTEM="​Ubuntu
 +
 +># USERNAME and HOSTNAME as specified above won't be honoured and will be set to 
 +># flavour string acquired at boot time, unless you set FLAVOUR to any 
 +># non-empty string. 
 +
 +>export FLAVOUR="​mon_ubuntu_personnalise"
  
 Et passez directement à la section suivante : régénération du fichier initrd Et passez directement à la section suivante : régénération du fichier initrd
  
-Si vous voulez modifier ce comportement,​ éditez toutes les occurrences ubuntu et remplacez-les par mon_utilisateur +Si vous voulez modifier ce comportement,​ éditez toutes les occurrences 
-> export USERNAME="​mon_utilisateur"​ +ubuntu et remplacez-les par mon_utilisateur, modifiez la valeur de FLAVOUR 
-> export USERFULLNAME="​mon_utilisateur Live CD" +>export USERNAME="​mon_utilisateur"​ 
-> export HOST="​mon_utilisateur"​ +>export USERFULLNAME="​mon_utilisateur Live CD" 
-> export BUILD_SYSTEM="​mon_utilisateur"​+>export HOST="​mon_utilisateur"​ 
 +>export BUILD_SYSTEM="​mon_utilisateur
 +
 +># USERNAME and HOSTNAME as specified above won't be honoured and will be set to 
 +># flavour string acquired at boot time, unless you set FLAVOUR to any 
 +># non-empty string. 
 +
 +>export FLAVOUR="​mon_ubuntu personnalise"
  
 Et modifiez le mot de passe. Et modifiez le mot de passe.
Ligne 339: Ligne 296:
 Commencez par créer un mot de passe crypté : Commencez par créer un mot de passe crypté :
  
-//le mot de passe étant conservé dans un fichier accessible en lecture, il est nécessaire de le crypter pour préserver sa confidentialité//​+//le mot de passe étant conservé dans un fichier accessible en lecture, 
 + il est nécessaire de le crypter pour préserver sa confidentialité//​
 <​code>​ <​code>​
 mkpasswd -s monmotdepasse mkpasswd -s monmotdepasse
 U5dDh03hz1L6. U5dDh03hz1L6.
 </​code>​ </​code>​
-Votre mot de passe est ici "​monmotdepasse",​ il sera conservé sous la forme "​U5dDh03hz1L6."​ dans le fichier de configuration.+Votre mot de passe est ici "​monmotdepasse",​ il sera conservé sous 
 + la forme "​U5dDh03hz1L6."​ dans le fichier de configuration.
  
 Et insérez-le dans le script de création de l'​utilisateur Et insérez-le dans le script de création de l'​utilisateur
Ligne 350: Ligne 309:
 ~/livecd$ gksudo gedit squashfs/​usr/​share/​initramfs-tools/​scripts/​casper-bottom/​10adduser ~/livecd$ gksudo gedit squashfs/​usr/​share/​initramfs-tools/​scripts/​casper-bottom/​10adduser
 </​code>​ </​code>​
 +
 +<note important>​
 +Avec ubuntu 14.04, il semblerait que le fichier 10adduser soit
 +devenu 25adduser, si vous obtenez un fichier vide avec la ligne
 +ci-dessus essayez en remplaçant 10adduser par 25adduser
 +</​note>​
 +
 Repérez la section suivante : Repérez la section suivante :
-> set passwd/​root-password-crypted * +>set passwd/​root-password-crypted * 
-> set passwd/​user-password-crypted U6aMy0wojraho+>set passwd/​user-password-crypted U6aMy0wojraho
  
 Insérez votre nouveau mot de passe : Insérez votre nouveau mot de passe :
-> set passwd/​root-password-crypted U5dDh03hz1L6. +>set passwd/​root-password-crypted U5dDh03hz1L6. 
-> set passwd/​user-password-crypted U5dDh03hz1L6.+>set passwd/​user-password-crypted U5dDh03hz1L6. 
 + 
 +<note important>​ 
 +Lors du démarrage, l'​utilisateur automatiquement créé à UID de 999. 
 + Pour que cette création se passe bien il faut qu'il n'y ait 
 + aucun utilisateur existant ayant un UID == 999. 
 +Pour détecter le problème, exécutez la commande: 
 +<​code>​ 
 + awk -F: '$3 == 999' /​etc/​passwd 
 +</​code>​ 
 +Et modifiez les UID des utilisateurs trouvés: 
 +<​code>​ 
 +usermod -u 500 <​utilisateur_problematique_1>​ 
 +usermod -u 501 <​utilisateur_problematique_2>​ 
 +</​code>​ 
 + 
 +Par exemple, l'​installation des [[virtualbox#​ameliorer_l_emulationles_additions_invite 
 +|additions invités de virtualbox]] créé un utilisateur vboxadd pouvant avoir l'uid 999. 
 +</​note>​ 
  
   * Régénération du fichier initrd   * Régénération du fichier initrd
-Pour que ces modifications soient prises en compte, il est impératif de recréer le fichier initrd qui est chargé au boot. Cette étape est réalisée en chroot (à l'​intérieur du système du liveCD).+Pour que ces modifications soient prises en compte, il est impératif de 
 +recréer le fichier initrd qui est chargé au boot. Cette étape est 
 + réalisée en chroot (à l'​intérieur du système du liveCD).
 <​code>​ <​code>​
 ~/livecd$ sudo chroot squashfs ~/livecd$ sudo chroot squashfs
-update-initramfs -k all -u+update-initramfs ​-u -k all
 exit exit
 </​code>​ </​code>​
  
-Ceci n'est qu'un aperçu des modifications que vous pouvez faire, il serait impossible de les lister toutes.+Ceci n'est qu'un aperçu des modifications que vous pouvez faire, 
 +il serait impossible de les lister toutes.
  
  
-==== Reconstruction ​du Live CD ====+==== Création ​du nouveau LiveCD ​====
  
-Maintenant que le système correspond à vos besoins, nous allons recréer un liveCD à partir de votre système personnalisé.+Maintenant que le système correspond à vos besoins, 
 + nous allons recréer un liveCD à partir de votre système personnalisé.
  
 === Reconstruction du squashfs === === Reconstruction du squashfs ===
  
-  * Pour cette étapenous aurons besoin du paquet **[[apt://squashfs-tools|squashfs-tools]]** : +  * Tout d'​abordil faut régénérer le fichier manifest pour qu'il prenne en compte les modifications dans les paquets. <code bash> 
-<code+sudo chmod a+w iso/casper/filesystem.manifest 
-sudo apt-get install squashfs-tools+sudo chroot ​squashfs ​dpkg-query -W --showformat='​${Package} ​ ${Version}\n' ​>iso/​casper/​filesystem.manifest 
 +sudo chmod go-w iso/​casper/​filesystem.manifest
 </​code>​ </​code>​
 +Pour n'​avoir certains logiciels qu'en session live,
 + et qu'ils ne s'​installent pas sur l'​ordinateur,​
 +il suffit de les ajouter au fichier
 +<​code>​iso/​casper/​filesystem.manifest-remove</​code>​
  
-  * On efface l'​ancien squashfs : +  * On efface l'​ancien squashfs :<code bash>​sudo rm iso/​casper/​filesystem.squashfs</​code>​ 
-<​code>​ +  * On recrée le nouveau : <​code ​bash
-~livecd$ ​sudo rm iso/​casper/​filesystem.squashfs +cd squashfs 
-</​code>​+sudo mksquashfs . ../iso/​casper/​filesystem.squashfs ​-comp zstd -Xcompression-level 22 -progress 
 +cd ..</​code>​
  
-  * Puis on crée le nouveau : +Comme toute compressioncela prend beaucoup de ressources et peut prendre du temps.\\
-Tout d'​abordil faut régénérer le fichier manifest pour qu'il prenne en compte les modifications dans les paquetsAttention, [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=4034692#​p4034692|voir ceci]] si vous ne voulez pas d'​Ubiquity ni gParted sur session installée. +
-<​code>​ +
-~/livecd$ sudo chmod a+w iso/​casper/​filesystem.manifest +
-~/livecd$ sudo chroot squashfs dpkg-query -W --showformat='​${Package} ${Version}\n' > iso/​casper/​filesystem.manifest +
-~/livecd$ sudo chmod go-w iso/​casper/​filesystem.manifest +
-~/livecd$ sudo chmod a+w iso/​casper/​filesystem.manifest-desktop  +
-~/livecd$ sudo chroot squashfs dpkg-query -W --showformat='​${Package} ${Version}\n' > iso/​casper/​filesystem.manifest-desktop  +
-~/livecd$ sudo chmod go-w iso/​casper/​filesystem.manifest-desktop +
-</​code>​ +
-Il faut maintenant compresser le système de fichier du LiveCD pour pouvoir le mettre dans une image CD. +
-<​code>​ +
-~/livecd$ cd squashfs +
-~/​livecd/​squashfs$ sudo mksquashfs . ../​iso/​casper/​filesystem.squashfs -info +
-</​code>​+
  
-<note tip>//​pour Hardy cette commande paraît plus apropriée, mais la commande précédente fonctionne pour Intrepid et supérieur :// +On rajoute ​''​-info'' ​à la fin qui équivaut à un verbose... pratique 
-~/​livecd/​squashfs$ sudo mksquashfs . ../​iso/​casper/​filesystem.squashfs -nolzma -info</​note>​ + pour voir l'​avancement de la compression (la barre de progression reste visible) 
- + et aussi pour voir ce qui pourrait éventuellement bloquer. ​\\ 
-Comme toute compression,​ cela prend beaucoup de ressources et peut prendre du temps. ​On rajoute -info à la fin qui équivaut à un verbose... pratique pour voir l'​avancement de la compression (la barre de progression reste visible) et aussi pour voir ce qui pourrait éventuellement bloquer. +Une fois la procédure terminée, la taille de votre fichier s'​affiche 
-Une fois la procédure terminée, la taille de votre fichier s'​affiche dans le terminal, vous savez donc si vous avez dépassé la taille maximale ou pas.+ dans le terminal, vous savez donc si vous avez dépassé la taille maximale ou pas.
 Si c'est le cas, supprimez des applications/​fichiers dans le système, et recommencez. Si c'est le cas, supprimez des applications/​fichiers dans le système, et recommencez.
  
  
-=== Création ​de l'ISO ===+=== Reconstruction ​de l'iso === 
 +<note important>​Si le noyau a été mis à jour, que vous avez changé 
 +l'​usplash ou que vous avez modifié le compte utilisateur,​ 
 +il va falloir remplacer deux fichiers essentiels sur l'​image disque, 
 + que l'on trouve dans ''​iso/​casper''​ : ''​vmlinuz''​ et ''​initrd.lz''​.\\ 
 +On les remplace par les fichiers vmlinuz-* et initrd-img* que 
 +l'on trouve dans le dossier squashfs/​boot : 
 +<code bash>​sudo rm -f iso/​casper/​vmlinuz iso/​casper/​initrd.lz 
 +sudo cp squashfs/​boot/​vmlinuz-3.2.0-54* iso/​casper/​vmlinuz  
 +sudo cp squashfs/​boot/​initrd.img-3.2.0-54* iso/​casper/​initrd.lz</​code>​ 
 +FIXME : Je crois que le nom des fichiers n'est plus à jour. (mis à jour ubuntu 12.04.3)</​note>​
  
-  ​Si le noyau a été mis à jour, vous avez changé l'​usplash ou que vous avez modifié le compte utilisateur,​ il va falloir remplacer deux fichiers essentiels sur l'​image disque, que l'on trouve dans ~/​livecd/​iso/​casper : vmlinuz et initrd.lz + 
-On les remplace par les fichiers vmlinuz-* et initrd-img* que l'on trouve dans le dossier ~livecd/​squashfs/​boot +  ​* On régénère une nouvelle somme de contrôle MD5 afin qu'elle reflète ​le nouveau contenu ​du CD :<​code ​bash
-(* représente la version ​du noyau à jour) +cd iso 
-<​code>​ +sudo bash -c "​find ​. -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"
-~livecd$ sudo cp squashfs/​boot/​vmlinuz-2.6* ​iso/​casper/​vmlinuz ​ +
-~livecd$ ​sudo cp squashfs/​boot/​initrd.img-2.6* iso/casper/​initrd.lz+
 </​code>​ </​code>​
  
-  * On régénère un nouveau hash MD5 afin qu'il reflète ​le nouveau contenu du CD. +  * Il ne reste plus qu'à reconstruire l'​image ISO :\\ __cas 1__: si le système sur lequel on veut démarrer avec l'iso personnalisée est un système EFI: <​code ​bash>sudo mkisofs -U -A "​Custom"​ -V "​Custom"​ -volset "​Custom"​ -J -joliet-long -r -v -T -o ../Custom.iso -b isolinux/isolinux.bin -c isolinux/​boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/​grub/​efi.img -no-emul-boot .</​code>​On obtient alors l'iso personnalisée mais elle ne peut être mise que sur un dvd. Pour pouvoir la mettre sur une clé usb, <code bash>sudo isohybrid -u Custom.iso</​code>​\\ __cas 2__: si le système sur lequel on veut démarrer avec l'iso personnalisée n'est pas un système EFI: <​code ​bash
-<​code>​ +sudo mkisofs ​-r -V "​Nom_personnalisé" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/​boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ​-o custom-livecd.iso iso </​code>​Cette commande crée une image iso **custom-livecd.iso**. Et voilà ! 
-~livecd$ cd iso + 
-~livecd/isosudo bash -"find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt+<note important>​Attention mkisofs devient obsolète selon les depots utilisés. 
-~livecd/iso$ cd ..+ La commande équivalente avec genisoimage :</​note>​ 
 +<code bash> 
 +sudo genisoimage ​-o "Nom personnalisé.iso" ​--J -no-emul-boot -V "​USB_LINUX"​ -boot-load-size 4 -boot-info-table -b isolinux/​isolinux.bin -c isolinux/​boot.cat ./ </​code>​ 
 +Renommer le fichier ​"nom personnalisé"​ en "nom personnalisé"​.iso 
 + 
 +<note important>​ 
 +Générer l'iso à partir d'​Ubuntu 22.04 est plus complexe, le système semble avoir été modifié 
 + 
 +il faut extraire le mbr et l'efi depuis l'iso original, c'est la seule méthode que j'ai pu trouver et qui semble fonctionelle 
 + 
 +voici les commandes pour le faire et générer l'​iso:<​/note> 
 + 
 +j'ai un peu plus de détail en fait ceci et utilisé pour extraire le système efi 
 + 
 +depuis l'​image ​iso d'​origine l'​exemple ici et pour ubuntu 22.04 desktop amd64 
 + 
 +il faut adapter en fonction de votre iso d'​origine 
 + 
 +<code bash> 
 +dd if=ubuntu-22.04-desktop-amd64.iso bs=1 count=432 of=~/​livecd/​boot_hybrid.img
 </​code>​ </​code>​
  
-C'est terminé, il ne reste plus qu'à reconstruire une image ISO : +ici si on liste les partitions présentes sur l'iso 
-<​code>​ + 
-~/livecd$ sudo mkisofs ​--V "​Custom Ubuntu Live CD" ​-cache-inodes ​---b isolinux/​isolinux.bin -c isolinux/​boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o custom-live-cd-i386.iso iso+<​code ​bash
 +/sbin/​fdisk ​-l ubuntu-22.04-desktop-amd64.iso 
 + 
 +Disk ubuntu-22.04-desktop-amd64.iso: 3.4 GiB, 3654957056 bytes, 7138588 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/​physical):​ 512 bytes / 512 bytes 
 +I/O size (minimum/​optimal):​ 512 bytes / 512 bytes 
 +Disklabel type: gpt 
 +Disk identifier: A09DB2B8-B5F6-43AE-AFB3-91E0A90189A1 
 + 
 +Device ​                           Start     End Sectors ​ Size Type 
 +ubuntu-22.04-desktop-amd64.iso1 ​     64 7129427 7129364 ​ 3.4G Microsoft basic data 
 +ubuntu-22.04-desktop-amd64.iso2 7129428 7137923 ​   8496  4.2M EFI System 
 +ubuntu-22.04-desktop-amd64.iso3 7137924 7138523 ​    ​600 ​ 300K Microsoft basic data
 </​code>​ </​code>​
-Cette commande crée un fichier ISO dans le répertoire courant, ~/​livecd/​custom-live-cd-i386.iso 
  
-==== Modifications de la configuration du compte utilisateur ====+ici le système efi démarre (start) à 7129428
  
-Votre liveCD est prêt à l'​emploi. Comme indiqué brièvement dans la section Modifications,​ il est possible de rajouter des fichiers dans le répertoire utilisateur. Cela est aussi valable pour les fichiers de configuration,​ nous allons ​donc exploiter cette possibilité pour modifier les réglages par défaut du compte utilisateur.+donc on définit skip=7129428
  
-Il est nécessaire de démarrer ​le CD, en le gravant, ou de préférence en utilisant un système de virtualisation,​ comme, par ordre de préférence,​ [[virtualbox]],​ [[vmware_server|vmware]] ou [[qemu]].+et le secteur (setors) fait 8496
  
-Une fois démarré, procédez à toutes les modifications requises, comme appliquer les thèmes rajoutés sur le CD, changer la page d'​accueil de firefox ou lui rajouter des modules complémentaires,​ remanier les menus et la présentation de gnome-panel etc...+donc count=8496
  
-Quand vous êtes satisfaits du résultat, ouvrez nautilus et remontez dans l'​arborescence au niveau de /home. Créez une archive de votre répertoire utilisateur (clic droit > créer une archive) et sauvegardez-la par email ou par FTP.  
  
-Vous pouvez maintenant éteindre la machine virtuelle.+<code bash> 
 +dd if=ubuntu-22.04-desktop-amd64.iso bs=512 skip=7129428 count=8496 of=~/​livecd/​efi.img 
 +dd if=ubuntu-22.04-desktop-amd64.iso bs=1 count=432 of=~/​livecd/​boot_hybrid.img
  
-Récupérez l'archive et décompressez-la, par exemple ​dans ~livecd/profil+xorriso -as mkisofs -r \ 
 +  -V 'Ubuntu 22.04 LTS MODIF (EFIBIOS)'​ \ 
 +  ​-o ~/​livecd/​ubuntu-modif.iso \ 
 +  --grub2-mbr ~/​livecd/​boot_hybrid.img \ 
 +  -partition_offset 16 \ 
 +  --mbr-force-bootable \ 
 +  -append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b ~/​livecd/​efi.img \ 
 +  -appended_part_as_gpt \ 
 +  -iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7 \ 
 +  -c '/​boot.catalog'​ \ 
 +  -b '/​boot/​grub/​i386-pc/​eltorito.img'​ \ 
 +    -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \ 
 +  -eltorito-alt-boot \ 
 +  -e '​--interval:​appended_partition_2:::'​ \ 
 +    -no-emul-boot . 
 + </​code>​ 
 + 
 +* Cette image ne peut être copiée que sur DVD. Si vous souhaitez 
 +pouvoir copier cette image sur une clé USB, exécutez ​la commande suivante sur votre ISO :<code bash> 
 +sudo isohybrid "nom personnalisé.iso"</​code>​ 
 +De cette façon tous les supports bootables seront supportés par votre ISO. 
 +==== Modifications de la configuration du compte utilisateur ==== 
 + 
 +Votre liveCD est prêt à l'​emploi. Comme indiqué brièvement dans 
 + la section Modificationsil est possible de rajouter des fichiers 
 + dans le répertoire utilisateur. \\ Voici une méthode pour configurer votre session live. 
 +  * Démarrez sur le liveCD, physiquement ou en utilisant un logiciel de virtualisation : ([[virtualbox]] ou [[qemu]]) 
 +  * Configurez vos logiciels (Thunderbird,​ Firefox, mots de passe WiFi, thèmes,​…) 
 +  * Après avoir fini, **ne redémarrez pas, ça effacerait toute votre personnalisation**,​ enregistrez votre /home/ sur un support externe ou dans une archive envoyée ​par mail. (si elle n'est pas trop grosse) 
 +  * Retournez sur votre Ubuntu, où se trouve le dossier ''​livecd''​. 
 +  * Recopiez alors le contenu de la sauvegarde/​archive ​dans **livecd/squashfs/​etc/​skel/​** : <code bash>cd livecd 
 +sudo cp -r DOSSIER_DE_SAUVEGARDE/​. squashfs/​etc/​skel/​ 
 +sudo chown -R root:root squashfs/​etc/​skel </​code>​ 
 + 
 +  * Vérifiez que les fichiers sont au bon emplacement avec ls. 
 +  * Vous devez voir les fichiers de configuration sous cette forme :<code bash> 
 +ls -la squashfs/​etc/​skel
  
-Vous devez maintenant recopier les fichiers de cette archive dans le répertoire /etc/skel du squashfs. ​ 
-<​code>​ 
-cd livecd 
-~/livecd$ sudo cp -r profil/. squashfs/​etc/​skel 
-~/livecd$ sudo chown -R root:root squashfs/​etc/​skel 
-</​code>​ 
-Vérifiez que les fichiers sont au bon emplacement avec ls. Vous devez voir les fichiers de configuration sous cette forme : 
-<​code>​ 
-~/livecd$ ls -la squashfs/​etc/​skel 
-... 
 drwxr-xr-x ​  2 root root  304 2008-03-21 08:25 .fontconfig drwxr-xr-x ​  2 root root  304 2008-03-21 08:25 .fontconfig
 drwx------ ​  4 root root   96 2008-03-21 08:25 .gconf drwx------ ​  4 root root   96 2008-03-21 08:25 .gconf
Ligne 468: Ligne 515:
 Si tout est OK, il ne reste qu'à recréer une image avec ce nouveau contenu. Si tout est OK, il ne reste qu'à recréer une image avec ce nouveau contenu.
  
-Recommencez à partir de [[#​Reconstruction du liveCD]]. Au prochain démarrage de l'​image,​ les fichiers de configuration seront installés et pris en compte.+Recommencez à partir de [[#​Reconstruction du liveCD]]. 
 + Au prochain démarrage de l'​image,​ les fichiers de configuration 
 +seront installés et pris en compte.
 ===== Liens ===== ===== Liens =====
  
   * [[https://​help.ubuntu.com/​community/​LiveCDCustomization]]   * [[https://​help.ubuntu.com/​community/​LiveCDCustomization]]
-  ​* [[installation:​custom_livecd_gnome]] +  * [[http://​liveusb.info/​dotclear/​|Le script de frafa pour 
-  ​* [[http://​liveusb.info/​dotclear/​|Le script de frafa pour créer/​customiser des liveCD/​USB]] discuté sur ce [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=276821|forum]] +  * créer/​customiser des liveCD/​USB]] discuté sur ce 
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=424373 |Une solution pour personnaliser facilement viso iso de liveCD (Ubuntu/​Kubuntu/​Xubuntu/​lubuntu/​Edubuntu/​...)]] +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=276821|forum]] 
-  * [[:​projets:​traduction_live_cd#​iso_a_creer|Méthodes utilisées pour la création des Editions Francophones d'​Ubuntu]] +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=424373 
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=360408| script de smo pour créer/​customiser/​cloner des distribs avec chroot graphique et export sur usb/iso]]+  * |Une solution pour personnaliser facilement viso iso de 
 +  *  ​liveCD (Ubuntu/​Kubuntu/​Xubuntu/​lubuntu/​Edubuntu/​...)]] 
 +  * [[:​projets:​traduction_live_cd#​iso_a_creer|Méthodes utilisées 
 +  *  ​pour la création des Editions Francophones d'​Ubuntu]] 
 +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=412528&​p=1| 
 +  *  ​script de smo pour créer/​customiser/​cloner des distribs 
 +  *  ​avec chroot graphique et export sur usb/iso]]
  
 ---- ----
-//​Contributeurs : Elessor, [[utilisateurs:​traaf|traaf]],​ Furious-therapy,​ Eric Buist, Gpocentek ([[projets:​ecole|classroom Ubuntu-fr]] le 5/​07/​2007)//​+//​Contributeurs : Elessor, [[utilisateurs:​traaf|traaf]],​ Furious-therapy,​ 
 + Eric Buist, Gpocentek ([[projets:​ecole|classroom Ubuntu-fr]] le 5/07/2007), 
 + ​[[utilisateurs:​FelixP]] (Juin 2013)//
  • personnaliser_livecd.1344808338.txt.gz
  • Dernière modification: Le 12/08/2012, 23:52
  • par rogue-spectre