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