Squashfs /usr et /opt pour une debian sur clef usb

Attention, l’opération est risquée et malgré une relecture attentive je ne peux être tenu responsable de tout dommage engendré par la manipulation décrite ici

iaorana les gens,
Le ssd de mon AAO 110 a rendu l’âme, alors j’ai installé une wheezy sur une clef usb de 4go formatée ext4 sans journal par debootstrap (merci Lol et les autres).
Il y a 2 problèmes (je crois) : le “goulot d’étranglement” de la prise USB et la faible capacité de la clef (la wheezy occupe 60% des 4Go).
J’ai testé la solution de mettre 2 repertoires en squashfs : /opt (qui contient skype) et /usr de la manière suivante :

1/ #mkdir /squashed/usr/{ro,rw} et #mkdir /squashed/opt/{ro,rw}
2/ #cd /squashed/usr et #mksquashfs /usr/ usr.sfs -b 65536
3/ #cd /squashed/opt et #mksquashfs /opt/ opt.sfs -b 65536

On ajoute les lignes suivantes à la fin de /etc/fstab pour que les fichiers squashés soient montés en lieu et place de leurs répertoires d’origine. Assurez vous auparavent d’avoir installé squashfs-tools et aufs-tools d’installés. On fait d’abord un test sur /opt afin de s’assurer que tout fonctionne.

4/ #nano /etc/fstab

...... /squashed/opt/opt.sfs /squashed/opt/ro squashfs loop,ro 0 0 none /opt aufs br:/squashed/opt/rw:/squashed/opt/ro 0 0 #/squashed/usr/usr.sfs /squashed/usr/ro squashfs loop,ro 0 0 #none /usr aufs br:/squashed/usr/rw:/squashed/usr/ro 0 0

5/ #mv /opt /opt.ORI et mkdir /opt
6/ #init 6

on reboote pour voir si le répertoire /opt et bien monté et qu’il est possible d’écrire dessus. Si tout est OK, alors on peut continuer l’opération en décommentant les 2 lignes du fstab relatives au répertoire /usr

7/ #mv /usr /usr.ORI et mkdir /usr
8/ #nano /etc/fstab

............ /squashed/opt/opt.sfs /squashed/opt/ro squashfs loop,ro 0 0 none /opt aufs br:/squashed/opt/rw:/squashed/opt/ro 0 0 /squashed/usr/usr.sfs /squashed/usr/ro squashfs loop,ro 0 0 none /usr aufs br:/squashed/usr/rw:/squashed/usr/ro 0 0
9/ #init 6

on reboote et si tout est OK (répertoires bien montés en rw grâce à aufs) alors il est possible d’effacer les répertoires /opt.ORI et /usr.ORI

Attention : toute modif/mise à jour sur la partie rw de ces répertoires devra être intégrée aux fichiers squashé à un moment ou à un autre par la comande :

#mksquashfs /usr/ usr.sfs -b 65536 -noappend (de même pour le répertoire /opt

Voila, j’aurai clairement aimé avoir l’avis des spécialistes quant à l’intérêt de cette manipulation et, le cas échéant, de son intégration au wiki (que je ne sais pas faire).
Les avantages sont les suivants :

  • réduction de la place occupée par ma wheezy sur clef usb (avant squashage : 60% des 4Go après squashage : 25% des 4Go)
  • une meilleure réactivité (j’ai pas fait de mesure mais c’est très palpable)

PS : je me demande s’il faut ajouter les modules squashfs et aufs à /etc/initramfs-tools/modules et refaire l’initrd

Il te faut effectivement refaire un initrd. Tu peux consulter
github.com/FBoisson/ISN-live
ou là github.com/mquinson/ISN-live
particulièrement ici github.com/FBoisson/ISN-live/tr … kinitramfs
pour fabriquer un initrd boutant un système de fichier squashfs et aufs. C’est le principe de clefagreg (et c’est d’ailleurs directement repris de là) que tu peux également directement utiliser. clefagreg.dnsalias.org/

Merci franb, c’est cool.
J’avais hésité a utiliser upx qu’auparavant j’avais déjà mis à contribution sur le dit ssd de l’aao 110.
Le squashage marche super bien. Le suspend to ram, le fsck de la clef après un arrêt brutal, etc. Bref, tout est comme avant sans toucher à l’initrd, sauf la jolie image de démarrage de grub qui a disparu. Je vais aller voir tout cela en détail dès que possible.
tata
douarn