Vous êtes ici : accueil » projets » distriblinuxviregul
Projets:distriblinuxviregul
Table des matières
Ubuntu MATE Linux 18.04
Premiers tests
- 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://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”: <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
- 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
contenantfr
(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.