Ci-dessous, les différences entre deux révisions de la page.
modification-live-cd [2008/10/08 18:11] |
modification-live-cd [2023/07/18 23:11] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Comment personnaliser son live CD Ubuntu ====== | ||
+ | |||
+ | |||
+ | ===== Prérequis ===== | ||
+ | |||
+ | * Posséder une image CD (iso) d' | ||
+ | * Disposer d' | ||
+ | |||
+ | |||
+ | ===== Introduction : Généralités sur le live CD ===== | ||
+ | |||
+ | Comme vous le savez, un live CD 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 live CD linux n'est donc autre qu'un système linux classique, son but étant d' | ||
+ | Malheureusement, | ||
+ | Un dernier système de fichier permet d' | ||
+ | Unionfs est utilisable grâce à l' | ||
+ | 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' | ||
+ | Au cours du tutoriel, nous allons utiliser plusieurs dossiers. Créez les avec les commandes suivantes (à passer dans votre terminal favori) : | ||
+ | |||
+ | < | ||
+ | cd ~/livecd | ||
+ | mkdir iso squashfs</ | ||
+ | |||
+ | L' | ||
+ | |||
+ | ==== Copie de l'iso ==== | ||
+ | |||
+ | Il nous faut commencer par copier le contenu de l' | ||
+ | |||
+ | * On va donc le monter : | ||
+ | < | ||
+ | sudo mount -o loop ubuntu-desktop-xxx.iso /cdrom | ||
+ | </ | ||
+ | //Remplacez ubuntu-desktop-xxx.iso par le chemin de votre fichier iso.// | ||
+ | |||
+ | * Puis on copie son contenu dans le dossier iso : | ||
+ | < | ||
+ | ~/livecd$ sudo cp -a /cdrom/. iso | ||
+ | </ | ||
+ | // | ||
+ | |||
+ | * Une fois celà fait, on peut le démonter : | ||
+ | < | ||
+ | sudo umount /cdrom | ||
+ | </ | ||
+ | |||
+ | ==== Suppression des programmes pour Windows ==== | ||
+ | |||
+ | Commençons à faire de la place. Le Live CD original est fourni avec quelques programmes Windows permettant de promouvoir Ubuntu quand on utilise le Live CD sur une plateforme Windows. | ||
+ | |||
+ | On peut donc supprimer sans souci ces répertoires (44Mo d' | ||
+ | < | ||
+ | ~/livecd$ cd iso | ||
+ | ~/ | ||
+ | ~/ | ||
+ | ~/livecd$ | ||
+ | </ | ||
+ | |||
+ | ==== Copie du squashfs ==== | ||
+ | |||
+ | Nous allons maintenant copier le squashfs (le système de fichier de notre live CD) sur le disque dur afin de pouvoir le modifier. | ||
+ | |||
+ | * On le monte de la même manière que n' | ||
+ | < | ||
+ | ~/livecd$ sudo mount -t squashfs -o loop iso/ | ||
+ | </ | ||
+ | //En faisant '' | ||
+ | |||
+ | * Comme nous l' | ||
+ | < | ||
+ | ~/livecd$ sudo cp -a /cdrom/. squashfs | ||
+ | </ | ||
+ | // | ||
+ | |||
+ | * Pour finir, on le démonte : | ||
+ | < | ||
+ | sudo umount /cdrom | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Modification du système ===== | ||
+ | |||
+ | Pour modifier le système que l'on vient de copier, nous utilisons alors un chroot. Pour en savoir plus, consultez man chroot. | ||
+ | <note tip> | ||
+ | </ | ||
+ | |||
+ | ==== chroot ==== | ||
+ | |||
+ | Ici nous allons donc faire un chroot dans le système que nous avons copié à partir du squashfs, ceci afin de pouvoir le modifier à notre convenance. | ||
+ | |||
+ | * quelques réglages préalables pour que le chroot fonctionne correctement : | ||
+ | < | ||
+ | ~/livecd$ sudo mount --bind /proc squashfs/ | ||
+ | ~/livecd$ sudo mount --bind /sys squashfs/ | ||
+ | </ | ||
+ | //ces deux lignes permettent d' | ||
+ | < | ||
+ | ~/livecd$ sudo cp / | ||
+ | </ | ||
+ | //afin d' | ||
+ | < | ||
+ | ~/livecd$ sudo cp / | ||
+ | </ | ||
+ | //pour utiliser votre sources.list personnel// | ||
+ | < | ||
+ | ~/livecd$ sudo gedit squashfs/ | ||
+ | </ | ||
+ | //éditez le fichier sources.list si besoin pour activer/ | ||
+ | * Pour finir, on peut entrer dans le chroot : | ||
+ | < | ||
+ | ~/livecd$ sudo chroot squashfs | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Exemples de modifications ==== | ||
+ | |||
+ | <note important> | ||
+ | Faites attention à la taille ! Ne soyez pas trop gourmand, si la taille d'un CD (700 Mo) est dépassée, vous ne le saurez malheureusement qu'à la reconstruction du CD . Il est toutefois possible de faire un live DVD, sur lequel vous aurez beaucoup plus d' | ||
+ | </ | ||
+ | |||
+ | === Mise a jour du système === | ||
+ | |||
+ | < | ||
+ | apt-get update | ||
+ | apt-get dist-upgrade | ||
+ | apt-get install console-data # (Sélectionner le clavier français) | ||
+ | </ | ||
+ | //pas besoin de sudo, vous êtes en root//\\ | ||
+ | Attention : la commande apt-get dist-upgrade peut amener une mise à jour du kernel, ce qui vous obligera à une manipulation supplémentaire à la fin. | ||
+ | |||
+ | === Installation / Désinstalation de paquets === | ||
+ | |||
+ | * Installez les paquets que vous souhaitez, à l'aide de la commande '' | ||
+ | |||
+ | * Désinstallez les paquets qui vous sont inutiles : | ||
+ | < | ||
+ | dpkg-query -W --showformat=' | ||
+ | </ | ||
+ | //Cette commande vous renvoie la liste des paquets installés, classé par taille.// | ||
+ | Supprimez ceux qui ne vous servent à rien : | ||
+ | < | ||
+ | apt-get remove --purge *nom du paquet* | ||
+ | </ | ||
+ | |||
+ | * Pour ne conserver que le langage français : | ||
+ | < | ||
+ | apt-get remove language* | ||
+ | apt-get install language-pack-fr language-pack-gnome-fr language-support-fr language-pack-kde-fr language-selector | ||
+ | </ | ||
+ | |||
+ | === Sortie du chroot === | ||
+ | |||
+ | D' | ||
+ | |||
+ | * On nettoie le système : | ||
+ | < | ||
+ | apt-get clean | ||
+ | </ | ||
+ | //Supprime les .deb téléchargés via apt-get// | ||
+ | |||
+ | * On sort du chroot : | ||
+ | < | ||
+ | umount /sys | ||
+ | umount /proc | ||
+ | rm / | ||
+ | exit | ||
+ | </ | ||
+ | |||
+ | === Insérer des fichiers === | ||
+ | == Dans le repertoire utilisateur == | ||
+ | |||
+ | L' | ||
+ | Placez donc tous les fichiers que vous voulez dans ce dossier, ils apparaîtront dans le repertoire personnel après le boot. | ||
+ | < | ||
+ | ~livecd$ sudo cp *votre fichier* squashfs/ | ||
+ | </ | ||
+ | |||
+ | Nous allons pouvoir utiliser cette propriété un peu plus tard pour modifier l' | ||
+ | |||
+ | == Dans le système == | ||
+ | |||
+ | Vous pouvez recopier des fichiers au même emplacement que sur votre propre système, par exemple : | ||
+ | * Des thèmes | ||
+ | < | ||
+ | ~/livecd$ sudo cp -r / | ||
+ | </ | ||
+ | * des fonds d' | ||
+ | < | ||
+ | ~/livecd$ sudo cp -r / | ||
+ | </ | ||
+ | |||
+ | === Rendre le boot explicite === | ||
+ | |||
+ | Il est possible de supprimer l' | ||
+ | Éditez le fichier isolinux.cfg qui se trouve dans le dossier iso : | ||
+ | < | ||
+ | ~/livecd$ sudo gedit iso/ | ||
+ | </ | ||
+ | Supprimez toutes les occurrences du mot " | ||
+ | Vous pouvez également supprimer le mot " | ||
+ | Enregistrez et quittez. | ||
+ | |||
+ | === Utiliser le Français par défaut === | ||
+ | < | ||
+ | ~/livecd$ echo " | ||
+ | </ | ||
+ | |||
+ | === Modifier l' | ||
+ | | ||
+ | - modifier les fichiers de configuration de casper | ||
+ | - régénérer le fichier initrd dans le squashfs (en chroot) | ||
+ | |||
+ | * Modifier le nom de l' | ||
+ | < | ||
+ | ~/livecd$ sudo gedit squashfs/ | ||
+ | </ | ||
+ | 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=" | ||
+ | |||
+ | Modifiez les valeurs à votre convenance. | ||
+ | <note important> | ||
+ | Par défaut, cet utilisateur possède les droits d' | ||
+ | </ | ||
+ | Si vous voulez conserver cette propriété, | ||
+ | > export USERNAME=" | ||
+ | > export USERFULLNAME=" | ||
+ | > export HOST=" | ||
+ | > export BUILD_SYSTEM=" | ||
+ | |||
+ | Et passez directement à la section suivante : régénération du fichier initrd | ||
+ | |||
+ | Si vous voulez modifier ce comportement, | ||
+ | > export USERNAME=" | ||
+ | > export USERFULLNAME=" | ||
+ | > export HOST=" | ||
+ | > export BUILD_SYSTEM=" | ||
+ | |||
+ | 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 " | ||
+ | |||
+ | Et insérez le dans le script de création de l' | ||
+ | < | ||
+ | ~/livecd$ sudo gedit squashfs/ | ||
+ | </ | ||
+ | Repérez la section suivante : | ||
+ | > set passwd/ | ||
+ | > set passwd/ | ||
+ | |||
+ | Insérez votre nouveau mot de passe : | ||
+ | > set passwd/ | ||
+ | > set passwd/ | ||
+ | |||
+ | * Régénération du fichier initrd | ||
+ | Pour que ces modification soient prises en compte, il est impératif de recréer le fichier initrd qui est chargé au boot. Cette étape est réalisé en chroot (à l' | ||
+ | < | ||
+ | ~/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. | ||
+ | |||
+ | |||
+ | ===== Reconstruction du Live CD ===== | ||
+ | |||
+ | Maintenant que le système correspond a vos besoin, nous allons recréer un live CD à partir de votre système personnalisé. | ||
+ | |||
+ | ==== Reconstruction du squashfs ==== | ||
+ | |||
+ | * Pour cette étape, nous allons avoir besoin d'un paquet : | ||
+ | < | ||
+ | sudo apt-get install squashfs-tools | ||
+ | </ | ||
+ | |||
+ | * On efface l' | ||
+ | < | ||
+ | ~livecd$ sudo rm iso/ | ||
+ | </ | ||
+ | |||
+ | * Puis on crée le nouveau : | ||
+ | Tout d' | ||
+ | < | ||
+ | ~/livecd$ sudo chmod a+w iso/ | ||
+ | ~/livecd$ sudo chroot squashfs dpkg-query -W --showformat=' | ||
+ | ~/livecd$ sudo chmod go-w iso/ | ||
+ | ~/livecd$ sudo chmod a+w iso/ | ||
+ | ~/livecd$ sudo chroot squashfs dpkg-query -W --showformat=' | ||
+ | ~/livecd$ sudo chmod go-w iso/ | ||
+ | </ | ||
+ | Il faut maintenant compresser le système de fichier du Live CD pour pouvoir le mettre dans une image CD. | ||
+ | < | ||
+ | ~/livecd$ cd squashfs | ||
+ | ~/ | ||
+ | </ | ||
+ | Comme toute compression, | ||
+ | Une fois que ça a finit de mouliner, la taille de votre fichier s' | ||
+ | Si c'est le cas, supprimez des applications/ | ||
+ | |||
+ | ==== Création de l'iso ==== | ||
+ | |||
+ | * Si le noyau a été mis à jour, ou que vous avez modifié le compte utilisateur, | ||
+ | On les remplace par les fichiers vmlinuz-* et initrd-img* que l'on trouve dans le dossier ~livecd/ | ||
+ | (* représente la version du noyau à jour) | ||
+ | < | ||
+ | ~livecd$ sudo cp squashfs/ | ||
+ | ~livecd$ sudo cp squashfs/ | ||
+ | </ | ||
+ | |||
+ | * On régénère un nouveau hash MD5 afin qu'il reflète le nouveau contenu du CD. | ||
+ | < | ||
+ | ~livecd$ cd iso | ||
+ | ~livecd/ | ||
+ | ~livecd/ | ||
+ | </ | ||
+ | |||
+ | C'est terminé, il ne reste plus qu'à reconstruire une image iso : | ||
+ | < | ||
+ | ~/livecd$ sudo mkisofs -r -V " | ||
+ | </ | ||
+ | Cette commande crée un fichier iso dans le répertoire courant, ~/ | ||
+ | |||
+ | ===== Modifications de la configuration du compte utilisateur ===== | ||
+ | |||
+ | Votre live CD est prêt à l' | ||
+ | |||
+ | Il est nécessaire de démarrer le cd, en le gravant, ou de préférence en utilisant un système de virtualisation, | ||
+ | |||
+ | Une fois démarré, procédez à toutes les modifications requises, comme appliquer les thèmes rajoutés sur le CD, changer la page d' | ||
+ | |||
+ | Quand vous êtes satisfaits du résultat, ouvrez nautilus et remontez dans l' | ||
+ | |||
+ | Vous pouvez maintenant éteindre la machine virtuelle. | ||
+ | |||
+ | Récupérez l' | ||
+ | |||
+ | Vous devez maintenant recopier les fichiers de cette archive dans le répertoire /etc/skel du squashfs. | ||
+ | < | ||
+ | cd livecd | ||
+ | ~/livecd$ sudo cp -r profil/. squashfs/ | ||
+ | ~/livecd$ sudo chown -R root:root squashfs/ | ||
+ | </ | ||
+ | Vérifiez que les fichiers soient au bon emplacement avec ls. Vous devez voir les fichiers de configuration sous cette forme : | ||
+ | < | ||
+ | ~/livecd$ 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 [[# | ||
+ | |||
+ | ===== Liens ===== | ||
+ | |||
+ | * [[https:// | ||
+ | |||