Table des matières

Ubuntu MATE Linux 18.04

Premiers tests

Liens utiles

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

0. TODO

===== 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

Extraction du filesystem.squashfs

cd mateviregul/
sudo unsquashfs ./iso/casper/filesystem.squashfs

Un dossier squashfs-root est créé contenant tout le système de fichiers.

2. Chrootage

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.

Mise à jour

apt update && apt-get upgrade && apt-get autoremove && apt-get clean
# apt-get dist-upgrade est à tester !!!

3. Personnalisation

3.1 Ajout, suppression de paquets manquants

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)

3.2 Personnalisation de l'environnement utilisateur

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 )

3.2.1 Fond d'écran

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

3.2.2 Environnement

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

3.2.3 Dconf

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.

3.3 Ajout de fichiers, documents pour tous

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/

3.4 Personnalisation de l'écran de connexion

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

4. Nettoyage et sortie

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

5. Personnalisation avant reconstruction de l'ISO

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
  1. Remplacer le fond d'ecran splash.pcx par une autre image PCX indexée à 255 couleurs dans le dossier bootlogodir.
cp monimage.pcx ~/livecd/bootlogodir/
  1. (optionnel) modifier en root la liste des langues affichées dans le fichier langlist de bootlogodir
  2. choisir le français par défaut avec un fichier lang contenant fr (sans retour à la ligne final) dans le dossier bootlogodir:
echo "fr" | tee lang
  1. Reconstruire l'archive bootlogo à partir des fichiers extraits dans le dossier bootlogo avec :
    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/

6. Reconstruction de l'ISO

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 ..

Construction de l'ISO - à personnaliser

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”

7. Gravage

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.