sábado, 17 de diciembre de 2011

ext3 file system corrupto [SOLVED]

Ayer mi Ubuntu no booteo mas. Me mandaba a un shell minimo (busybox) , dicho sea de paso sin ninguna informacion util para entender que pasaba.

Arranque un puppy linux de otra particion y le tire un fsck.ext3 al /dev/sda1 y me dijo

# fsck -t ext2 /dev/sda1
fsck 1.40.2 (12-Jul-2007)
e2fsck 1.40.2 (12-Jul-2007)
/dev/sda1: Attempt to read block from filesystem resulted in short read while re ading block 1289

/dev/sda1: Attempt to read block from filesystem resulted in short read reading journal superblock

fsck.ext3: Attempt to read block from filesystem resulted in short read while ch ecking ext3 journal for /dev/sda1

Googlee y llegue a esta pagina que me resulto muy util:

http://www.eduunix.ccut.edu.cn/index/html/linux/OReilly.Linux.Server.Hacks.Volume.Two.Dec.2005/0596100825/morelnxsvrhks-CHP-10-SECT-7.html

El problema resulto ser que por un bloque defectuoso, no se podia leer el journal y entonces el fsck.ext3 no podia chequear el filesystem.

Lo que hice (siguiendo lo indicado por esa pagina) es:

i) sacar el "feature" need_recovery del /dev/sda1 mediante debugfs:

debugfs
debugfs: open /dev/sda1 -w #para que lo abra para escritura
debugfs: feature -needs_recovery

ii) sacar el journal mediante tune2fs ( si needs_recovery esta
seteado tune2fs se niega a sacar el journal, por eso el paso i):

tune2fs -f -O ^has_journal /dev/sda1

iii) ahora si pude corre el fsck.ext3 (que corrigio varios
problemas) y montar luego normalmente

Desde ya que inmediatamente me puse a backupear todo!

UPDATE 29/01/2012: nuevamente me dio problemas el mismo disco,
esta vez los errores fueron:

Jan 28 23:41:38 omz-desktop kernel: [ 63.611214] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Jan 28 23:41:38 omz-desktop kernel: [ 63.611412] ata2.00: BMDMA2 stat 0xc0009
Jan 28 23:41:38 omz-desktop kernel: [ 63.611604] ata2.00: failed command: READ DMA
Jan 28 23:41:38 omz-desktop kernel: [ 63.611802] ata2.00: cmd c8/00:08:40:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in
Jan 28 23:41:38 omz-desktop kernel: [ 63.611804] res 51/40:00:42:00:00/00:00:00:00:00/e0 Emask 0x9 (media error)
Jan 28 23:41:38 omz-desktop kernel: [ 63.612502] ata2.00: status: { DRDY ERR }
Jan 28 23:41:38 omz-desktop kernel: [ 63.612694] ata2.00: error: { UNC }
Jan 28 23:41:38 omz-desktop kernel: [ 63.622393] ata2.00: configured for UDMA/100
Jan 28 23:41:38 omz-desktop kernel: [ 63.622594] sd 1:0:0:0: [sdb] Unhandled sense code
Jan 28 23:41:38 omz-desktop kernel: [ 63.622787] sd 1:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jan 28 23:41:38 omz-desktop kernel: [ 63.623174] sd 1:0:0:0: [sdb] Sense Key : Medium Error [current] [descriptor]
Jan 28 23:41:38 omz-desktop kernel: [ 63.623658] Descriptor sense data with sense descriptors (in hex):
Jan 28 23:41:38 omz-desktop kernel: [ 63.623887] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Jan 28 23:41:38 omz-desktop kernel: [ 63.624679] 00 00 00 42
Jan 28 23:41:38 omz-desktop kernel: [ 63.625047] sd 1:0:0:0: [sdb] Add. Sense: Unrecovered read error - auto reallocate failed
Jan 28 23:41:38 omz-desktop kernel: [ 63.625464] sd 1:0:0:0: [sdb] CDB: Read(10): 28 00 00 00 00 40 00 00 08 00
Jan 28 23:41:38 omz-desktop kernel: [ 63.626117] end_request: I/O error, dev sdb, sector 66

Es decir, el disco no podia leer el sector 66 y ni siquiera con varios reintentos, lo cual no le permitia "realocarlo" en otro sector. El tema es que ese error no me permitia ni siquiera montar el disco.

Lo pude solucionar siguiente lo indicado en

http://www.sjvs.nl/?p=12

esto es:

hdparm –write-sector 66 –yes-i-know-what-i-am-doing /dev/sdb

(que flag se mandaron los chicos, eh? :-)

por suerte pudo escribirse bien y entonces el

hdparm –read-sector 66

me devolvio una ristra de 00 , como era de esperar; desde ya se perdio todo lo que habia en ese sector.

Pero luego de eso pude montar normalmente y seguir backupeando todo.

Lo raro es que ese disco lo compre hace poco. Es un Western Digital modelo WD3200AAKS Caviar de 320GB.

Es el segundo "problema" que tengo con un producto Western Digital. El primero lo tuve con el WDTV , que WD dejo de hacer updates al firmware, pese a la cantidad de pedidos de mejoras y fixes que llovian en su sitio web.