Linux
Personnaliser
Ubuntu
Tutoriel pour personnaliser un live CD Linux
Pour : Linux (Ubuntu, ...)
Pour vous aider à comprendre le tutoriel ci-dessous, je vais vous résumer vite faite en quoi consiste la manipulation.
Voici la racine du contenu du live cd de Ubuntu, dans le répertoire CASPER se trouve le fichier "filesystem.squashfs" qui fait plusieurs centaine de Mo.
Ce fichier contient tout le système d'exploitation qui sera chargé au lancement du live CD.
Les autres fichiers qui sont à la racine du live cd permettent de lancer et de charger le fichier "filesystem.squashfs" qui sera le système de fichier.
Notre but est donc de modifier le fichier "filesystem.squashfs" afin de charger notre système customisé.
Pour cela on récupérera le contenu d'un live cd puis on va extraire le contenu du fichier "filesystem.squashfs" dans un répertoire.
Puis dans ce répertoire on poura accéder à tous le système d'exploitation de notre live CD, comme ci-dessous:
Après on pourra personnaliser notre linux de A à Z, dans notre exemple se sera un Ubuntu.
(Exemple: ajout/suppression d'application, modifier configuration utilisateur par défault, ajout de fichier de données, thèmes, fond d'écrans, des services serveurs ...)
Puis il restera plus qu'a reconstruire notre nouveau fichier "filesystem.squashfs" pour le remplacer par l'ancien qui se trouve sur le live CD.
Et à reconstruire un ISO fonctionnel.
Ne vous inquiétez pas si vous avez pas tout compris, suivez les étapes une par une et vous vérez que c'est relativement simple!!!
Sommaire
1- Extraction du contenu de l'ISO
2- Récupération du système qui est chargé au démarrage
3- CHROOT (Changement de root)
4- Mise à jour et installation des paquets dans le système CHROOT
a- Mises à jour dans le livecd
b- Installation et désinstallation de paquets dans le livecd/a>
c- Exemple de logiciels à intégrer au livecd
5- Démontage du CHROOT
6- Insérer des fichiers
a- Répertoire utilisateur
b- Dans le système
7- Modifier l'utilisateur par défaut
a- Definir le nom par défault et droit
b- Modifier le mot de passe
c- Modifier UID
d- Régénérer le fichier initrd dans le squashfs (en chroot)
8- Modifier des paramètres de boot
9- Reconstruction du Live CD
10- Création de l'ISO
sudo mkdir livecd
sudo mkdir /mnt/iso
sudo mount -o loop ubuntu-13.04-desktop-i386.iso /mnt/iso
sudo cp -av /mnt/iso ./livecd
sudo umount /mnt/iso
sudo apt-get install squashfs-tools
sudo mkdir /mnt/squashfs
sudo mount -t squashfs -o loop livecd/iso/casper/filesystem.squashfs /mnt/squashfs/
sudo cp -av /mnt/squashfs/ ./livecd
sudo umount /mnt/squashfs/
sudo mount --bind /proc ./livecd/squashfs/proc sudo mount --bind /sys ./livecd/squashfs/sys sudo mount -t devpts none ./livecd/squashfs/dev/pts
sudo cp /etc/resolv.conf livecd/squashfs/etc/resolv.conf sudo cp /etc/hosts livecd/squashfs/etc/hosts sudo cp /etc/apt/sources.list livecd/squashfs/etc/apt/sources.list
sudo chroot ./livecd/squashfs
sudo apt-get update
sudo apt-get dist-upgrade
sudo dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr > liste.txt
sudo nano liste.txt
sudo apt-get remove --purge nom_du_paquet
sudo apt-get install nom_du_paquet
sudo apt-get clean
sudo apt-get install console-data
sudo umount -lf /sys sudo umount -lf /proc sudo umount -lf /dev/pts
sudo rm /etc/resolv.conf sudo rm /etc/hosts
sudo exit
sudo cp *votre fichier* ./livecd/squashfs/etc/skel
sudo cp -r /usr/share/backgrounds/* ./livecd/squashfs/usr/share/backgrounds/
sudo cp -r /usr/share/themes/* ./livecd/squashfs/usr/share/themes
sudo nano ./livecd/squashfs/etc/casper.conf
# This file should go in /etc/casper.conf # Supported variables are: # USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM, FLAVOUR export USERNAME="nom_utilisateur" export USERFULLNAME="nom_utilisateur LiveCD" export HOST="ubuntu" export BUILD_SYSTEM="Ubuntu" # 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="mon_ubuntu_customise"
# This file should go in /etc/casper.conf # Supported variables are: # USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM, FLAVOUR export USERNAME="nom_utilisateur" export USERFULLNAME="nom_utilisateur LiveCD" export HOST="nom_utilisateur" export BUILD_SYSTEM="nom_utilisateur" # 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="mon_ubuntu customise"
sudo mkpasswd -s toto 2eMNxc4ZAWoHQ
sudo nano ./livecd/squashfs/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
db_set passwd/root-password-crypted '*' db_set passwd/user-password-crypted 'U6aMy0wojraho'
db-set passwd/root-password-crypted '*' db_set passwd/user-password-crypted '2eMNxc4ZAWoHQ'
sudo nano ./livecd/squashfs/usr/share/initramfs-tools/scripts/casper-bottom/10adduser
db_set passwd/user-uid 999
sudo chroot ./livecd/squashfs sudo update-initramfs -k all -u sudo exit
sudo nano iso/isolinux/isolinux.cfg
sudo echo "fr" | sudo tee iso/isolinux/lang
sudo rm ./livecd/iso/casper/filesystem.squashfs
sudo chmod a+w ./livecd/iso/casper/filesystem.manifest sudo chroot ./livecd/squashfs dpkg-query -W --showformat='${Package} ${Version}\n' > ./livecd/iso/casper/filesystem.manifest sudo chmod go-w ./livecd/iso/casper/filesystem.manifest
sudo mksquashfs ./livecd/squashfs ../iso/casper/filesystem.squashfs -info
sudo cp ./livecd/squashfs/boot/vmlinuz* ./livecd/iso/casper/vmlinuz sudo cp ./livecd/squashfs/boot/initrd.img* ./livecd/iso/casper/initrd.lz
sudo bash -c "find ./livecd/iso -path ./livecd/iso/isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt"
sudo cd livecd/iso sudo mkisofs -r -V "Custom Ubuntu Live CD" -cache-inodes -l -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o custom-live-cd-i386.iso .
Joliet tree sort failed. The -joliet-long switch may help you.