#1 Le 07/04/2013, à 17:12
- Josepe36
[TUTO/ADMIN]RACINE A 100%, pas de soucis je continue...
Bonjour
je viens poster le détail d'une manipulation que je viens de mettre en place sur ma machine.
Depuis un moment, je me dis que je dois faire quelque chose car je vois très bien que mon espace
disque est très très limite, puis j'en viens a faire moultes choses et je remets au lendemain
jusqu'à ce que la réalité me rappel a l'ordre.
C'est donc, ce matin, que j'allume et je n'arrive plus a grand chose après connection, pourquoi ?
C'est simple, plus d'espace sur ma racine, aucuns fichiers de log, temporaires, ne peuvent être écris.
Mais pas de panique, c'est juste un problème de place, reste a trouver une solution qui me convienne.
Problématique :
- Espace de la racine à 100%, écriture impossible donc système inutilisable.
Solution envisageable:
- Refaire une installation : pas question
- Migrer sur un autre disque : pas question
- Migrer sur une autre partition : impossible au vu de ma configuration(disque au taquet).- Supprimer des logiciels : pas question
- je veux réutiliser ma session dans l'heure qui vient.
Il me faut donc une solution qui me permette de gagner de la place tout en conservant l'état actuel de ma racine
donc j'y vais pour gagner de la place.
Solution retenue :
-Compresser le répertoire le plus volumineux de ma racine afin de le monter par la suite.
-Je choisis squashfs, qui est un système de fichier en lecture seul, mais Aufs permet de créer des embranchement
donc la solution est retenue: squashfs + aufs.
Comment ça marche:
-un fichier squashfs est un système de fichier compressé (utilisé pour les iso live...), nous pouvons le monter afin de l'utiliser, le problème sera que
celui ci ne pourra être modifier en écriture, donc utilisé seul aucune installations ni modifications ne pourront être
faites ce qui n'aurait pas de sens.
Heureusement le noyau Linux intégrée le module aufs, aufs permet de créer ce que l'on appel des embranchements, donc dans notre cas
nous pourrons indiquer a aufs que le répertoire sqfs/usr/rw sera le répertoire de déstination de tout ce qui sera écris sur /usr
et que ce répertoire doit être vu comme faisant partie de /usr, une histoire de panier perçé
En finalité le système va donc voir usr comme un répertoire en read write, tout ce qui sera écris ne le sera donc pas sur le répertoire /usr mais sur son
embranchement sqfs/usr/rw.
Squashfs:
-Squashfs est un mode de compression qui conserve la totalité et la structure d'un système de fichier, il conserve les droits, les liens etc...
http://www.tldp.org/pub/Linux/docs/HOWT … HOWTO.html
-Sa performance de compression est remarquable, pour l'affirmer voici la taille de usr avant compression:
du -sh /usr
5,0G /usr
Et après compression:
du -sh /sqfs/squashfs/usr.sq
1,9G
Ç'est satisfaisant, un taux de compression de "100-(1.9/5*100)" 62 % !!!
Voici après toute manipulations éfféctués le résultat obtenus .
@R530-R730:df -h
Sys. fich. Taille Util. Dispo Uti% Monté sur
/dev/sda4 19G 14G 3,9G 79% /
udev 1,5G 4,0K 1,5G 1% /dev
tmpfs 599M 900K 598M 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 1,5G 156K 1,5G 1% /run/shm
/dev/sda3 145G 132G 5,9G 96% /home
/dev/loop0 1,9G 1,9G 0 100% /sqfs/usr/ro
/usr 19G 14G 3,9G 79% /usr
Maintenant que j'ai expliqué la problématique et le résultat obtenue, nous allons rentrer dans les détails et les manipulations éfféctuées pour en arriver là.
ATTENTION :
CE POST EST LE DÉTAIL DE MANIPULATIONS EFFECTUÉES EN TOUTE CONNAISSANCES DE CAUSES
TOUTES LES MANIPULATIONS QUI SERONT INDIQUÉS LE SONT A TITRE INDICATIFS,
CE SONT DES ACTIONS ADMINISTRATIVES TOUCHANT DIRECTEMENT LE FONCTIONNEMENT DE VOTRE SYSTÉME.
SI VOUS NE SAVEZ PAS, NE COMPRENEZ PAS OU N'ÉTES PAS SUR DE CE QUE VOUS FAITES ABSTENEZ VOUS.
UNE RÉGLE D'OR EN INFORMATIQUE EST DE NE PAS REPRODUIRE CE QUE L'ON VOIT PAR CI PAR LÀ MAIS CE QUE L'ON A COMPRIS
ET VALIDÉ.
L'ADMINISTRATION D'UN SYSTÉME DEMANDE DE LA RIGUEUR ET ENGAGE LA RESPONSABILITÉ DE SON ADMINISTRATEUR.
JE M'ASSURE D'AVOIR TOUT DE MÊME UNE CONNECTION INTERNET ACTIVE, DANS LE CAS CONTRAIRE JE DOIS ME PROCURER LES PAQUETS SUIVANTS
- squashfs-tools
- apparmor-utils
Etapes de la manipulation:
-1) compression
-2) édition du fstab
-3) régler le problème d'apparmor et Netwok-manager
Arborescence a créer :
-1) /sqfs/squashfs/usr.sq
-2) /sqfs/usr/ro
-3) /sqfs/usr/rw
Actuellement, je n'ai plus de place pour installer quoi que ce soit, mais pourtant j'ai besoin de récuperer le paquet squashfs-tool, pas de problème, on va télécharger le paquet sur le home et l'utiliser a partir de celui ci:
Récupération de squashfs-tools
Préparation
cd $HOME
mkdir archives
sudo mount --bind archives/ /var/cache/apt/archives/
cd archives/
sudo apt-get install -d squashfs-tools
ar xv squashfs-tools_1%3a4.2-4build1_i386.deb ; tar xvpzf data.*
Création du squashfs
Il serait ridicule de créer le squashfs directement sur la racine vue que je n'ai plus de place, le home ne contiendrait pas le fichier,
plusieurs solutions peuvent être envisageable a chacun d'adapter mais dans mon cas j'ai quelques clés usb qui traînent.
J'en trouve une de 4 go qui n'est pas utilisé.
Alors j'y vais comme ça, je la branche et je la monte:
sudo mount /dev/sdb1 /mnt
Et je crée mon squashfs sur la dite clé usb:
cd usr/bin/
sudo ./mksquashfs /usr/ /mnt/usr.sq
Cela prend un certain temps, c'est normal et dépend de la taille du répertoire a compresser ainsi que du nombre de processeurs, performances etc...
ça doit afficher quelque chose qui ressemble à ça:
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /mnt/usr.sq, block size 131072.
[====/ ] xxx/xxxx 8%
On peut démonter var/cache/apt/archives/
sudo umount var/cache/apt/archives/
Maintenant que le squashfs est crée dans /mnt donc dans ma clé usb il va bien falloir l'installer sur la racine.
A partir de ce moment là AUCUNES ERREURS NE ME SONT PERMISES et je vais vous expliquer pourquoi.
Ce que je m 'apprête a faire c'est de supprimer entièrement /usr, sans quitter ma session, et pour cela je dois prendre la précaution
de me connecter en ROOT et d'y RESTER !!!
Pourquoi ?
Lorsque l on se connecte en root, nous appelons le binaire sudo qui se trouve dans /usr/bin/, si je supprime usr et l'appel par la suite et bien niet et je suis foutu.
Les commandes cp,mkdir, mount se trouvent dans /bin, donc ça va le faire.
ATTENTION: NE FAITES RIEN SI VOUS NE COMPRENEZ PAS CE QUE VOUS FAITES ET N'ÉTES PAS SÛR, CECI POURRAIT
TOUT SIMPLEMENT DÉTRUIRE VOTRE SYSTÉME.
Et j'y vais, je supprime mon /usr tel le bourrin suicidaire mais pas tant que ça , car le fichier usr.sq crée sur ma clé usb est une sauvegarde de usr que je m'apprete a supprimer,
même si il y a une mauvaise manipulation je peux restaurer via un live par exemple.
sudo -s
rm -R /usr/*
Voilà mon /usr est vide, j'ai gagné 5 go sur ma racine et je peux importer mon usr.sq sans problème.
Mais avant quelques créations afin d'avoir un système de fichier cohérent:
Création des répertoires requis:
cd /
mkdir sqfs
mkdir -p sqfs/usr/ro
mkdir sqfs/usr/rw
mkdir sqfs/squashfs/
On copie:
cp /mnt/usr.sq /sqfs/squashfs/
reste plus qu'a monter tout ce que nous venons de méttre en place et pour cela nous allons éditer le fichier /etc/fstab:
echo "/sqfs/squashfs/usr.sq /sqfs/usr/ro squashfs loop,ro 0 0" >> /etc/fstab
echo "usr /usr aufs udba=reval,br:/sqfs/usr/rw:/sqfs/usr/ro 0 0" >> /etc/fstab
Il n'y'a plus qu'a monter les nouvelles règles que nous avons ajouté dans le fstab
mount -a
on control:
mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda3 on /home type ext4 (rw)
gvfs-fuse-daemon on /home/xxxx/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=xxxx)
/dev/sdb1 on /mnt type vfat (rw)
/sqfs/squashfs/usr.sq on /sqfs/usr/ro type squashfs (ro)
/usr on /usr type aufs (rw,udba=reval,br:/sqfs/usr/rw:/sqfs/usr/ro)
usr est bien monté, y'a t'il quelque chose dedans ?
root@R530-R730:/# ls usr/
bin include lib32 sbin src
games lib local share
C'est bon on peut donc quitter root:
exit
Les problèmes a corriger, Apparmor:
-Tout pourrait avoir l'air de fonctionner a merveille, mais si nous ne faisons rien Network-Manager, Cups et d'autres
services ne fonctionneront pas, parce que Apparmor n'est pas penser et coder pour fonctionner avec Aufs.
En effet celui ci va chercher les librairies dans le répertoire sqfs/usr/ro au lieu de /usr et a des régles
bien définis sur les droits de ces librairies qui si elles sont en read only apparmor n'est pas content.
Mais heureusement Apparmor nous propose tout de même quelques outils pour l'administrer et c'est ce que nous allons faire.
Pour cela il va falloir utiliser le paquet apparmor-utils.
C'est super car maintenant je peux a nouveau installer des logiciels sur mon système
sudo apt-get install apparmor-utils
Passons maintenant a la configuration d'apparmor:
Liste des service pris en charges :
sudo aa-status
Libérons la gestion de network-manager:
aa-complain dhclient3
Libérons la gestion de cups (imprimantes)
aa-complain cupsd
Libérons la gestion du serveur mysql (j'ai un apache locale avec mysql)
aa-complain mysqld
Libérons la gestion d'evince (je sais pas pourquoi il est géré pas apparmor mais bon...)
aa-complain evince
Il reste plus qu'a rebooter, et a terminer d'écrire ce post depuis mon installation et voici au final ce que ça donne :
mount:
/sqfs/squashfs/usr.sq on /sqfs/usr/ro type squashfs (ro)
/usr on /usr type aufs (rw,udba=reval,br:/sqfs/usr/rw:/sqfs/usr/ro)
Le montage du squashfs et de l'embranchement aufs est bien là.
J'ai bien ma connection internet, mon serveur cups est bien actif sur http://localhost:631 .
Nous arrivons à la fin de la manipulation de la récupération d' espace disque sur une racine Ubuntu,
nous avons récupéré pour mon cas 3.1 giga octets d'espace ce qui n'est pas négligeable.
On aurait très bien pu se dire que au vu du prix des clés usb aujourd'hui, que de
transférer /usr sur une clé dédié aurait été bien aussi, mais je ne souhaitais pas me déplacer ni investir en ce week-end et surtout récupérer mon espace de travail au plus vite.
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#2 Le 07/04/2013, à 17:50
- tuxmarc
Re : [TUTO/ADMIN]RACINE A 100%, pas de soucis je continue...
Salut Josepe36
A ce que je vois, le développement d'Hybryde Fusion avait piqué tout d'espace de /
Je suis baba de lire ta méthode, du très très grand art !!!!
Pour ceux qui liront ce message, j'en profite pour signaler qu'il vous faut la distribution géniale sur laquelle travaille notre ami josepe36 http://www.hybryde.org
Vous ne le regretterez pas
Vive Richard Stalmann, Linus Torvalds, et tous les fondus de Linux.
De l'Ordinosaure fait à 90% de récup, à deux portables LDLC, neufs sans système et une carte mère sans boitier, tous libres !!
Parrain Linux sur www.parrain-linux.com et www.parrains.linux.free.fr
Hors ligne
#3 Le 07/04/2013, à 17:59
- Josepe36
Re : [TUTO/ADMIN]RACINE A 100%, pas de soucis je continue...
Salut tuxmarc
merci pour ta réponse, pour hybryde c'est calme sur le web en ce moment mais trés trés actif en dev.
Pour le post ici présent, je me suis fait plaisir aujourd'hui et j'ai tenu a en faire profiter la communautée.
Amitiés
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#4 Le 07/04/2013, à 22:01
- tuxmarc
Re : [TUTO/ADMIN]RACINE A 100%, pas de soucis je continue...
Salut tuxmarc
merci pour ta réponse, pour hybryde c'est calme sur le web en ce moment mais trés trés actif en dev.
Pour le post ici présent, je me suis fait plaisir aujourd'hui et j'ai tenu a en faire profiter la communautée.
Amitiés
Je guette patiemment la prochaine étape d'Hybryde Fusion.
La version que j'ai installée dès que je l'ai vue la nouvelle iso, me plait beaucoup, mais j'ai gardé sur le multiboot toutes les versions depuis EldoradOS, chacune a sa saveur particulière, chacune est spectaculaire dès le démarrage
Le soleil qui se lève et le logo Hybryde qui descend, à tous les coups les gens qui le voient sont sciés "c'est quoi !!! c'est quoi !!!" .... et je ne m'en lasse jamais, trop bien fait
Ton tuto illustre magnifiquement la générosité de la grande communauté linuxienne, pas de cachotteries, on partage tout ce qu'on fait et même en cas de pépin, on en parle !
Amitiés
Vive Richard Stalmann, Linus Torvalds, et tous les fondus de Linux.
De l'Ordinosaure fait à 90% de récup, à deux portables LDLC, neufs sans système et une carte mère sans boitier, tous libres !!
Parrain Linux sur www.parrain-linux.com et www.parrains.linux.free.fr
Hors ligne
#5 Le 07/04/2013, à 22:39
- Zakhar
Re : [TUTO/ADMIN]RACINE A 100%, pas de soucis je continue...
Je suis impressionné !
La réaction "américaine" serait de dire : mais pourquoi tu ne prends pas simplement une disque plus gros... au prix que ça coûte, si tu valorises ton temps de travail pour faire tout ça... tu es largement perdant.
Mais en tout cas pour l'exploit, bravo !
Il faudra que je me penche de plus près sur aufs, ça m'intéresse pour fusionner mes répertoires de vidéos qui sont mélangés un peu partout pour le moment.
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#6 Le 07/04/2013, à 23:28
- Josepe36
Re : [TUTO/ADMIN]RACINE A 100%, pas de soucis je continue...
@Zakhar
merci, un exploit ? peut être pas jusque là
le temps de travail, là tu mets le doigt en effet sur un point capital, dans la mesure ou l'on ne connait pas c'est long a méditer et donc du temps.
Sur ce cas, j'ai transformer le problême en plaisir, j'avais déjas des notions sur squashfs et aufs, et j'ai décidé en me lançant dans cette manipulation
de tout noter afin d'en faire un texte et le partager.
L'origine de cette manip est un excellent texte que j'avais lu il y'a plus de trois ans dans un Linux mag, je m'en suis rappelé et donc inspiré.
@tuxmarc
hybryde fusion, ça se construit, le hy-d-v1 étant le plus gros du travail a coder je garde mes réserves quand à une date précise de mise à disposition,
nous souhaitons, enfin, avoir un dépot pour ce projet qui ne sera pas réservé à hybryde.
Je m'éfforce a coder un desktop qui puisse être installable et utilisable sur ubuntu sans passer par hybryde.
Le desktop se devra de pouvoir integrer des modules, et cette partie est en cours de reflection et de developpement.
aufs c'est magique et avec un peu d'imagination peut offrir des moments de tests et de devs assez croustillants
Développeur distribution Hybryde
www.hybryde.org
Hors ligne