Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Dec 2003 21:07:20 -0800 (PST)
From:      "Scott I. Remick" <scott@sremick.net>
To:        FreeBSD <freebsd-questions@freebsd.org>
Subject:   Re: "Cannot find file system superblock" error - how to recover?
Message-ID:  <20031205050720.2485.qmail@web41103.mail.yahoo.com>
In-Reply-To: <20031204200348.5639640f.doublef@tele-kom.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

--- Sergey 'DoubleF' Zaharchenko <doublef@tele-kom.ru> wrote:
> I've got a (probably bad) idea. If you say that the partition was
> mounted as /data, then you could do a
> 
> # hd /dev/ad6s1 |grep /data
> 
> It should come up soon (the superblock should be close to the beginning
> of the drive, right?). This way you can at least figure out where your
> superblock lies (rounding the address of `/data' to 8K). Considering the
> above discussion, you can calculate the *correct* address of the `e'
> partition by subtracting 8K or 64K or 256K. See if it matches the one in
> the disklabel.
> 
> Of course, this is all possible only if your superblock isn't screwed
> enough to NOT contain `/data'.

Been running about a minute so far... nada. So I guess your assumption is
correct: the 1st superblock is destroyed (as fsck suggested when it barfed).

> Just a minute. Are you sure that the filesystem was newfs'd with the
> default parameters? If it were for me to newfs it, I would probably
> choose larger block&fragment sizes, as I would probably be storing large
> files. The superblock copy positions depend on the block/frag size. If
> you specify parameters different from those used for actually newfs'ing
> it the very first time, newfs -N will give you *incorrect* copy
> addresses!

Well, specifying custom block/frag sizes is a bit out of my customization
forte at the moment, and certainly at the time this drive went in. I'm 99%
positive I used sysinstall to set it up. I remember some quirks about the
sysinstall method, and also deciding that the by-hand method was
unnecessarily complicated for my needs. 

This has taught me that, should I ever choose to do that, that writing down
these custom values is CRITICAL.

Is there any way to positively identify a superblock location (say, using hd
| grep ) using known information? Just a random thought.

Although I'm treating this as a learning experience, I also REALLY REALLY
don't want to loose all that data. I do appreciate the help you've been
giving me. Thanks again. I'm choosing to remain optimistic. I used to
salvage lots of data from DOS/Windows partitions (still do) so learning the
tricks of the trade in my new OS of choice is important to me.

(PS: already pricing out external USB hard drive enclosures for making
backups of this drive in the future)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031205050720.2485.qmail>