BUT : Créer un CD live d’Ubuntu modifié afin de le personnaliser avec nos outils ou nos configurations
L’idéal est d’utiliser une machine virtuelle sur laquelle est installé un Ubuntu 20.04 LTS et sur laquelle toutes les mises à jour ont été effectuées
Installation des outils :
sudo apt-get install -y squashfs-tools schroot genisoimage xorriso
Mise en place de l’environnement :
bzg@uc:~$ mkdir cdlive bzg@uc:~$ cd cdlive bzg@uc:~/cdlive$ mkdir iso squashfs
Copie du CD ou de l’ISO du CD dans le répertoire « iso » :
Dans le cas où le CD est monté automatiquement
bzg@uc:~/cdlive$ sudo cp -va /media/bzg/Ubuntu\ 20.04.4\ LTS\ amd64/. iso
Il faut remplacer « bzg » par votre nom d’utilisateur et « Ubuntu\ 20.04.4\ LTS\ amd64 » par le nom du CD qui apparaît au montage du CD
Attention à ne pas oublier les « \ » devant les espaces
Dans le cas où c’est l’image « iso » qui est utilisée il faut monter l’image avant la copie puis la démonter
bzg@uc:~/cdlive$ sudo mount -o loop /home/bzg/Téléchargements/Ubuntu\ 20.04.4\ LTS\ amd64.iso /mnt bzg@uc:~/cdlive$ sudo cp -av /mnt/. iso bzg@uc:~/cdlive$ sudo umount /mnt
Montage et copie du « squafs » dans le répertoire squahfs puis démontage
C’est le contenu système du CD
bzg@uc:~/cdlive$ sudo mount -t squashfs -o loop iso/casper/filesystem.squashfs /mnt bzg@uc:~/cdlive$ sudo cp -va /mnt/. squashfs bzg@uc:~/cdlive$ sudo umount /mnt
Passage en mode « chroot »
bzg@uc:~/cdlive$ sudo mount --bind /proc squashfs/proc bzg@uc:~/cdlive$ sudo mount --bind /sys squashfs/sys bzg@uc:~/cdlive$ sudo mount -t devpts none squashfs/dev/pts bzg@uc:~/cdlive$ sudo mount --bind /dev squashfs/dev bzg@uc:~/cdlive$ sudo mount --bind /dev/pts squashfs/dev/pts bzg@uc:~/cdlive$ sudo cp /etc/resolv.conf squashfs/etc/resolv.conf bzg@uc:~/cdlive$ sudo chroot squashfs root@uc:/#
Vous remarquerez que nous sommes en mode « root », mais dans un environnement cloisonné à cdlive/squashfs
Pour notre exemple nous aurons besoin d’installer des programmes qui sont dans « universe »
Installons le dépôt « universe » puis faisons une mise à jour du système qui se trouve dans le chroot
root@uc:/# echo 'deb http://fr.archive.ubuntu.com/ubuntu/ focal universe' >> /etc/apt/sources.list root@uc:/# apt update
Vous pouvez faire les mise à jour, mais je ne vais pas le faire afin de garder le même niveau que la version d’origine (avec : apt dist-upgrade)
Sélectionnons le clavier français (azerty / french)
root@uc:/# apt install console-data
S’il y a des erreurs au sujet de ‘zsys’ c’est normal et nous allons le corriger en supprimant les programmes inutiles
root@uc:/# apt purge zsys
Puis les langues inutiles (à vous de voir)
root@uc:/# apt purge libreoffice-help-ru libreoffice-help-de libreoffice-help-pt-br libreoffice-help-it libreoffice-help-es libreoffice-help-pt language-pack-gnome-ru-base language-pack-pt-base language-pack-gnome-de-base language-pack-de-base language-pack-ru-base language-pack-gnome-es-base language-pack-es-base gnome-getting-started-docs-de gnome-getting-started-docs-es gnome-getting-started-docs-ru gnome-getting-started-docs-it gnome-getting-started-docs-pt language-pack-gnome-zh-hans-base language-pack-zh-hans-base language-pack-it-base
Enfin installons quelques programmes utiles (utilisez atp instal )
ssh : pour activer la connection en ssh
chntpw : pour supprimer les mots de passe Windows
grub-customizer : pour gérer les boots EFI
root@uc:/# apt install ssh chntpw grub-customizer
Nous faisons à présent un peu de ménage
root@uc:/# apt autoremove root@uc:/# apt autoclean root@uc:/# rm /etc/resolv.conf root@uc:/# rm /etc/hosts
Puis nous démontons les répertoires
root@uc:/# umount -lf /sys root@uc:/# umount -lf /proc root@uc:/# umount -lf /dev/pts
Nous sortons du mode ‘chroot’
root@uc:/# exit bzg@uc:~/cdlive$
Nous pouvons copier des fichiers qui apparaîtrons dans le ‘home’ de l’utilisateur dans l’arborescence ‘squashfs/etc/skel’
Pour copier un fichier tuto pour la configuration du wifi, téléchargeons une page web que nous mettrons dans ~Téléchargement et que nous appellerons ‘wifi.html’, puis lançons sa copie par
bzg@uc:~/cdlive$ sudo cp ~/Téléchargements/wifi.html squashfs/etc/skel/
Pour lancer des commandes au démarrage il suffit de modifier le fichier .profile
bzg@uc:~/cdlive$ sudo nano squashfs/etc/skel/.profile
GNU nano 4.8 squashfs/etc/skel/.profile Modifié # Mettre à la fin du fichier .profile # test si connexion internet sinon ffichage d'un fichier html test="$(ping -c 2 google.com | grep '2 re')" if [ ! "$test" ] then # Pas de connection internet affichage d'un tuto sur le wifi firefox ~/wifi.html fi ^G Aide ^O Écrire ^W Chercher ^K Couper ^J Justifier ^C Pos. cur. M-U Annuler M-A Marquer ^X Quitter ^R Lire fich. ^\ Remplacer ^U Coller ^T Orthograp. ^_ Aller ligne M-E Refaire M-6 Copier
Puis sortir par ctrl-X
Pour utiliser le Français par défaut
bzg@uc:~/cdlive$ echo "fr" | sudo tee iso/isolinux/lang
Création du CDLIVE
bzg@uc:~/cdlive$ sudo chmod a+w iso/casper/filesystem.manifest bzg@uc:~/cdlive$ sudo chroot squashfs dpkg-query -W --showformat='${Package} ${Version}\n' > iso/casper/filesystem.manifest bzg@uc:~/cdlive$ sudo chmod go-w iso/casper/filesystem.manifest bzg@uc:~/cdlive$ sudo rm iso/casper/filesystem.squashfs
Création du squashfs puis reconstruction de l’ISO
bzg@uc:~/cdlive$ cd squashfs bzg@uc:~/cdlive/squashfs$ sudo mksquashfs . ../iso/casper/filesystem.squashfs -info bzg@uc:~/cdlive/squashfs$ cd ../iso bzg@uc:~/cdlive/iso$ sudo bash -c "find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum | tee md5sum.txt" bzg@uc:~/cdlive/iso$ sudo mkisofs -U -A "ubuntu-20-04-efi" -V "ubuntu-20-04-efi" -volset "ubuntu-20-04-efi" -J -joliet-long -r -v -T -o ../ubuntu-20-04-efi.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 . bzg@uc:~/cdlive/iso$ cd .. bzg@uc:~/cdlive$ sudo apt install syslinux-utils bzg@uc:~/cdlive$ sudo isohybrid -u ubuntu-20-04-efi.iso