Jean-Philippe Georget wrote: > [...] > > Peux-tu faire une synth�se des infos n�cessaires � l'utilisation de la > compression � la vol�e avec ext2 ? Ce que j'ai fait se r�sume comme suit 1) Se procurer le patch e2compr-0.4.39-patch-2.2.18.bz2
2) Patcher les sources du noyau 2.2.18. Personnelement, j'utilise des sources issus de sources (!) diverses, en l'occurrence venant de Linux magazine je crois. 3) Le patch a des bugs en deux endroits a) La constante >> char inflate_copyright[] = " inflate 1.0.4 Copyright 1995-1996 Mark Adler" << dans le fichier /usr/src/linux/drivers/net/zlib.c est en conflit avec >> const char inflate_copyright[] = " inflate 1.1.3 Copyright 1995-1998 Mark Adler "; << dans /usr/src/linux/fs/ext2/gzip/inftrees.c J'ai chang� cela en /* rajout de _gzip pour �viter deux variables identiques dans le fichier ./drivers/net/zlib.c */ const char inflate_copyright_gzip[] = " inflate 1.1.3 Copyright 1995-1998 Mark Adler "; Puis b) Dans <linux>/fs/nfsd/vfs.c patch�: Il y a une erreur de type dans les appels des fonctions up et down lors de la compilation des modules. J'ai patch� le fichier vfs.c par ------------------- [EMAIL PROTECTED]:/usr/src/linux/fs/nfsd$ diff vfs.c vfs.c~ 363,364c363 < /* erreur � mon avis */ < down(&inode->i_sem); --- > down(inode->i_sem); 368c367 < up(&inode->i_sem); --- > up(inode->i_sem); 1145,1146c1144 < /* erreur � mon avis */ < down(&inode->i_sem); --- > down(inode->i_sem); 1159c1157 < up(&inode->i_sem); --- > up(inode->i_sem); [EMAIL PROTECTED]:/usr/src/linux/fs/nfsd$ L� la compilation se passe bien. 3) Chargement des utilitaires: Je ne sais plus si j'ai b�tement charg� le module e2fsprog de chez Debian o� si j'ai compil� les programmes � partir des sources. Les paquets sont e2fsprogs-e2c_1.18.9-1_i386.deb et e2cfsprogs_1.18.9.orig.tar.gz 4) Installation du noyau et des modules (m�thode usuelle) 5) Et l�, jouissance du syst�me: Pour comprimer (compresser ?, il y a eu un d�bat l� dessus?) un fichier faire chattr +c <fichier> Le fichier est comprim� mais cela est transparent � l'utilisation. Pour voir l'efficacit� du proc�de, e2ratio est tr�s bien. Un chattr +c <Repertoire> fait que tout fichier cr�e dans ce repertoire sera comprim�. Exemple: [EMAIL PROTECTED]:~$ mkdir gre [EMAIL PROTECTED]:~$ cd gre [EMAIL PROTECTED]:~/gre$ cp ../nsmail/Inbox . [EMAIL PROTECTED]:~/gre$ ls -l total 651 -rw------- 1 francois francois 661601 mar 22 21:33 Inbox [EMAIL PROTECTED]:~/gre$ lsattr ----------- - - Inbox [EMAIL PROTECTED]:~/gre$ e2ratio 652 652 100.0% . [EMAIL PROTECTED]:~/gre$ chattr Inbox Must use '-b', '-m', '-v', =, - or + [EMAIL PROTECTED]:~/gre$ chattr +c Inbox [EMAIL PROTECTED]:~/gre$ ls -l total 343 -rw------- 1 francois francois 661601 mar 22 21:33 Inbox [EMAIL PROTECTED]:~/gre$ e2ratio 652 344 52.8% . [EMAIL PROTECTED]:~/gre$ lsattr --c----B--- 32 gzip8 Inbox [EMAIL PROTECTED]:~/gre$ cp Inbox Inboxbis [EMAIL PROTECTED]:~/gre$ ls -l total 994 -rw------- 1 francois francois 661601 mar 22 21:33 Inbox -rw------- 1 francois francois 661601 mar 22 21:35 Inboxbis [EMAIL PROTECTED]:~/gre$ lsattr --c----B--- 32 gzip8 Inbox ----------- - - Inboxbis [EMAIL PROTECTED]:~/gre$ e2ratio 1303 995 76.4% . [EMAIL PROTECTED]:~/gre$ chattr -c Inbox [EMAIL PROTECTED]:~/gre$ e2ratio 1303 1303 100.0% . [EMAIL PROTECTED]:~/gre$ [EMAIL PROTECTED]:~/gre$ cd .. [EMAIL PROTECTED]:~$ chattr +c gre [EMAIL PROTECTED]:~$ cd gre [EMAIL PROTECTED]:~/gre$ cp Inbox Inboxter [EMAIL PROTECTED]:~/gre$ lsattr ----------- - - Inbox ----------- - - Inboxbis --c----B--- 32 gzip8 Inboxter [EMAIL PROTECTED]:~/gre$ e2ratio /usr/src/linux/ [..] 120 59 49.2% /usr/src/linux//Documentation/usb 3163 1343 42.5% /usr/src/linux//Documentation 6 6 100.0% /usr/src/linux//modules 95854 35350 36.9% /usr/src/linux/ [EMAIL PROTECTED]:~/gre$ ATTENTION: e2fsck doit �tre patch�, le gag suivant mais arriv� lors du d�but: 1) J'installe le bazar 2) Je teste sur un fichier /tmp/test cela fait, je ne savais pas que le disque mont� sur / avait un patch sur chaque supers blocks indiquant la pr�sence de fichiers compress�s. Notamment, le block FFF..FF n'existe plus et indique la pr�sence d'un bloc de 0 dans le fichier une fois d�compress�. 3) Content, je reboute sur mon vieux noyau (r�flexe touche sur LILO). Pas de bol, ma racine doit �tre v�rifi� par e2fsck... et l�, batterie d'erreurs sur un syst�me sain...: J'utilise le e2fsck patch� mais pas avec le bon noyau... 4) J'ai pu r�cup�r� mon syst�me sans perte en reboutant sur le bon noyau avec un deuxi�me fsck. Moralit�: Ne pas utiliser la compression sur le disque /. En cas de plantage, on pourra le remettre d'aplomb avec une disquette standard. Pour remettre le disque dans son �tat d'origine: chattr -R -c /* clear-e2c /dev/hda1 (par exemple) Voil�, cela ne concerne que la compression � la vol�e du syst�me ext2. J'en suis ravi! Fran�ois Boisson

