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 19/03/2014, 08:01]
81.67.25.74 [Création du nouveau LiveCD]
personnaliser_livecd [Le 18/05/2018, 17:04] (Version actuelle)
L'Africain [Méthodes assistées]
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]] 
 +  * [[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) 
  
 <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 27:
   * 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 75:
 <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 111:
  
  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 158:
 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 
-exit +umount -lf /proc 
-sudo mount --bind /proc squashfs/​proc  +umount -lf /dev/pts 
-sudo mount --bind /sys squashfs/​sys +umount -lf /dev #dans le cas où on a exécuté ​sudo mount --bind /dev squashfs/​dev ​pour le problème avec apt 
-sudo mount -t devpts none squashfs/​dev/​pts +rm /​etc/​resolv.conf 
-echo $USER | sudo tee squashfs/​root/​user +rm /etc/hosts 
-echo $HOME | sudo tee squashfs/​root/​home +exit</​code>​
-sudo su +
-home=$(cat squashfs/​root/​home) +
-chroot $home/​livecd/​squashfs +
-home=$(cat /​root/​home) +
-user=$(cat /​root/​user) +
-deluser $user +
-delgroup $user +
-rm -rf $home +
-echo $(uname -m) > /​root/​kernel +
-exit +
-exit +
-kernel=$(cat squashfs/​root/​kernel) +
-rm -f squashfs/​root/​home /root/user squashfs/​root/​kernel +
-sudo chroot squashfs /bin/bash -c "umount -lf /sys" +
-sudo chroot squashfs /bin/bash -c "umount -lf /proc" +
-sudo chroot squashfs /bin/bash -c "umount -lf /dev/pts" +
-sudo chroot squashfs /bin/bash -c "​umount ​--bind /dev squashfs/​dev" +
-sudo chroot squashfs /bin/bash -c "rm /​etc/​resolv.conf" +
-sudo chroot squashfs /bin/bash -c "rm /etc/hosts"</​code>​+
  
 == Insérer des fichiers == == Insérer des fichiers ==
Ligne 275: Ligne 263:
 ~/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 320: Ligne 313:
 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 330: Ligne 319:
   * 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 341: Ligne 332:
 <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-$kernel sudo cp squashfs/​boot/​vmlinuz.efi +sudo cp squashfs/​boot/​vmlinuz-3.2.0-54* iso/​casper/​vmlinuz  
-sudo cp squashfs/​boot/​initrd.img-$kernel ​iso/casper/initrd.lz +sudo cp squashfs/​boot/​initrd.img-3.2.0-54* iso/​casper/​initrd.lz</​code>​ 
-sudo rm -f squashfs/​boot/​initrd.img-* ​vmlinuz-* +FIXME : Je crois que le nom des fichiers n'est plus à jour. (mis à jour ubuntu 12.04.3)</​note>​
-sudo mv squashfs/​boot/​vmlinuz.efi squashfs/​boot/​vmlinuz-$kernel +
-sudo mv iso/​casper/​initrd.lz iso/casper/​initrd.img-$kernel +
-sudo cp squashfs/​boot/​vmlinuz-$kernel iso/​casper/​vmlinuz.efi +
-sudo cp squashfs/​boot/​vmlinuz-$kernel iso/​casper/​vmlinuz +
-sudo cp squashfs/​boot/​initrd.img-$kernel ​iso/​casper/​initrd.lz</​code>​ +
-FIXME : fixé utilisation de uname -r pour déterminer ​le kernel</​note>​+
  
  
Ligne 356: Ligne 341:
 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 366: Ligne 357:
 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.1395212491.txt.gz
  • Dernière modification: Le 19/03/2014, 08:01
  • par 81.67.25.74