harddisk failed strangely, badly need to recover data
Zhang Weiwu
zhangweiwu at realss.com
Tue May 8 08:44:14 UTC 2007
Dear list. I added a 160 GB harddisk to the FreeBSD server several days
ago. I have setup only one slice on it (/dev/ad6s1) and it has two
partitions on it.
/dev/ad6s1c is used as swap
/dev/ad6s1d is used as /var
Today I decided to reboot the FreeBSD server because I messed up nfs
settings. After restart /var/ failed to mount. I was brought to a shell
where I am suggested to do fsck manually. fsck manually couldn't help
either:
[root at exupery /home/zhangweiwu]# fsck /dev/ad6s1d
** /dev/ad6s1d
Cannot find file system superblock
LOOK FOR ALTERNATE SUPERBLOCKS? [yn] y
32 is not a file system superblock
28780512 is not a file system superblock
57560992 is not a file system superblock
86341472 is not a file system superblock
115121952 is not a file system superblock
143902432 is not a file system superblock
172682912 is not a file system superblock
201463392 is not a file system superblock
230243872 is not a file system superblock
259024352 is not a file system superblock
287804832 is not a file system superblock
SEARCH FOR ALTERNATE SUPER-BLOCK FAILED. YOU MUST USE THE
-b OPTION TO FSCK TO SPECIFY THE LOCATION OF AN ALTERNATE
SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; SEE fsck(8).
I tried to fix it by do inga harddisk bad-sector checking for the
beginning 1GB of the harddisk (result is successful, no bad sector in
the beginning 1GB). The data on the harddisk is not modified/erased
during checking
Use 'dd if=/dev/ad6 bs=32k | hd -v | grep "19 01 54 19"' to locate the
super block and do some calculation to get the superblock sector number
(following an Internet article) and pass it to fsck_ufs like this:
'fsck_ufs -b 12032 /dev/ad6s1d'. Under a lot of time pressure I
confirmed twice with 'y' for the following questions of whether or not
to set some values to default without fully understanding the questions,
later seeing more questions I stopped fsck by Ctrl+C.
Before running fsck I tried to backup the first 100MB data of /dev/ad6
using dd which should help me recover even if I destroyed superblock
of /dev/ad6s1d. Later I realized I have by mistake only backed up the
beginning 4.0MB of /dev/ad6
Is it possible now for me to recover the data in /var/
(especially /var/backups)? Thanks a lot in advance!
P.S. I am being really unlucky because this harddisk is mostly used for
backup purpose and thus is not backed up (who back up the back-up
harddisk?) and when I today failed to mount this harddisk, 0.5 hour
later the server being backed up by it has got an accident and need the
backup data to recover.
More information about the freebsd-questions
mailing list