recover superblock

Thomas Gutzler giggel at
Sun Aug 24 12:26:16 PDT 2003


I just lost all of my filesystems on my 5.1 box.
I was running mnogosearch's indexer on my website while several errors
occured. I guess there were 320 of these errors, cause the last message
was "last message repeated 320 times". Unfortunately /var is lost as
well, so I don't have more error messages.

kernel: swap_pager: indefinite wait buffer: device: ad0s1b, blkno: 23536, size: 4096
kernel: ad0: WRITE command timeout tag=0 serv=0 - resetting
kernel: ata0: resetting devices ..
kernel: done
kernel: bad block 4190320178290426368, ino 402986
kernel: pid 42 (syncer), uid 0 inumber 402986 on /usr: bad block

I decided to reboot into singleuser and run fsck. I noticed, that the
buffers couldn't be flushed before restarting and the system couldn't
boot. It said: "not ufs"

I plugged the harddisk into another computer and tried to run fsck.
It couldn't find a superblock, used an alternative one and coredumped
while trying to repair the first error. Before dumping, it said
something like "Couldnt allocate 3900000000 bytes for inoinfo". I can
only remember the value of around 3.9G.
This happened on all filesystems of ad0. I could mount the
filesystem but not access it, but df said: Used: -2.8T (on a 40G disk).
I surrendered on that and ran newfs.

I don't know why, but fsck works on ad1.
fsck said something like "softupdate inconsistency" while trying to
repair the filesystem which obviously didn't completely work.

# fsck /dev/ad1s1e
** /dev/ad1s1e
Cannot find file system superblock


** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
19093 files, 42115174 used, 33631703 free (6471 frags, 4203154 blocks,
0.0% fragmentation)

# mount /dev/ad1s1e /mnt/
mount: /dev/ad1s1e on /mnt: incorrect super block

same thing using fsck -b 32 or any other alternative

Google somewhere advised to use tunefs, but:
# tunefs -A /dev/ad1s1e
tunefs: /dev/ad1s1e: could not read superblock to fill out disk

Even trying to copy an alternate superblock using dd faied.

Do you have any ideas, how I could recover the data on this disk ?


More information about the freebsd-current mailing list