====== Ubuntu MATE Linux 18.04 ====== Premiers tests * Téléchargement : [[http://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/ubuntu-mate-18.04-desktop-amd64.iso|http://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/ubuntu-mate-18.04-desktop-amd64.iso]] * Pré-requis : sudo apt-get install squashfs-tools schroot genisoimage ===== Liens utiles ===== [[https://www.nextinpact.com/news/107281-cubic-personnalisez-et-automatisez-installation-dubuntu.htm|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://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 ===== * * Insérer de la documentation : générique, locale sur VireGUL, des ressources libres (epub, musique, photos…). * Ajouter bulletin adhésion VireGUL + référence au site… * Personnaliser fonds d'écrans, personnaliser ecran connexion lightdm, écran d'accueil de clef USB… * Ajouter des images et musique sous licence libre * Autres idées ? ===== 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": Je ne sais pas où le mettre !!! 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 - 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/ - (optionnel) modifier en root la liste des langues affichées dans le fichier **langlist** de **bootlogodir** - 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 - 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.