Différences
Ci-dessous, les différences entre deux révisions de la page.
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, 07:54] 81.67.25.74 [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 |
- | 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 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 320: | 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 330: | 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 341: | 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 350: | 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 360: | 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) |