[nSLUG] Data Recovery...
draker at gmail.com
Thu Jan 29 19:57:45 AST 2009
2009/1/29 <dlpotter at eastlink.ca>:
> The drive spools up... The errors started this morning with mangled directories...
> Jan 29 12:42:18 Oldsong kernel: [ 6383.098882] sd 1:0:0:0: [sda] Add. Sense: Address mark not found for data field
> Jan 29 12:42:18 Oldsong kernel: [ 6383.098886] end_request: I/O error, dev sda, sector 8279
> Jan 29 12:42:18 Oldsong kernel: [ 6383.098890] Buffer I/O error on device sda1, logical block 8216
> Jan 29 17:39:41 Oldsong kernel: [ 9707.305282] EXT3-fs: unable to read superblock
Looks like it is failing. Keep in mind that the longer you run it, the
more it will fail (in all likelyhood). If I were to attempt to
retrieve what I could from this, I would start by making a bit-for-bit
copy of everything readable on the disk to another, something like:
dd conv=noerror bs=4096 if=/dev/sda of=/dev/sdb
"conv=noerror" makes dd continue even after errors.
Once this is done (might take hours and hours if there are many bad
sectors), you can safely explore, and try to fix the copy, without
fear of continuing to deteriorate the disk. e.g.:
fsck -b 32768 /dev/sdb1
This uses an alternate superblock (since I noticed your kernel
complaining it could not read the superblock). Please read the man
page for e2fsck (or fsck.ext2) for more information; the location of
the alternate superblocks is filesystem dependent.
PS: if you do this, you will shutdown (to remove the dying disk) and
reboot before attempting to access the copies on the alternate disk,
right? Otherwise you will find that the kernel will get quite upset
that you have gone and changed the partitioning scheme of /dev/sdb
behind its back. Alternately, run 'fdisk /dev/sdb' and re-write the
new partition table before you access /dev/sdb1. You're looking for
the fdisk message that says something like 'calling ioctl to update
partitions'. If in doubt, cat /proc/partitions to see if the kernel's
idea of the partitions matches the reality you've created on the disk.
More information about the nSLUG