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 03/09/2020, 14:47]
37.171.138.110 [Extraction du système]
personnaliser_livecd [Le 02/05/2023, 17:57] (Version actuelle)
89.86.155.3 [Modification du système]
Ligne 6: Ligne 6:
 Dans ce tutoriel, nous vous expliquerons comment créer votre propre liveCD (ou liveDVD), 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.  en modifiant un liveCD ubuntu déjà existant afin qu'il corresponde à vos besoins.
- Vous pourrez par exemple installer les paquets que vous souhaitez, ​+ Vous pourrez par exemple installer les paquets que vous souhaitez,
 mettre dans le /home du liveCD les fichiers dont vous avez besoin, etc. mettre dans le /home du liveCD les fichiers dont vous avez besoin, etc.
  
Ligne 13: 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]]
-  *  [[:​Respin]] +
-  *[[ 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]] ([[https://​launchpad.net/​ubuntu-builder/​+announcement/​12508|Projet abandonné]]  +
-  * puis [[https://​launchpad.net/​~kamilion/​+archive/​ubuntu/​ubuntu-builder|copié récemment par Kamilion]] )  +
-  * [[https://​launchpad.net/​~nemh/​+archive/​ubuntu/​systemback|SystemBack]] +
-  * [[http://​linuxiumcomau.blogspot.com/​2017/​06/​customizing-ubuntu-isos-documentation.html | +
-  *  ​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)+
  
  
Ligne 32: 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 squashfs-tools schroot genisoimage</​code>​+  * 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 ====
Ligne 39: Ligne 32:
  Linux en mémoire vive. Cela permet de tester une distribution sans risquer de faire  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.\\  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, ​+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é. 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),  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.\\  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. ​+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.\\ 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 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.\\  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.+Le soft casper permet la mise en place du boot du liveCD ​à partir de l'​initrd.
  
  
Ligne 64: Ligne 57:
 L'​image ISO sera stockée dans le dossier iso, dans squashfs sera stocké le « vrai » système live. L'​image ISO sera stockée dans le dossier iso, dans squashfs sera stocké le « vrai » système live.
  
-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 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>​   * 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>​
Ligne 75: Ligne 68:
 === Copie du squashfs === === Copie du squashfs ===
  
-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.
  
   * 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 :<code bash>
 sudo mount -t squashfs -o loop iso/​casper/​filesystem.squashfs /​mnt</​code>​ sudo mount -t squashfs -o loop iso/​casper/​filesystem.squashfs /​mnt</​code>​
-<​note>​On pourra reconnaître dans /mnt l'​arborescence classique de Linux : /etc, /​boot,​…, ​+<​note>​On pourra reconnaître dans /mnt l'​arborescence classique de Linux : /etc, /boot,…,
 qui est présente dans le squashfs.</​note>​ qui est présente dans le squashfs.</​note>​
   * 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>//​Attention,​ cette opération prend un peu de temps.//   * 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>//​Attention,​ cette opération prend un peu de temps.//
Ligne 93: Ligne 86:
  ​hébergé (dans ''​~/​livecd/​squashfs''​),​ en utilisant le noyau du système ​  ​hébergé (dans ''​~/​livecd/​squashfs''​),​ en utilisant le noyau du système ​
 hôte (votre jolie Ubuntu à vous ;-) ). C'est une Inception, si vous voulez !</​note>​ 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  +<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 ​+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 dans un système 64b.\\ Si vous essayez de modifier un système 64b dans
- une installation 32b, vous aurez une erreur qui ressemble ​+ une installation 32b, vous aurez une erreur qui ressemble
 à <code bash>​chroot:​ failed to run command ’/​bin/​bash’:​ Exec format error</​code>​FIXME</​note>​ à <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 ! Vous pourrez modifier votre système hébergé (presque) comme s'il était installé en dur !
Ligne 104: Ligne 97:
   * Quelques réglages préalables pour que le chroot fonctionne correctement :<code bash>   * Quelques réglages préalables pour que le chroot fonctionne correctement :<code bash>
 sudo mount --bind /proc squashfs/​proc ​ sudo mount --bind /proc squashfs/​proc ​
-sudo mount --bind /sys squashfs/​sys +sudo mount --bind /sys squashfs/​sys</​code>//​Ces lignes permettent
-sudo mount -t devpts none squashfs/​dev/​pts</​code>​ //Ces lignes permettent ​+
 d'​utiliser les informations du système hôte// d'​utiliser les informations du système hôte//
 <note tip>En cas d'​erreur avec ''​apt-get'',​ il peut être utile de mettre : <note tip>En cas d'​erreur avec ''​apt-get'',​ il peut être utile de mettre :
Ligne 126: Ligne 118:
 </​note>​ </​note>​
 ==Quelques réglages pas nécessaires,​ mais éventuellement utiles :== ==Quelques réglages pas nécessaires,​ mais éventuellement utiles :==
-  * Pour utiliser la connexion du système hôte (mettre à jour, installer des logiciels) +  * 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>​ 
-  *  ​:<code bash>​sudo cp /​etc/​resolv.conf squashfs/​etc/​resolv.conf</​code>​ +  * 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>​ 
-  * Pour pouvoir lancer un serveur PostgreSQL ou un LAMP dans le chroot ​ +  * Pour avoir la même liste de dépôts :<code bash>​sudo cp /​etc/​apt/​sources.list squashfs/​etc/​apt/​sources.list</​code>​ 
-  * (il faudra préalablement éteindre les serveurs sur la machine hôte +<note important>​N'​utilisez cette commande que si le liveCD
-  *  ​pour éviter les conflits de port)<​code bash>​sudo cp  +
-  * /etc/hosts squashfs/​etc/​hosts</​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>​ +
-<note important>​N'​utilisez cette commande que si le liveCD ​+
 que vous modifiez et le système à partir duquel vous que vous modifiez et le système à partir duquel vous
  le modifiez sont de la même version d'​Ubuntu.  le modifiez sont de la même version d'​Ubuntu.
 Dans le cas contraire, vous n'​installeriez pas sur le liveCD Dans le cas contraire, vous n'​installeriez pas sur le liveCD
  les bonnes versions des paquets.</​note>​  les bonnes versions des paquets.</​note>​
-  * Vous pouvez alors éditer manuellement les fichiers ​ +  * 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>​
-  * ''​~/​iso/​squashfs/​etc/​apt/​sources.list''​ et dans  +
-  * ''​~/​iso/​squashfs/​etc/​apt/​sources.list.d/''​ pour rajouter des dépôts : +
-  *  ​<code bash> ​gksudo gedit squashfs/​etc/​apt/​sources.list</​code>​+
    
-  * Si vous souhaitez lancer des applications graphiques, ​ +  * 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>​
-  * 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>​+
  
- Pour finir, on peut entrer dans le chroot : + Pour finir, on peut entrer dans le chroot : <code bash>​sudo chroot squashfs</​code>​
-<code bash>​sudo chroot squashfs</​code>​+
  
 === Exemples de modifications === === Exemples de modifications ===
Ligne 170: Ligne 151:
 </​code>​ </​code>​
 <note warning>​La commande ''​apt-get dist-upgrade''​ peut amener <note warning>​La commande ''​apt-get dist-upgrade''​ peut amener
- une mise à jour du kernel, ce qui vous obligera à une manipulation ​+ une mise à jour du kernel, ce qui vous obligera à une manipulation
 supplémentaire à la fin.</​note>​ supplémentaire à la fin.</​note>​
  
 == Installation / Désinstallation de paquets == == Installation / Désinstallation de paquets ==
  
-  * Installez les paquets que vous souhaitez,  +  * Installez les paquets que vous souhaitez à l'aide de la commande ''​apt-get install //​nom_du_paquet//''​
-  * à l'aide de la commande ''​apt-get install //​nom_du_paquet//''​+
  
-  * Vous pouvez lister les paquets par taille pour  +  * Vous pouvez lister les paquets par taille pour voir ceux qui prennent de la place.<​code bash>
-  * voir ceux qui prennent de la place.<​code bash>+
 dpkg-query -W --showformat='​${Installed-Size} ${Package}\n'​ | sort -nr | less dpkg-query -W --showformat='​${Installed-Size} ${Package}\n'​ | sort -nr | less
 </​code>​ </​code>​
-  * Supprimez ceux qui ne vous servent à rien  +  * Supprimez ceux qui ne vous servent à rien :<code bash>​apt-get purge //​nom_du_paquet//</​code>​
-  * :<code bash>​apt-get purge //​nom_du_paquet//</​code>​+
  
 <note tip>​Supprimer des paquets peut, par inadvertance,​ <note tip>​Supprimer des paquets peut, par inadvertance,​
- ​désinstaller le paquet **ubuntu-desktop** qui est nécessaire au moment ​+ ​désinstaller le paquet **ubuntu-desktop** qui est nécessaire au moment
 d'une mise à niveau de la distribution. Ce paquet devrait donc figurer d'une mise à niveau de la distribution. Ce paquet devrait donc figurer
  sur tout liveCD destiné à être distribué à un certain nombre  sur tout liveCD destiné à être distribué à un certain nombre
- ​d'​utilisateurs de différents niveaux de compétence.  + ​d'​utilisateurs de différents niveaux de compétence. 
-Il est donc bon, après avoir fini de faire les modifications,​  +Il est donc bon, après avoir fini de faire les modifications,​ 
-d'​utiliser la commande **apt-get install ubuntu-desktop** ​+d'​utiliser la commande **apt-get install ubuntu-desktop**
 pour s'​assurer que le paquet est toujours installé.</​note>​ pour s'​assurer que le paquet est toujours installé.</​note>​
  
 == Modifier les raccourcis de la barre de lanceurs Unity == == Modifier les raccourcis de la barre de lanceurs Unity ==
  
-<​code>​gsettings get com.canonical.Unity.Launcher favorites +<​code ​bash>​gsettings get com.canonical.Unity.Launcher favorites #Pour connaître la liste actuelle
- #pour connaître la liste actuelle+
 echo "​[com.canonical.Unity.Launcher] echo "​[com.canonical.Unity.Launcher]
-favorites=['​nautilus-home.desktop',​ '​firefox.desktop',​ +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
- '​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>​ glib-compile-schemas /​usr/​share/​glib-2.0/​schemas/</​code>​
  
 == Autres modifications == == Autres modifications ==
-  * On peut utiliser l'​utilitaire bleachbit afin de nettoyer ​ +  * On peut utiliser l'​utilitaire bleachbit afin de nettoyer les fichiers langues superflus.<​code bash>​apt-get install bleachbit</​code>​
-  * 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>​   * 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  +  * Il est logique de supprimer les fichiers de cache pour ne pas surcharger le cd :<code bash>​apt-get clean</​code>​
-  * ne pas surcharger le cd :<code bash>​apt-get clean</​code>​+
   * Et les logs de crash :<code bash>rm -r /​var/​crash/​*</​code>​   * Et les logs de crash :<code bash>rm -r /​var/​crash/​*</​code>​
-  * FIXME On peut supprimer le cache : (http://​askubuntu.com/​questions/​87142/​safe-to-remove) +  * FIXME On peut supprimer le cache : (https://​askubuntu.com/​questions/​87142/​safe-to-remove)<​code bash>rm -r /​var/​cache/​*</​code>​
-  * <code bash>rm -r /​var/​cache/​*</​code>​+
  
 == Sortie du chroot == == Sortie du chroot ==
Ligne 219: 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 sort du chroot :<code bash>​umount -lf /sys +  * On sort du chroot :<code bash>exit 
-umount -lf /proc +sudo umount -lf squashfs/sys 
-umount -lf /dev/pts +sudo umount -lf squashfs/proc 
-umount -lf /dev #dans le cas où on a exécuté ​sudo mount  +sudo umount -lf squashfs/dev/pts 
---bind /dev squashfs/dev pour le problème avec apt +sudo umount -lf squashfs/dev 
-rm /​etc/​resolv.conf +sudo rm -squashfs/​etc/​resolv.conf 
-rm /etc/hosts +sudo rm -f squashfs/​etc/​hosts</​code>​
-exit</​code>​+
  
 == Insérer des fichiers == == Insérer des fichiers ==
Ligne 245: Ligne 216:
 **__Dans le système__**,​ vous pouvez recopier des fichiers au même **__Dans le systè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<​code bash>​sudo cp -r /​usr/​share/​themes/​*  +  * Des thèmes<​code bash>​sudo cp -r /​usr/​share/​themes/​* squashfs/​usr/​share/​themes</​code>​ 
-  ​* squashfs/​usr/​share/​themes</​code>​ +  * Des fonds d'​écran<​code bash>​sudo cp -r /​usr/​share/​backgrounds/​* squashfs/​usr/​share/​backgrounds/</​code>​
-  * Des fonds d'​écran<​code bash>​sudo cp -r /​usr/​share/​backgrounds/​*  +
-  ​* squashfs/​usr/​share/​backgrounds/</​code>​+
  
 == Rendre le boot explicite == == Rendre le boot explicite ==
Ligne 270: Ligne 239:
   - 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<​code bash>​gksudo ​ +  * Modifier le nom de l'​utilisateur<​code bash>​gksudo gedit squashfs/​etc/​casper.conf</​code>​
-  * gedit squashfs/​etc/​casper.conf</​code>​+
  
-Ce fichier est court et explicite :  +Ce fichier est court et explicite : 
-> # This file should go in /​etc/​casper.conf +># This file should go in /​etc/​casper.conf 
-> # Supported variables are: +># Supported variables are: 
-> # USERNAME, USERFULLNAME,​ HOST, BUILD_SYSTEM,​ FLAVOUR +># 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 +>export USERNAME="​ubuntu"​ 
-> # flavour string acquired at boot time, unless you set FLAVOUR to any +>export USERFULLNAME="​Live session user"​ 
-> # non-empty string. +>export HOST="​ubuntu"​ 
->  +>export BUILD_SYSTEM="​Ubuntu"​ 
-> # export FLAVOUR="​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"​
  
  
-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  +Par défaut, cet utilisateur possède les droits d'​administration 
-sans qu'​aucun mot de passe ne soit requis. ​+sans qu'​aucun mot de passe ne soit requis.
 </​note>​ </​note>​
 Si vous voulez conserver cette propriété,​ ne modifiez que la première Si vous voulez conserver cette propriété,​ ne modifiez que la première
  ​partie ainsi que la valeur de la variable FLAVOUR  ​partie ainsi que la valeur de la variable FLAVOUR
-> export USERNAME="​mon_utilisateur"​ +>export USERNAME="​mon_utilisateur"​ 
-> export USERFULLNAME="​mon_utilisateur Live CD" +>export USERFULLNAME="​mon_utilisateur Live CD" 
-> export HOST="​ubuntu"​ +>export HOST="​ubuntu"​ 
-> export BUILD_SYSTEM="​Ubuntu"​+>export BUILD_SYSTEM="​Ubuntu"​
 > >
-> # USERNAME and HOSTNAME as specified above won't be honoured and will be set to +># 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 +># flavour string acquired at boot time, unless you set FLAVOUR to any 
-> # non-empty string. +># non-empty string. 
->  +
-> export FLAVOUR="​mon_ubuntu_personnalise"​+>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 ​+Si vous voulez modifier ce comportement,​ éditez toutes les occurrences
 ubuntu et remplacez-les par mon_utilisateur,​ modifiez la valeur de FLAVOUR ubuntu et remplacez-les par mon_utilisateur,​ modifiez la valeur de FLAVOUR
-> export USERNAME="​mon_utilisateur"​ +>export USERNAME="​mon_utilisateur"​ 
-> export USERFULLNAME="​mon_utilisateur Live CD" +>export USERFULLNAME="​mon_utilisateur Live CD" 
-> export HOST="​mon_utilisateur"​ +>export HOST="​mon_utilisateur"​ 
-> export BUILD_SYSTEM="​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.
 > >
-> # USERNAME and HOSTNAME as specified above won't be honoured and will be set to +>export FLAVOUR="​mon_ubuntu personnalise"​
-> # 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 343: Ligne 311:
  
 <note important>​ <note important>​
-Avec ubuntu 14.04, il semblerait que le fichier 10adduser soit  +Avec ubuntu 14.04, il semblerait que le fichier 10adduser soit 
-devenu 25adduser, si vous obtenez un fichier vide avec la ligne +devenu 25adduser, si vous obtenez un fichier vide avec la ligne
 ci-dessus essayez en remplaçant 10adduser par 25adduser ci-dessus essayez en remplaçant 10adduser par 25adduser
 </​note>​ </​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>​ <note important>​
 Lors du démarrage, l'​utilisateur automatiquement créé à UID de 999. 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 + Pour que cette création se passe bien il faut qu'il n'y ait
  aucun utilisateur existant ayant un UID == 999.  aucun utilisateur existant ayant un UID == 999.
 Pour détecter le problème, exécutez la commande: Pour détecter le problème, exécutez la commande:
Ligne 376: Ligne 344:
  
   * 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 +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 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).  ​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, ​+Ceci n'est qu'un aperçu des modifications que vous pouvez faire,
 il serait impossible de les lister toutes. il serait impossible de les lister toutes.
  
Ligne 398: Ligne 366:
   * Tout d'​abord,​ il faut régénérer le fichier manifest pour qu'il prenne en compte les modifications dans les paquets. <code bash>   * Tout d'​abord,​ il faut régénérer le fichier manifest pour qu'il prenne en compte les modifications dans les paquets. <code bash>
 sudo chmod a+w iso/​casper/​filesystem.manifest sudo chmod a+w iso/​casper/​filesystem.manifest
-sudo chroot squashfs dpkg-query -W --showformat='​${Package} ​ ${Version}\n'​ > iso/​casper/​filesystem.manifest+sudo chroot squashfs dpkg-query -W --showformat='​${Package} ​ ${Version}\n'​ >​iso/​casper/​filesystem.manifest
 sudo chmod go-w iso/​casper/​filesystem.manifest sudo chmod go-w iso/​casper/​filesystem.manifest
 </​code>​ </​code>​
 Pour n'​avoir certains logiciels qu'en session live, Pour n'​avoir certains logiciels qu'en session live,
- et qu'ils ne s'​installent pas sur l'​ordinateur,​  + et qu'ils ne s'​installent pas sur l'​ordinateur,​ 
-il suffit de les ajouter au fichier ​+il suffit de les ajouter au fichier
 <​code>​iso/​casper/​filesystem.manifest-remove</​code>​ <​code>​iso/​casper/​filesystem.manifest-remove</​code>​
  
Ligne 409: Ligne 377:
   * On recrée le nouveau : <code bash>   * On recrée le nouveau : <code bash>
 cd squashfs cd squashfs
-sudo mksquashfs . ../​iso/​casper/​filesystem.squashfs -info+sudo mksquashfs . ../​iso/​casper/​filesystem.squashfs -comp zstd -Xcompression-level 22 -progress
 cd ..</​code>​ cd ..</​code>​
  
 Comme toute compression,​ cela prend beaucoup de ressources et peut prendre du temps.\\ Comme toute compression,​ cela prend beaucoup de ressources et peut prendre du temps.\\
  
-On rajoute -info à la fin qui équivaut à un verbose... pratique+On rajoute ​''​-info'' ​à la fin qui équivaut à un verbose... pratique
  pour voir l'​avancement de la compression (la barre de progression reste visible)  pour voir l'​avancement de la compression (la barre de progression reste visible)
  et aussi pour voir ce qui pourrait éventuellement bloquer. \\  et aussi pour voir ce qui pourrait éventuellement bloquer. \\
Ligne 423: Ligne 391:
  
 === Reconstruction de l'iso === === Reconstruction de l'iso ===
-<note important>​Si le noyau a été mis à jour, que vous avez changé  +<note important>​Si le noyau a été mis à jour, que vous avez changé 
-l'​usplash ou que vous avez modifié le compte utilisateur, ​+l'​usplash ou que vous avez modifié le compte utilisateur,​
 il va falloir remplacer deux fichiers essentiels sur l'​image disque, il va falloir remplacer deux fichiers essentiels sur l'​image disque,
  que l'on trouve dans ''​iso/​casper''​ : ''​vmlinuz''​ et ''​initrd.lz''​.\\  que l'on trouve dans ''​iso/​casper''​ : ''​vmlinuz''​ et ''​initrd.lz''​.\\
-On les remplace par les fichiers vmlinuz-* et initrd-img* que +On les remplace par les fichiers vmlinuz-* et initrd-img* que
 l'on trouve dans le dossier squashfs/​boot : l'on trouve dans le dossier squashfs/​boot :
 <code bash>​sudo rm -f iso/​casper/​vmlinuz iso/​casper/​initrd.lz <code bash>​sudo rm -f iso/​casper/​vmlinuz iso/​casper/​initrd.lz
Ligne 435: Ligne 403:
  
  
-  * On régénère une nouvelle somme de contrôle MD5 afin  +  * On régénère une nouvelle somme de contrôle MD5 afin qu'​elle reflète le nouveau contenu du CD :<code bash>
-  * qu'​elle reflète le nouveau contenu du CD :<code bash>+
 cd iso cd iso
-sudo bash -c "find . -path ./isolinux -prune -o -type f -not +sudo bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"​
- -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"​+
 </​code>​ </​code>​
  
-  * Il ne reste plus qu'à reconstruire l'​image ISO : +  * 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> 
-__cas 1__: si le système sur lequel on veut démarrer avec l'​iso ​ +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à !
-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> +
-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à !+
  
-<note important>​ Attention mkisofs devient obsolète selon les depots utilisés.+<note important>​Attention mkisofs devient obsolète selon les depots utilisés.
  La commande équivalente avec genisoimage :</​note>​  La commande équivalente avec genisoimage :</​note>​
 <code bash> <code bash>
-sudo genisoimage -o "Nom personnalisé.iso"​ -r -J -no-emul-boot -V "​USB_LINUX"​ +sudo genisoimage -o "Nom personnalisé.iso"​ -r -J -no-emul-boot -V "​USB_LINUX"​ -boot-load-size 4 -boot-info-table -b isolinux/​isolinux.bin -c isolinux/​boot.cat ./ </​code>​
- -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 Renommer le fichier "nom personnalisé"​ en "nom personnalisé"​.iso
  
-* Cette image ne peut être copiée que sur DVD. Si vous souhaitez ​+<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>​ 
 + 
 +ici si on liste les partitions présentes sur l'​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>​ 
 + 
 +ici le système efi démarre (start) à 7129428 
 + 
 +donc on définit skip=7129428 
 + 
 +et le secteur (setors) fait 8496 
 + 
 +donc count=8496 
 + 
 + 
 +<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 
 + 
 +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> pouvoir copier cette image sur une clé USB, exécutez la commande suivante sur votre ISO :<code bash>
 sudo isohybrid "nom personnalisé.iso"</​code>​ sudo isohybrid "nom personnalisé.iso"</​code>​
Ligne 477: Ligne 491:
  la section Modifications,​ il est possible de rajouter des fichiers  la section Modifications,​ il est possible de rajouter des fichiers
  dans le répertoire utilisateur. \\ Voici une méthode pour configurer votre session live.  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 +  * Démarrez sur le liveCD, physiquement ou en utilisant un logiciel de virtualisation : ([[virtualbox]] ou [[qemu]])
-  *  ​de virtualisation : ([[virtualbox]] ou [[qemu]])+
   * Configurez vos logiciels (Thunderbird,​ Firefox, mots de passe WiFi, thèmes,​…)   * Configurez vos logiciels (Thunderbird,​ Firefox, mots de passe WiFi, thèmes,​…)
-  * Après avoir fini, **ne redémarrez pas, ça effacerait +  * 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)
-  *  ​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''​.   * Retournez sur votre Ubuntu, où se trouve le dossier ''​livecd''​.
-  * Recopiez alors le contenu de la sauvegarde/​archive dans +  * Recopiez alors le contenu de la sauvegarde/​archive dans **livecd/​squashfs/​etc/​skel/​** ​<code bash>cd livecd
-  *  ​**livecd/​squashfs/​etc/​skel/​**<​code bash>cd livecd+
 sudo cp -r DOSSIER_DE_SAUVEGARDE/​. squashfs/​etc/​skel/​ sudo cp -r DOSSIER_DE_SAUVEGARDE/​. squashfs/​etc/​skel/​
 sudo chown -R root:root squashfs/​etc/​skel </​code>​ sudo chown -R root:root squashfs/​etc/​skel </​code>​
  
-  * Vérifiez que les fichiers sont au bon emplacement avec ls. +  * Vérifiez que les fichiers sont au bon emplacement avec ls.
   * Vous devez voir les fichiers de configuration sous cette forme :<code bash>   * Vous devez voir les fichiers de configuration sous cette forme :<code bash>
 ls -la squashfs/​etc/​skel ls -la squashfs/​etc/​skel
Ligne 507: Ligne 516:
  
 Recommencez à partir de [[#​Reconstruction du liveCD]]. Recommencez à partir de [[#​Reconstruction du liveCD]].
- Au prochain démarrage de l'​image,​ les fichiers de configuration ​+ Au prochain démarrage de l'​image,​ les fichiers de configuration
 seront installés et pris en compte. seront installés et pris en compte.
 ===== Liens ===== ===== Liens =====
  
   * [[https://​help.ubuntu.com/​community/​LiveCDCustomization]]   * [[https://​help.ubuntu.com/​community/​LiveCDCustomization]]
-  * [[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  +  * créer/​customiser des liveCD/​USB]] discuté sur ce 
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=276821|forum]] +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=276821|forum]] 
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=424373 ​+  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=424373
   * |Une solution pour personnaliser facilement viso iso de   * |Une solution pour personnaliser facilement viso iso de
   *  liveCD (Ubuntu/​Kubuntu/​Xubuntu/​lubuntu/​Edubuntu/​...)]]   *  liveCD (Ubuntu/​Kubuntu/​Xubuntu/​lubuntu/​Edubuntu/​...)]]
   * [[:​projets:​traduction_live_cd#​iso_a_creer|Méthodes utilisées   * [[:​projets:​traduction_live_cd#​iso_a_creer|Méthodes utilisées
   *  pour la création des Editions Francophones d'​Ubuntu]]   *  pour la création des Editions Francophones d'​Ubuntu]]
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=412528&​p=1|+  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=412528&​p=1|
   *  script de smo pour créer/​customiser/​cloner des distribs   *  script de smo pour créer/​customiser/​cloner des distribs
   *  avec chroot graphique et export sur usb/iso]]   *  avec chroot graphique et export sur usb/iso]]
  • personnaliser_livecd.1599137262.txt.gz
  • Dernière modification: Le 03/09/2020, 14:47
  • par 37.171.138.110