Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | |||
personnaliser_livecd [Le 03/09/2020, 15:45] – [Création du nouveau LiveCD] 37.171.138.110 | personnaliser_livecd [Le 03/09/2020, 15:48] (Version actuelle) – [Modifications de la configuration du compte utilisateur] 37.171.138.110 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | ====== Comment personnaliser son live CD Ubuntu ====== | ||
+ | |||
+ | 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. | ||
+ | Vous pourrez par exemple installer les paquets que vous souhaitez, | ||
+ | mettre dans le /home du liveCD les fichiers dont vous avez besoin, etc. | ||
+ | |||
+ | |||
+ | ===== Méthodes assistées ===== | ||
+ | |||
+ | Il existe plusieurs applications permettant de personnaliser votre liveCD : | ||
+ | * [[:UCK]] | ||
+ | * [[: | ||
+ | * [[:Respin]] | ||
+ | *[[ http:// | ||
+ | * [[http:// | ||
+ | * puis [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * Le script " | ||
+ | |||
+ | |||
+ | <note tip>Il est recommandé d' | ||
+ | |||
+ | ===== Méthode manuelle ===== | ||
+ | |||
+ | ==== Prérequis ==== | ||
+ | |||
+ | * Posséder une image CD (iso) d' | ||
+ | * Disposer d' | ||
+ | * Installer les outils relatifs au squashfs (format de compression en lecture seule utilisé dans les ISOs Ubuntu) : <code bash> | ||
+ | |||
+ | ==== 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' | ||
+ | son but étant d' | ||
+ | Pour la compression, | ||
+ | qui ne permet que la lecture mais permet un gain de place très important.\\ | ||
+ | Malheureusement, | ||
+ | On l' | ||
+ | Un dernier système de fichier permet d' | ||
+ | Unionfs est utilisable grâce à l' | ||
+ | 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 a partir de l' | ||
+ | |||
+ | |||
+ | ==== Extraction du système ==== | ||
+ | |||
+ | On commence par extraire le squashfs de l' | ||
+ | les modifications souhaitées.\\ | ||
+ | Au cours du tutoriel, nous allons utiliser plusieurs dossiers. | ||
+ | | ||
+ | |||
+ | <code bash> | ||
+ | cd ~/livecd | ||
+ | mkdir iso squashfs</ | ||
+ | |||
+ | L' | ||
+ | |||
+ | Il nous faut commencer par copier le contenu de l' | ||
+ | |||
+ | * On va donc la monter : // Remplacez ubuntu-desktop-xxx.iso par le chemin de votre fichier ISO.//< | ||
+ | |||
+ | * On copie son contenu dans le dossier iso : // | ||
+ | |||
+ | * Une fois cela fait, on peut la démonter :<code bash> | ||
+ | \\ | ||
+ | |||
+ | === 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' | ||
+ | sudo mount -t squashfs -o loop iso/ | ||
+ | < | ||
+ | qui est présente dans le squashfs.</ | ||
+ | * Comme nous l' | ||
+ | |||
+ | * Pour finir, on le démonte :<code bash> | ||
+ | |||
+ | ==== Modification du système ==== | ||
+ | Maintenant que nous avons notre système dans le dossier '' | ||
+ | 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" | ||
+ | | ||
+ | hôte (votre jolie Ubuntu à vous ;-) ). C'est une Inception, si vous voulez !</ | ||
+ | <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> | ||
+ | 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/ | ||
+ | sudo mount --bind /sys squashfs/ | ||
+ | sudo mount -t devpts none squashfs/ | ||
+ | d' | ||
+ | <note tip>En cas d' | ||
+ | <code bash> | ||
+ | sudo mount --bind /dev squashfs/ | ||
+ | sudo mount --bind /dev/pts squashfs/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <note tip> | ||
+ | En cas d' | ||
+ | <code bash> | ||
+ | Failed to open connection to " | ||
+ | to socket / | ||
+ | </ | ||
+ | il peut être utile de mettre : | ||
+ | <code bash> | ||
+ | sudo mount --bind / | ||
+ | </ | ||
+ | </ | ||
+ | ==Quelques réglages pas nécessaires, | ||
+ | * Pour utiliser la connexion du système hôte (mettre à jour, installer des logiciels) :<code bash> | ||
+ | * 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)< | ||
+ | * Pour avoir la même liste de dépôts :<code bash> | ||
+ | <note important> | ||
+ | que vous modifiez et le système à partir duquel vous | ||
+ | le modifiez sont de la même version d' | ||
+ | Dans le cas contraire, vous n' | ||
+ | les bonnes versions des paquets.</ | ||
+ | * Vous pouvez alors éditer manuellement les fichiers '' | ||
+ | |||
+ | * Si vous souhaitez lancer des applications graphiques, vous devez permettre au chroot d' | ||
+ | |||
+ | Pour finir, on peut entrer dans le chroot : <code bash> | ||
+ | |||
+ | === Exemples de modifications === | ||
+ | |||
+ | <note important> | ||
+ | Vous ne saurez qu'à la reconstruction du squashfs si votre iso | ||
+ | | ||
+ | soit vous pourrez graver un DVD, ou utiliser un LiveUSB.</ | ||
+ | <note tip>Pas besoin de '' | ||
+ | en Root (super-utilisateur).</ | ||
+ | Vous pouvez, si vous avez lancé '' | ||
+ | | ||
+ | |||
+ | == 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 | ||
+ | </ | ||
+ | <note warning> | ||
+ | une mise à jour du kernel, ce qui vous obligera à une manipulation | ||
+ | supplémentaire à la fin.</ | ||
+ | |||
+ | == Installation / Désinstallation de paquets == | ||
+ | |||
+ | * Installez les paquets que vous souhaitez à l'aide de la commande '' | ||
+ | |||
+ | * Vous pouvez lister les paquets par taille pour voir ceux qui prennent de la place.< | ||
+ | dpkg-query -W --showformat=' | ||
+ | </ | ||
+ | * Supprimez ceux qui ne vous servent à rien :<code bash> | ||
+ | |||
+ | <note tip> | ||
+ | | ||
+ | d'une mise à niveau de la distribution. Ce paquet devrait donc figurer | ||
+ | sur tout liveCD destiné à être distribué à un certain nombre | ||
+ | | ||
+ | Il est donc bon, après avoir fini de faire les modifications, | ||
+ | d' | ||
+ | pour s' | ||
+ | |||
+ | == Modifier les raccourcis de la barre de lanceurs Unity == | ||
+ | |||
+ | <code bash> | ||
+ | echo " | ||
+ | favorites=[' | ||
+ | glib-compile-schemas / | ||
+ | |||
+ | == Autres modifications == | ||
+ | * On peut utiliser l' | ||
+ | * Synaptic permet de gérer les logiciels installés. <code bash> | ||
+ | |||
+ | * Il est logique de supprimer les fichiers de cache pour ne pas surcharger le cd :<code bash> | ||
+ | * Et les logs de crash :<code bash>rm -r / | ||
+ | * FIXME On peut supprimer le cache : (http:// | ||
+ | |||
+ | == Sortie du chroot == | ||
+ | |||
+ | D' | ||
+ | |||
+ | * On sort du chroot :<code bash> | ||
+ | umount -lf /proc | ||
+ | umount -lf /dev/pts | ||
+ | umount -lf /dev #dans le cas où on a exécuté sudo mount --bind /dev squashfs/ | ||
+ | rm / | ||
+ | rm /etc/hosts | ||
+ | exit</ | ||
+ | |||
+ | == Insérer des fichiers == | ||
+ | **__Dans le répertoire utilisateur__** | ||
+ | |||
+ | L' | ||
+ | | ||
+ | | ||
+ | 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/ | ||
+ | </ | ||
+ | |||
+ | Nous allons pouvoir utiliser cette technique un peu plus tard pour | ||
+ | | ||
+ | |||
+ | **__Dans le système__**, | ||
+ | | ||
+ | * Des thèmes< | ||
+ | * Des fonds d' | ||
+ | |||
+ | == Rendre le boot explicite == | ||
+ | |||
+ | Il est possible de supprimer l' | ||
+ | afin que toutes les étapes soient détaillées.\\ | ||
+ | Éditez le fichier isolinux.cfg qui se trouve dans le dossier iso : | ||
+ | <code bash> | ||
+ | Supprimez toutes les occurrences du mot '' | ||
+ | Vous pouvez également supprimer le mot '' | ||
+ | vous supprimerez ainsi le logo Ubuntu ainsi que la barre de chargement.\\ | ||
+ | Enregistrez et quittez. | ||
+ | |||
+ | == Utiliser le français par défaut == | ||
+ | <code bash> | ||
+ | |||
+ | == Modifier l' | ||
+ | | ||
+ | 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' | ||
+ | |||
+ | Ce fichier est court et explicite : | ||
+ | > # This file should go in / | ||
+ | > # Supported variables are: | ||
+ | > # USERNAME, USERFULLNAME, | ||
+ | > | ||
+ | > export USERNAME=" | ||
+ | > export USERFULLNAME=" | ||
+ | > export HOST=" | ||
+ | > export BUILD_SYSTEM=" | ||
+ | > | ||
+ | > # 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=" | ||
+ | |||
+ | |||
+ | Modifiez les valeurs à votre convenance. | ||
+ | <note important> | ||
+ | Par défaut, cet utilisateur possède les droits d' | ||
+ | sans qu' | ||
+ | </ | ||
+ | Si vous voulez conserver cette propriété, | ||
+ | | ||
+ | > export USERNAME=" | ||
+ | > export USERFULLNAME=" | ||
+ | > export HOST=" | ||
+ | > export BUILD_SYSTEM=" | ||
+ | > | ||
+ | > # 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=" | ||
+ | |||
+ | Et passez directement à la section suivante : régénération du fichier initrd | ||
+ | |||
+ | Si vous voulez modifier ce comportement, | ||
+ | ubuntu et remplacez-les par mon_utilisateur, | ||
+ | > export USERNAME=" | ||
+ | > export USERFULLNAME=" | ||
+ | > export HOST=" | ||
+ | > export BUILD_SYSTEM=" | ||
+ | > | ||
+ | > # 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=" | ||
+ | |||
+ | 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é// | ||
+ | < | ||
+ | mkpasswd -s monmotdepasse | ||
+ | U5dDh03hz1L6. | ||
+ | </ | ||
+ | Votre mot de passe est ici " | ||
+ | la forme " | ||
+ | |||
+ | Et insérez-le dans le script de création de l' | ||
+ | < | ||
+ | ~/livecd$ gksudo gedit squashfs/ | ||
+ | </ | ||
+ | |||
+ | <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 | ||
+ | </ | ||
+ | |||
+ | Repérez la section suivante : | ||
+ | > set passwd/ | ||
+ | > set passwd/ | ||
+ | |||
+ | Insérez votre nouveau mot de passe : | ||
+ | > set passwd/ | ||
+ | > set passwd/ | ||
+ | |||
+ | <note important> | ||
+ | Lors du démarrage, l' | ||
+ | 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: | ||
+ | < | ||
+ | awk -F: '$3 == 999' /etc/passwd | ||
+ | </ | ||
+ | Et modifiez les UID des utilisateurs trouvés: | ||
+ | < | ||
+ | usermod -u 500 < | ||
+ | usermod -u 501 < | ||
+ | </ | ||
+ | |||
+ | Par exemple, l' | ||
+ | |additions invités de virtualbox]] créé un utilisateur vboxadd pouvant avoir l'uid 999. | ||
+ | </ | ||
+ | |||
+ | |||
+ | * 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 | ||
+ | | ||
+ | < | ||
+ | ~/livecd$ sudo chroot squashfs | ||
+ | update-initramfs -k all -u | ||
+ | exit | ||
+ | </ | ||
+ | |||
+ | 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' | ||
+ | sudo chmod a+w iso/ | ||
+ | sudo chroot squashfs dpkg-query -W --showformat=' | ||
+ | sudo chmod go-w iso/ | ||
+ | </ | ||
+ | Pour n' | ||
+ | et qu'ils ne s' | ||
+ | il suffit de les ajouter au fichier | ||
+ | < | ||
+ | |||
+ | * On efface l' | ||
+ | * On recrée le nouveau : <code bash> | ||
+ | cd squashfs | ||
+ | sudo mksquashfs . ../ | ||
+ | cd ..</ | ||
+ | |||
+ | Comme toute compression, | ||
+ | |||
+ | On rajoute -info à la fin qui équivaut à un verbose... pratique | ||
+ | pour voir l' | ||
+ | et aussi pour voir ce qui pourrait éventuellement bloquer. \\ | ||
+ | Une fois la procédure terminée, la taille de votre fichier s' | ||
+ | dans le terminal, vous savez donc si vous avez dépassé la taille maximale ou pas. | ||
+ | Si c'est le cas, supprimez des applications/ | ||
+ | |||
+ | |||
+ | === Reconstruction de l'iso === | ||
+ | <note important> | ||
+ | l' | ||
+ | il va falloir remplacer deux fichiers essentiels sur l' | ||
+ | que l'on trouve dans '' | ||
+ | On les remplace par les fichiers vmlinuz-* et initrd-img* que | ||
+ | l'on trouve dans le dossier squashfs/ | ||
+ | <code bash> | ||
+ | sudo cp squashfs/ | ||
+ | sudo cp squashfs/ | ||
+ | FIXME : Je crois que le nom des fichiers n'est plus à jour. (mis à jour ubuntu 12.04.3)</ | ||
+ | |||
+ | |||
+ | * On régénère une nouvelle somme de contrôle MD5 afin qu' | ||
+ | cd iso | ||
+ | sudo bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt" | ||
+ | </ | ||
+ | |||
+ | * Il ne reste plus qu'à reconstruire l' | ||
+ | sudo mkisofs -r -V " | ||
+ | |||
+ | <note important> | ||
+ | La commande équivalente avec genisoimage :</ | ||
+ | <code bash> | ||
+ | sudo genisoimage -o "Nom personnalisé.iso" | ||
+ | Renommer le fichier "nom personnalisé" | ||
+ | |||
+ | * 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"</ | ||
+ | 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' | ||
+ | la section Modifications, | ||
+ | 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, | ||
+ | * Après avoir fini, **ne redémarrez pas, ça effacerait toute votre personnalisation**, | ||
+ | * Retournez sur votre Ubuntu, où se trouve le dossier '' | ||
+ | * Recopiez alors le contenu de la sauvegarde/ | ||
+ | sudo cp -r DOSSIER_DE_SAUVEGARDE/ | ||
+ | sudo chown -R root:root squashfs/ | ||
+ | |||
+ | * 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/ | ||
+ | |||
+ | drwxr-xr-x | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | drwxr-xr-x | ||
+ | drwx------ | ||
+ | drwx------ | ||
+ | drwxr-xr-x | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Si tout est OK, il ne reste qu'à recréer une image avec ce nouveau contenu. | ||
+ | |||
+ | Recommencez à partir de [[# | ||
+ | Au prochain démarrage de l' | ||
+ | seront installés et pris en compte. | ||
+ | ===== Liens ===== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * créer/ | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * |Une solution pour personnaliser facilement viso iso de | ||
+ | * liveCD (Ubuntu/ | ||
+ | * [[: | ||
+ | * pour la création des Editions Francophones d' | ||
+ | * [[http:// | ||
+ | * script de smo pour créer/ | ||
+ | * avec chroot graphique et export sur usb/iso]] | ||
+ | |||
+ | ---- | ||
+ | // | ||
+ | Eric Buist, Gpocentek ([[projets: | ||
+ | |