Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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çé smile
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 / smile
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 wink


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...

Josepe36 a écrit :

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 smile
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 wink

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 wink


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é ! yikes

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. hmm


"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à smile
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 smile


Développeur distribution Hybryde
www.hybryde.org

Hors ligne