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 02/05/2023, 17:57]
89.86.155.3 [Modification du système]
personnaliser_livecd [Le 19/10/2025, 08:53] (Version actuelle)
andykimpe
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), +====== Pour Ubuntu 18.04 ======
- 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.+
  
 +https://​doc.ubuntu-fr.org/​personnaliser_livecd_18.04?​rev=1760856706
  
-===== Méthodes assistées ​=====+====== pour ubuntu 20.04 ======
  
-Il existe plusieurs applications permettant de personnaliser votre liveCD : +https://doc.ubuntu-fr.org/​personnaliser_livecd_20.04?​rev=1760856347
-  * 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) +
-  * [[https://ubuntuplace.info/​questions/​16155/​comment-utiliser-cubic-pour-creer-une-image-cd-ubuntu-person|Cubic]]+
  
 +====== pour ubuntu 22.04 ======
  
-<note tip>Il est recommandé d'​utiliser la méthode manuelle ci-dessous pour des questions de fiabilité.</note>+https://​doc.ubuntu-fr.org/personnaliser_livecd_22.04?​rev=1760856499
  
-===== Méthode manuelle ​=====+====== pour ubuntu 24.04 ======
  
-==== Prérequis ==== +https://doc.ubuntu-fr.org/​personnaliser_livecd_24.04?rev=1760856622
- +
-  * 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. +
-  * 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 ==== +
- +
-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.\\ +
-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. +
-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.\\ +
-Le soft casper permet la mise en place du boot du liveCD à partir de l'​initrd. +
- +
- +
-==== Extraction du système ==== +
- +
-On commence par extraire le squashfs de l'​image ISO pour pouvoir lui apporter +
- 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 bash>​mkdir ~/livecd +
-cd ~/livecd +
-mkdir iso squashfs</​code>​ +
- +
-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. +
- +
-  * 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 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>​ +
- +
-  * Une fois cela fait, on peut la démonter :<code bash>​sudo umount /​mnt</​code>​ +
-\\ +
- +
-=== Copie du squashfs === +
- +
-Nous allons maintenant copier le squashfs (le système de fichier de notre liveCD) +
-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> +
-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,​…,​ +
-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.// +
- +
-  * Pour finir, on le démonte :<code bash>​sudo umount /​mnt</​code>​ +
- +
-==== Modification du système ==== +
-Maintenant que nous avons notre système dans le dossier ''​~/​livecd/​squashfs'',​  +
-nous allons pouvoir le modifier à notre guise. Mais comment utiliser les logiciels +
- qui y sont présents, pour travailler proprement dessus ? C'est là que le chroot intervient. +
-<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  +
-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 === +
- +
-  * Quelques réglages préalables pour que le chroot fonctionne correctement :<code bash> +
-sudo mount --bind /proc squashfs/​proc  +
-sudo mount --bind /sys squashfs/​sys</​code>//​Ces lignes permettent +
-d'​utiliser les informations du système hôte// +
-<note tip>En cas d'​erreur avec ''​apt-get'',​ il peut être utile de mettre : +
-<code bash> +
-sudo mount --bind /dev squashfs/​dev +
-sudo mount --bind /dev/pts squashfs/​dev/​pts +
-</​code>​ +
-</​note>​ +
- +
-<note tip> +
-En cas d'​erreur +
-<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 +
-</​code>​ +
-il peut être utile de mettre : +
-<code bash> +
-sudo mount --bind /​var/​run/​dbus/​ squashfs/​var/​run/​dbus/​ +
-</​code>​ +
-</​note>​ +
-==Quelques réglages pas nécessaires,​ mais éventuellement utiles :== +
-  * 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>​ +
-  * 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 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 +
- 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>​ +
-  * 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>​ +
-  +
-  * 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>​ +
- +
- Pour finir, on peut entrer dans le chroot : <code bash>​sudo chroot squashfs</​code>​ +
- +
-=== Exemples de modifications === +
- +
-<note important>​ +
-Vous ne saurez qu'à la reconstruction du squashfs si votre iso +
- ​tiendra sur un CD (700Mo), donc soit vous devez bien gérer la taille, +
- soit vous pourrez graver un DVD, ou 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 == +
- +
-<code bash> +
-apt-get update +
-apt-get dist-upgrade +
-apt-get install console-data # Sélectionner le clavier français +
-</​code>​ +
-<note warning>​La commande ''​apt-get dist-upgrade''​ peut amener +
- une mise à jour du kernel, ce qui vous obligera à une manipulation +
-supplémentaire à la fin.</​note>​ +
- +
-== Installation / Désinstallation de paquets == +
- +
-  * Installez les paquets que vous souhaitez à l'aide de la commande ''​apt-get install //​nom_du_paquet//''​ +
- +
-  * Vous pouvez lister les paquets par taille pour voir ceux qui prennent de la place.<​code bash> +
-dpkg-query -W --showformat='​${Installed-Size} ${Package}\n'​ | sort -nr | less +
-</​code>​ +
-  * Supprimez ceux qui ne vous servent à rien :<code bash>​apt-get purge //​nom_du_paquet//</​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>​ +
- +
-== 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>​ +
- +
-== 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 == +
- +
-D'​autres modifications peuvent se faire à l'​extérieur du chroot. +
- +
-  * On sort du chroot :<code bash>​exit +
-sudo umount -lf squashfs/​sys +
-sudo umount -lf squashfs/​proc +
-sudo umount -lf squashfs/​dev/​pts +
-sudo umount -lf squashfs/​dev +
-sudo rm -f squashfs/​etc/​resolv.conf +
-sudo rm -f squashfs/​etc/​hosts</​code>​ +
- +
-== Insérer des fichiers == +
-**__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.\\ +
-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>​ +
- +
-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__**,​ vous pouvez recopier des fichiers au même +
- ​emplacement que sur votre propre système, par exemple : +
-  * Des thèmes<​code bash>​sudo cp -r /​usr/​share/​themes/​* squashfs/​usr/​share/​themes</​code>​ +
-  * Des fonds d'​écran<​code bash>​sudo cp -r /​usr/​share/​backgrounds/​* squashfs/​usr/​share/​backgrounds/</​code>​ +
- +
-== Rendre le boot explicite == +
- +
-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 : +
-<code bash>​gksudo gedit iso/​isolinux/​isolinux.cfg</​code>​ +
-Supprimez toutes les occurrences du mot ''​quiet''​.\\ +
-Vous pouvez également supprimer le mot ''​splash'',​  +
-vous supprimerez ainsi le logo Ubuntu ainsi que la barre de chargement.\\ +
-Enregistrez et quittez. +
- +
-== Utiliser le français par défaut == +
-<code bash>​echo "​fr"​ | sudo tee iso/​isolinux/​lang</​code>​ +
- +
-== 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 : +
-  - modifier les fichiers de configuration de casper +
-  - régénérer le fichier initrd dans le squashfs (en chroot) +
- +
-  * Modifier le nom de l'​utilisateur<​code bash>​gksudo gedit squashfs/​etc/​casper.conf</​code>​ +
- +
-Ce fichier est court et explicite : +
-># 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"​ +
- +
- +
-Modifiez les valeurs à votre convenance. +
-<note important>​ +
-Par défaut, cet utilisateur possède les droits d'​administration +
-sans qu'​aucun mot de passe ne soit requis. +
-</​note>​ +
-Si vous voulez conserver cette propriété,​ ne modifiez que la première +
- ​partie ainsi que la valeur de la variable FLAVOUR +
->export USERNAME="​mon_utilisateur"​ +
->export USERFULLNAME="​mon_utilisateur Live CD" +
->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 +
- +
-Si vous voulez modifier ce comportement,​ éditez toutes les occurrences +
-ubuntu et remplacez-les par mon_utilisateur,​ modifiez la valeur de FLAVOUR +
->export USERNAME="​mon_utilisateur"​ +
->export USERFULLNAME="​mon_utilisateur Live CD" +
->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. +
- +
-  * Modifier le mot de passe +
-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é//​ +
-<​code>​ +
-mkpasswd -s monmotdepasse +
-U5dDh03hz1L6. +
-</​code>​ +
-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 +
-<​code>​ +
-~/livecd$ gksudo gedit squashfs/​usr/​share/​initramfs-tools/​scripts/​casper-bottom/​10adduser +
-</​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 : +
->set passwd/​root-password-crypted * +
->set passwd/​user-password-crypted U6aMy0wojraho +
- +
-Insérez votre nouveau mot de passe : +
->set passwd/​root-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 +
-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>​ +
-~/livecd$ sudo chroot squashfs +
-update-initramfs -u -k all +
-exit +
-</​code>​ +
- +
-Ceci n'est qu'un aperçu des modifications que vous pouvez faire, +
-il serait impossible de les lister toutes. +
- +
- +
-==== 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é. +
- +
-=== Reconstruction du squashfs === +
- +
-  * 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 chroot squashfs dpkg-query -W --showformat='​${Package} ​ ${Version}\n'​ >​iso/​casper/​filesystem.manifest +
-sudo chmod go-w iso/​casper/​filesystem.manifest +
-</​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 :<code bash>​sudo rm iso/​casper/​filesystem.squashfs</​code>​ +
-  * On recrée le nouveau : <code bash> +
-cd squashfs +
-sudo mksquashfs . ../​iso/​casper/​filesystem.squashfs -comp zstd -Xcompression-level 22 -progress +
-cd ..</​code>​ +
- +
-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 +
- 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. +
- +
- +
-=== 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>​ +
- +
- +
-  * On régénère une nouvelle somme de contrôle MD5 afin qu'​elle reflète le nouveau contenu du CD :<code bash> +
-cd iso +
-sudo bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"​ +
-</​code>​ +
- +
-  * 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> +
-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. +
- La commande équivalente avec genisoimage :</​note>​ +
-<code bash> +
-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>​ +
-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>​ +
- +
-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> +
-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 Modifications,​ il 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 +
- +
-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------ ​  2 root root   80 2008-03-21 08:25 .gconfd +
-drwxr-xr-x ​  4 root root  112 2008-03-21 08:25 .gnome +
-drwx------ ​  9 root root  272 2008-03-21 08:25 .gnome2 +
-drwx------ ​  2 root root   48 2008-03-21 09:15 .gnome2_private +
-drwxr-xr-x ​  2 root root   88 2008-03-21 08:25 .gstreamer-0.10 +
-... +
-</​code>​ +
- +
-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. +
-===== Liens ===== +
- +
-  * [[https://​help.ubuntu.com/​community/​LiveCDCustomization]] +
-  * [[http://​liveusb.info/​dotclear/​|Le script de frafa pour +
-  * créer/​customiser des liveCD/​USB]] discuté sur ce +
-  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?id=276821|forum]] +
-  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=424373 +
-  * |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),​ +
- ​[[utilisateurs:​FelixP]] (Juin 2013)//+
  • personnaliser_livecd.1683043020.txt.gz
  • Dernière modification: Le 02/05/2023, 17:57
  • par 89.86.155.3