Premiers tests
https://www.nextinpact.com/news/107281-cubic-personnalisez-et-automatisez-installation-dubuntu.htm
https://askubuntu.com/questions/741753/how-to-use-cubic-to-create-a-custom-ubuntu-live-cd-image
https://www.linuxuprising.com/2018/07/how-to-customize-ubuntu-or-linux-mint.html
===== 1. Extraction =====
mkdir -p mateviregul/iso sudo mkdir /tmp/isolive
Le dossier iso contiendra les fichiers contenus dans l'iso téléchargée (ceux qu'on trouve dans l'installation sur clef USB live)
sudo mount -o loop ubuntu-mate-18.04-desktop-amd64.iso /tmp/isolive rsync -arz /tmp/isolive/. mateviregul/iso/ sudo umount /tmp/isolive
cd mateviregul/ sudo unsquashfs ./iso/casper/filesystem.squashfs
Un dossier squashfs-root est créé contenant tout le système de fichiers.
sudo mount --bind /proc squashfs-root/proc sudo mount --bind /sys squashfs-root/sys sudo mount --bind /dev squashfs-root/dev sudo mount --bind /dev/pts squashfs-root/dev/pts sudo cp /etc/resolv.conf squashfs-root/etc/resolv.conf sudo chroot squashfs-root
Ca y est, on est à l'intérieur du système.
apt update && apt-get upgrade && apt-get autoremove && apt-get clean # apt-get dist-upgrade est à tester !!!
Récupération du dépot git et installation des paquets, à adapter selon les outils voulus
apt install git cd /tmp git clone https://framagit.org/viregul/matelinux.git cd distrolinux bash maj_paquets.sh
On peut aussi retirer des paquets en trop (apt remove paquet
ou apt purge paquet
pour supprimer les fichiers de configuration)
Un petit mémo modifier le fond d'écran en ligne de commande :
dconf write /org/mate/desktop/background/picture-filename '/usr/share/backgrounds/backgrounds-viregul/default.jpg' dconf write /org/mate/desktop/background/picture-options 'stretched'
(Utiliser les commandes : dconf list / dconf read / dconf write ou gsettings list-schemas pour voir les valeurs par défaut )
Pour appliquer des options par défaut à tous les utilisateurs, créer les dossiers suivants /etc/dconf/profile et /etc/dconf/db/site.d
mkdir -p /etc/dconf/profile /etc/dconf/db/site.d
Créer un fichier /etc/dconf/profile/user qui doitcontenir :
user-db:user system-db:site
et un fichier /etc/dconf/db/site.d/00_bg_settings contenant (variable de fond d'écran à personnaliser):
[org/mate/desktop/background] picture-filename='/usr/share/backgrounds/backgrounds-viregul/default.jpg' [org/mate/desktop/background] picture-options='stretched'
Puis relancer dconf update
Pour changer l'environnement de bureau et choisir l'environnement classique “ubuntu-mate” au lieu de “familiar”: <note important>Je ne sais pas où le mettre !!!</note>
mate-tweak --layout ubuntu-mate
L'ensemble des paramètres liés à l'utilisateur est sauvegardé dans la base dconf (ex : gconf) qui se trouve dans .config/dconf/user Il suffit de personnaliser ce fichier et de le stocker dans le /etc/skel/.config/dconf/user pour que tous les paramètres soient appliqués à chaque création d'utilisateur.
Personnalisation fine (dossier perso…) : Copie des images de fonds d'écran dans un dossier du chroot depuis l'extérieur du chroot (l'environnement hôte). Commandes à adapter :
sudo mkdir livecd/squashfs-root/usr/share/backgrounds/backgrounds-viregul sudo cp fondsecran/* live/squashfs-root/usr/share/backgrounds/backgrounds-viregul/ sudo mkdir livecd/squashfs-root/usr/share/ubuntu-doc-viregul/ sudo cp Documentation/* livecd/squashfs-root/usr/share/ubuntu-doc-viregul/
Il ne reste plus qu'à créer des liens symboliques depuis /etc/skel vers ces documents.
Exemple depuis l'environnement chrooté :
mkdir /etc/skel/Bureau/Documentation ln -s /usr/share/ubuntu-doc-viregul/* /etc/skel/Bureau/Documentation/
Modifier dans le fichier /etc/lightdm/slick-greeter.conf la valeur de background dans la partie [Greeter] :
[Greeter] background=/usr/share/backgrounds/background-viregul/viregul-lightdm.png
rm -r /var/cache/apt/archives/ /tmp/ echo ""> /etc/resolv.conf history -c exit sudo umount squashfs-root/dev/pts squashfs-root/dev squashfs-root/proc squashfs-root/sys
Il faut modifier l'archive cpio “bootlogo” qui se trouve dans le dossier iso/isolinux dans un autre dossier comme bootlogodir.
sudo mkdir ~/livecd/bootlogodir sudo mv ~/livecd/iso/isolinux/bootlogo ~/livecd/bootlogodir/ cd ~/livecd/bootlogodir/ sudo cpio -i <bootlogo sudo rm bootlogo # ou via le gestionnaire de fichiers en modifiant les droits
splash.pcx
par une autre image PCX indexée à 255 couleurs dans le dossier bootlogodir.cp monimage.pcx ~/livecd/bootlogodir/
lang
contenant fr
(sans retour à la ligne final) dans le dossier bootlogodir:echo "fr" | tee lang
cd ~/livecd/bootlogodir ls | cpio -o> bootlogo sudo cp bootlogo ~/livecd/iso/isolinux/
Editer le fichier iso/isolinux/txt.cfg et remplacer le texte du menu en français par ce qu'on veut (juste après le ^ de chaque ligne).
Optionnel pour forcer le fr coûte que coûte dans le boot : Ajouter locale=fr_FR.UTF-8 keyboard-configuration/layoutcode=fr
avant le '—' final sur chaque ligne.
Ajouter une image de fond en .PNG (640×400) dans iso/isolinux/ et modifier la valeur du background dans iso/isolinux/stdmenu.cfg. On peut aussi modifier les couleurs des textes dans ce fichier.
cp monimage.png ~/livecd/iso/isolinux/
sudo chmod 744 iso/casper/filesystem.manifest sudo chroot squashfs-root/ dpkg-query -W --showformat='${Package} ${Version}n'> iso/casper/filesystem.manifest sudo rm iso/casper/filesystem.squashfs sudo mksquashfs squashfs-root iso/casper/filesystem.squashfs -comp xz # le -comp xz sert à la compression et peut être omis pour gagner du temps chmod 744 iso/casper/filesystem.size printf $(du -s --block-size=1 iso/casper/filesystem.squashfs)> iso/casper/filesystem.size cd iso chmod 744 md5sum.txt find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum> md5sum.txt cd ..
sudo genisoimage -D -r -V “Ubuntu-MATE-VireGUL” -A “Ubuntu installation” -publisher “contact@viregul.fr” -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ubuntu-viregul.iso iso/.
sudo genisoimage -D -r -V 'Ubuntu-MATE-VireGUL' -A 'Ubuntu installation' -publisher 'contact@viregul.fr' -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ubuntu-viregul.iso iso/.
On fait les tests avec Virtualbox par exemple en activant nomodeset (F6) ou on laisse le boot par défaut pour avoir un mode vesa compatible.
Si ça ne va pas, on reprend à l'étape du “2. chrootage”
Copier l'iso à l'aide d'outils dédie comme : usb-creator-gtk
Attention certains outils comme Etcher (ou la copie avec dd) ne rendent pas toujours l'ISO générée bootable.