Bonjour à tous
Chose promise, chose due !!!
C'est donc avec plaisir que je contribue afin de vous laisser le plaisir de tester la chose.
Un rappel :
1) au début il était juste question de placer /usr en squashfs afin de voir si cela était plus rapide.
2)Ensuite on a passé un cran au dessus afin de mettre /usr en ram pour améliorer la rapidité du système.
3)L'idée plait mais rappelons que le squashfs seul est en lecture seul ce qui ne va pas à tout le monde
4)Je tire la source du sujet de LINUX MAGAZINE, je n'ai rien inventé juste fait en sorte que ça tourne, enfin si le fait de mettre usr.sq en ram ça c'est de moi (faut être tordu pour vouloir faire ça ).
OBJECTIF :
Réduire l'espace disque occupé par la racine en compressant à l'aide de squashfs /usr
Utiliser aufs afin de pouvoir écrire donc installer des logiciels
PRÉREQUIS :
Savoir utiliser le terminal, connaître l'arborescence d'ubuntu
Installer squashfs-tools
C'EST PARTIS :
Le principe : /usr sera compressé en squashfs, nous monterons celui grâce à aufs dans /usr, aufs servant servant a créer un branchement entre le squashfs de usr qui est en lecture seul (ro) et le usr/rw (lecture écriture) géré par aufs.
Concrètement voici ce que ça donnera un fois fini (aperçu de l'arborescence) :
/sq/usr/ro
/sq/usr/rw
/usr.sq
usr.sq sera monté dans /usr/ro avec squashfs
usr/ro et /usr/rw seront montés dans /usr à l'aide d'aufs comme si ce couple de dossiers n'en faisait qu'un.
Bien si vous suivez toujours on continue :
avant tout il nous fautréer notre usr.sq, la compression squashfs de /usr :
sudo -s
cd /usr
mksquashfs . /usr.sq -info
patientez cela peut-etre long, ça dépend de la taille de /usr
votre usr.sq est prêt ? Alors on continue...
Nous allons créer les dossiers nécessaires à aufs, un point de montage pour usr.sq et le dossier de branchement pour aufs :
sudo -s
cd /
sudo mkdir sq/usr/ro
sudo mkdir sq/usr/rw
Vous devriez avoir sur votre racine :
usr.sq
sq/usr/ro
sq/usr/rw
C'est là que le choix vous incombe soit vous gardez /usr ou soit vous le supprimer afin d'alléger votre partition racine de son poids.
Le usr.sq peut être sauvegarder sur une autre partition si vous souhaitez annuler cette pratique et revenir à un comportement d'origine il suffira alors de le decompresser.
MODIFICATION DE FSTAB :
Afin de faire prendre en compte les points de montages nécessaires au fonctionnement de l'ensemble au démarrage il nous faut éditer le fichier /etc/fstab.
Nous allons y rajouter ces lignes :
/usr.sq /sq/usr/ro squashfs loop,ro 0 0
usr /usr aufs udba=reval,br:/sq/usr/rw:/sq/usr/ro 0 0
vous voilà prêt a tester la bricole, une remarque IMPORTANTE, cela fonctionne hormis un dysfonctionnement de network-manager, JE N'AI PAS TROUVER DE SOLUTION
je l'ai remplacer par wicd qui ne pose pas de soucis.
VARIANTE :
Si comme moi vous avez 4 giga de ram, ubuntu 64 bit et que vous souhaitez faire un test voici ce que j'ai fait pour utiliser usr.sq en RAM.
Le temp d'accès étant largement meilleur qu'un disque dur, je me suis dit que je devais essayer de mettre usr.sq en ram et faire le montage après.
Le problème, pas possible de copier usr.sq avant le montage de la racine et donc avant la lecture de fstab donc j'ai imaginer ceci :
ubuntu démarre avec son fstab non modifié
j'ai écris un fstab modifié dans mon dossier personnel, à l'aide d'un script /etc/fstab est renommer /etc/fstab2 et fstab modifié est copié dans /etc donc il a bien remlacer fstab d'origine sans le détruire.
Reste a copier usr.sq en ram avant de le monter, pour cela je monte tmpfs dans /mnt
Et je copie usr.sq dans /mnt
a rajouter au fstab de remplacement :
/mnt/usr.sq /sq/usr/ro squashfs loop,ro 0 0
usr /usr aufs udba=reval,br:/sq/usr/rw:/sq/usr/ro 0 0
Et voici le script (y a mieux mais ça marche):
#!/bin/bash
turbo()
{
zenity --info --text="TURBO EN COURS D'ACTIVATION" &
mv /etc/fstab /etc/fstab.1 ;
cp $HOME/fstab /etc/ ;
mount -t tmpfs tmpfs /mnt/ ;
sleep 1 ;
cp -a /usr.sq /mnt/ ;
mount -a ;
rm /etc/fstab ;
mv /etc/fstab.1 /etc/fstab ;
killall zenity ;
zenity --info --timeout=2 --text="TURBO ACTIVÉ" ;
}
a=$(ls /mnt | grep usr.sq) ;
if [ "$a" ]
then zenity --info --timeout=2 --text="TURBO DEJAS ACTIF" ;
else turbo ;
fi
exit 0
bon je sais que meme si le script replace le fstab d'origine ce serait balot d'avoir une coupure de courant à ce moment là, donc en toute connaissance de cause sachez que vous modifier des fichiers indispensable au bon démarage de votre systéme.
Don je vous invite a peser ce tuto et de ne rien faire si vous n'en comprenez pas le sens.
Cordialement
olivier