On Mon, Dec 02, 2002 at 05:32:23PM +0100, Nicolas C. wrote: > J'aimerai savoir pourquoi �a ne fonctionne pas avec les syst�mes de > fichiers journalis�s et s'il existe un remplacement fiable � shred > pour l'Ext3.
Dans ext2, un fichier est compos� d'une liste de secteurs sur disque. Quand tu rallonges le fichier, le syst�me allonge la liste. Quand tu r�-�cris par dessus le d�but du fichier, le syst�me r�-utilise les m�me secteurs. shred (je suppose... je connais pas shred, mais je connaissais un truc �quivalent pour DOS) va donc r�ecrire n'importe quoi par dessus tout le fichier avant de l'effacer. Comme �a, les secteurs sont remplis de n'importe quoi. (Dans le cas normal, la liste des secteurs est d�truite et les secteurs sont marqu�s comme libres, mais les donn�es sont toujours l�... d'o� probl�me de s�curit�, encore que �a se discute: il faudra avoir acc�s en root � /dev/hdax, et dans ce cas il y a des fa�on plus simples de voler des donn�es confidentielles. Mais bon, le cas se d�fend pour des supports amovibles). Je ne suis pas s�r comment ext3 marche dans le d�tail, mais de fa�on g�n�rale, les syst�mes de fichier journalis�s tentent de conserver la coh�rence. C'est � dire: si tu commence � r�ecrire le d�but d'un fichier, et il y a une panne de courant, tu veux que ton fichier contienne soit l'ancienne version, soit la nouvelle _termin�e_, mais pas un m�lange des deux (ce qui arrive avec ext2 ou FAT). Donc, le syst�me commence par �crire les nouvelles donn�es, puis _ensuite_ change la liste des secteurs qui compose le fichier. Bien �videment, il devient alors impossible de r�ecrire sur le _m�me_ secteur du d�but de fichier... et le principe de shred ne marche pas. De fa�on (presque) graphique: On a un fichier qui est constitu� d'une suite de secteurs: 32 -> 56 -> 24 -> 78 Si tu r��crit le d�but du fichier, ext2 r�ecrit dans le secteur 32. Mais ext3 alloue un nouveau secteur: 32 -> 56 -> 24 -> 78 41 puis �crit dans le secteur, puis met � jour la table du fichier: 32 /-> 56 -> 24 -> 78 41/ Et finalement lib�re l'ancien: 41 -> 56 -> 24 -> 78 Il suffirait que ext3 r�-�crive 32 pour que le probl�me ne se pose pas... /Y [Attention: je ne sais _pas_ comment ext3 marche, c'est ce que je suppose sachant comment ext2 et JFFS marchent. En fait, �a m'�tonnerait que �a se passe exactement comme �a, car les fichiers se fragmenteraient beaucoup. C'est l'id�e qui compte...]

