martes, 12 de enero de 2010

Pánico en la habitación reiser.

Un buen título para una película de terror sería el de este post. Tan pronto como hablo de leer particiones reiserfs desde Windows, no puedo acceder a una de 932GB dónde almaceno contenido multimedia.
El primer síntoma del "problema" es que no se podía acceder desde Gnome. "Ummm...que raro, si en este disco, que por cierto tiene cuatro(4) meses de vida útil en mi máquina, nunca me había dado problemas". El segundo síntoma lo he encontrado en /var/log/syslog y /var/log/messages, dónde se podía apreciar claramente cómo algo no marchaba bien en la unidad /dev/sdb1. Me temía lo peor. Dudaba en este post si reiserfs podía expandir el disco en caliente; ahora puedo afirmar que expandir en caliente sí; lo que no es posible es disminuir el espacio. Al grano. Este post me ha ayudado a recuperar los datos reconstruyendo el árbol. La verdad es que no me paran de llegar buenas impresiones y experiencias sobre EXT4; y teniendo en cuenta que Namesys parece que ya no sigue con el desarrollo de reiserfs, a lo mejor es buen momento para el cambio.
La operación que "copio-pego" ha llevado un buen rato, alrededor de cuatro(4) horas, así que paciencia. Debéis comprobar si tenéis instalado reiserfsprogs, que es el paquete de utilidades para "jugar" con particiones reiser. En Debian GNU/Linux, Ubuntu y derivados es muy sencillo.

apermuy@polinico:~$ dpkg -l|grep reiser
ii reiserfsprogs 1:3.6.21-1 User-level tools for ReiserFS filesystems

Ahora toca comprobar la consistencia del sistema de ficheros. Fácil.

root@polinico apermuy#reiserfsck --check /dev/sdb1

Si tenéis café a mano, o una buena película...ahora es el momento.Ups, me olvidaba comentar que es necesario desmontar la partición.

root@polinico apermuy#reiserfsck --rebuild-tree /dev/sdb1
reiserfsck 3.6.21 (2009 www.namesys.com)

*************************************************************
** Do not run the program with --rebuild-tree unless **
** something is broken and MAKE A BACKUP before using it. **
** If you have bad sectors on a drive it is usually a bad **
** idea to continue using it. Then you probably should get **
** a working hard drive, copy the file system from the bad **
** drive to the good one -- dd_rescue is a good tool for **
** that -- and only then run this program. **
** If you are using the latest reiserfsprogs and it fails **
** please email bug reports to reiserfs-list@namesys.com, **
** providing as much information as possible -- your **
** hardware, kernel, patches, settings, all reiserfsck **
** messages (including version), the reiserfsck logfile, **
** check the syslog file for any related information. **
** If you would like advice on using this program, support **
** is available for $25 at www.namesys.com/support.html. **
*************************************************************

Will rebuild the filesystem (/dev/sdb1) tree
Will put log info to 'stdout'

Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
Replaying journal: Done.
Reiserfs journal '/dev/sdb1' in blocks [18..8211]: 0 transactions replayed
###########
reiserfsck --rebuild-tree started at Mon Jan 11 11:13:29 2010
###########

Pass 0:
####### Pass 0 #######
Loading on-disk bitmap .. ok, 229524466 blocks marked used
Skipping 15663 blocks (super block, journal, bitmaps) 229508803 blocks will be read
0%..block 23371164: The number of items (256) is incorrect, should be (1) - corrected
block 23371164: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 23371164, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 23467445: The number of items (256) is incorrect, should be (1) - corrected
block 23467445: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 23467445, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 24152599: The number of items (256) is incorrect, should be (1) - corrected
block 24152599: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 24152599, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
.block 35113524: The number of items (256) is incorrect, should be (1) - corrected
block 35113524: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 35113524, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 35250046: The number of items (256) is incorrect, should be (1) - corrected
block 35250046: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 35250046, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 37513382: The number of items (256) is incorrect, should be (1) - corrected
block 37513382: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 37513382, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
.block 68136197: The number of items (256) is incorrect, should be (1) - corrected
block 68136197: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 68136197, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 68192301: The number of items (256) is incorrect, should be (1) - corrected
block 68192301: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 68192301, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
left 0, 24118 /secc
168886 directory entries were hashed with "r5" hash.
"r5" hash is selected
Flushing..finished
Read blocks (but not data blocks) 229508803
Leaves among those 248377
- leaves all contents of which could not be saved and deleted 8
Objectids found 168888

Pass 1 (will try to insert 248369 leaves):
####### Pass 1 #######
Looking for allocable blocks .. finished
0%....20%....40%....60%....80%....100% left 0, 84 /sec
Flushing..finished
248369 leaves read
248234 inserted
- pointers in indirect items pointing to metadata 1 (zeroed)
135 not inserted
non-unique pointers in indirect items (zeroed) 2382
####### Pass 2 #######

Pass 2:
0%....20%....40%....60%....80%...vpf-10260: The file we are inserting the new item (5 8814 0x15eb8001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1a9d4001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1adc8001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1bd98001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1c974001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1d15c001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1d550001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
.vpf-10260: The file we are inserting the new item (5 8814 0x1d944001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1dd38001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
100% left 0, 11 /sec
Flushing..finished
Leaves inserted item by item 135
Pass 3 (semantic):
####### Pass 3 #########
/curre/ORDENAR/LIVE-CD/martes.tar.bz2vpf-10680: The file [162552 162553] has the wrong block count in the StatData (799872) - corrected to (781480)
Flushing..finished
Files found: 149084
Directories found: 17768
Symlinks found: 2035
Others: 1
Pass 3a (looking for lost dir/files):
####### Pass 3a (lost+found pass) #########
Looking for lost directories:
Flushing..finished55, 43 /sec
Pass 4 - finished done 248222, 36 /sec
Deleted unreachable items 28
Flushing..finished
Syncing..finished
###########
reiserfsck finished at Mon Jan 11 16:35:11 2010
###########


Un reboot(no sería necesario, pero yo lo he echo para evitar sorpresas) y listo!
Saludos.

No hay comentarios: