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
Prochaine révision Les deux révisions suivantes
personnaliser_livecd [Le 19/03/2014, 06:24]
andykimpe [Chroot]
personnaliser_livecd [Le 15/02/2018, 18:43]
81.48.123.32 fixme corrigé
Ligne 12: Ligne 12:
   * [[:UCK]]   * [[:UCK]]
   * [[:​Remastersys]]   * [[:​Remastersys]]
 +  *  [[:Respin]]
   *[[ http://​forum.ubuntu-fr.org/​viewtopic.php?​id=424373|ModCustom]]   *[[ 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é]]) ​+  * [[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]] 
  
 <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 26:
   * 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 ​-y 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 squashfs-tools schroot genisoimage</​code>​
  
 ==== Introduction : Généralités sur le liveCD ==== ==== Introduction : Généralités sur le liveCD ====
Ligne 71: Ligne 74:
 <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 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>​ <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é ​comme (presque) ​si il était installé en dur !+Vous pourrez modifier votre système hébergé (presque) ​comme s'il était installé en dur !
  
-==== Chroot ​====+=== Chroot ===
  
-=== Il semble y avoir pas mal de problème avec chroot ​=== +  * Quelques réglages préalables pour que le chroot ​fonctionne correctement :<code bash> 
- +sudo mount --bind ​/proc squashfs/proc  
-=== Il est fortement recommander d'​utilisez schroot === +sudo mount --bind ​/sys squashfs/​sys 
- +sudo mount -t devpts none squashfs/​dev/pts</​code> ​//Ces lignes permettent d'​utiliser les informations du système hôte// 
-<code bash>​sudo ​editor ​/etc/schroot/chroot.d/livecd.conf</​code>​ +<note tip>En cas d'​erreur avec ''​apt-get'',​ il peut être utile de mettre : 
- +<code bash> 
-<code bash>[livecd] +sudo mount --bind ​/dev squashfs/dev 
-description=Ubuntu Chroot Live +sudo mount --bind ​/dev/pts squashfs/dev/pts
-personality=linux32 +
-# personality=linux64 +
-directory=/home/votre_user/livecd/squashfs +
-root-users=root +
-type=directory +
-users=root ​+
 </​code>​ </​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 :== ==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 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>​
Ligne 104: Ligne 110:
  
  Pour finir, on peut entrer dans le chroot :  Pour finir, on peut entrer dans le chroot :
-<code bash>​sudo ​su -c "​schroot -c livecd -u root"</​code>​+<code bash>​sudo ​chroot squashfs</​code>​
  
 === Exemples de modifications === === Exemples de modifications ===
Ligne 151: Ligne 157:
 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>+  * On sort du chroot :<code bash>umount -lf /sys 
 +umount -lf /proc 
 +umount -lf /dev/pts 
 +umount -lf /dev #dans le cas où on a exécuté sudo mount --bind /dev squashfs/​dev pour le problème avec apt
 rm /​etc/​resolv.conf rm /​etc/​resolv.conf
 rm /etc/hosts rm /etc/hosts
Ligne 253: Ligne 262:
 ~/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 *
Ligne 298: Ligne 312:
 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
-# sudo chmod a+w iso/​casper/​filesystem.manifest-desktop 
-# sudo chroot squashfs dpkg-query -W --showformat='​${Package} ${Version}\n'​ > iso/​casper/​filesystem.manifest-desktop ​ 
-# sudo chmod go-w iso/​casper/​filesystem.manifest-desktop ​ # Voir FIXME 
 </​code>​ </​code>​
-FIXME Des changements ont eu lieu dans la gestion des fichiers ''​filesystem.manifest'',​ donc ''​filesystem.manifest-desktop''​ n'est plus nécessaire. \\ 
 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 ''​filesystem.manifest-remove''​. \\ 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 ''​filesystem.manifest-remove''​. \\
  
Ligne 308: Ligne 318:
   * 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</​code>​+sudo mksquashfs . ../​iso/​casper/​filesystem.squashfs -info 
 +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.\\
  
Ligne 319: Ligne 331:
 <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''​.\\ <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 : 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 ​iso/​casper/​vmlinuz.efi +<code bash>​sudo rm -f iso/​casper/​vmlinuz iso/​casper/​initrd.lz 
-sudo cp squashfs/​boot/​vmlinuz-3.8.0-38-generic ​iso/​casper/​vmlinuz.efi  +sudo cp squashfs/​boot/​vmlinuz-3.2.0-54* iso/​casper/​vmlinuz  
-sudo cp squashfs/​boot/​initrd.img-3.8.0-38-generic ​iso/​casper/​initrd.lz</​code>​ +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.4)</​note>​+FIXME : Je crois que le nom des fichiers n'est plus à jour. (mis à jour ubuntu 12.04.3)</​note>​
  
  
Ligne 328: Ligne 340:
 cd iso cd iso
 sudo bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"​ sudo bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"​
-cd .. 
 </​code>​ </​code>​
  
-  * Il ne reste plus qu'à reconstruire l'​image ISO :<code bash>+  * 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>​ 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à ! Cette commande crée une image iso **custom-livecd.iso**. Et voilà !
Ligne 338: Ligne 356:
 sudo genisoimage -o "Nom personnalisé"​ -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/​isolinux.bin -c isolinux/​boot.cat ./ </​code>​ sudo genisoimage -o "Nom personnalisé"​ -r -J -no-emul-boot -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 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 ==== ==== 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. 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]], [[vmware_server|vmware]] ou [[qemu]])+  * 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,​…)   * 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)   * 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)
  • personnaliser_livecd.txt
  • Dernière modification: Le 02/05/2023, 17:57
  • par 89.86.155.3