Help deriving a corrupted disklabel
illusion65 at gmail.com
Thu Dec 1 02:15:28 GMT 2005
One of my disks has 3 active partitions: FreeBSD 5.4-RC3, NTFS
(not-bootable), and FreeBSD 6.0-RELEASE.
I developed problems while installing FreeBSD 6.0. Installation went as
well as can be expected using sysinstall (no difficulty other than pulling
packages from the CD), but when I rebooted, nothing was bootable on that
disk. I verified that the boot record (using boot0) seems okay: slice table
is fine (40G, 80G, 40G, and 40G unused on 200G drive).
Using bsdlabel, I confirmed that slice 3 (FreeBSD 6) is fine, but for some
reason I'm not concerned with now, is unbootable.
PROBLEM: bsdlabel showed me that slice 1 (FreeBSD 5.4) is damaged and only
partition c existed and was incorrect. I do not have / cannot find a
written copy of my disklabel for that disk (a good suggestion to *strongly
emphasize* in the installation manual for newbies!). I did recall that
ad1s1a ('/') was 512M, so I was able to write a label and mount that
partition from a "Fixit" shell.
QUESTIONS: How can I rederive the remaining disklabel for that disk? Could
a copy possibly be stored somewhere on root if I didn't do it myself when
building the system?
I have not tried to boot from that root partition. Trying several possible
labels has resulted in "incorrect super block" errors for the partitions
after 'a'. Random guessing will be very tedious.
My research has indicated that I could binary grep the raw ad1s1c partition
to locate the magic numbers for the super blocks and derive the partitions
from that information. I even found a little 'c' language program Peter
Dufault posted 11 years ago on this list to locate magic numbers.
My hope is that in 11 years of development, FreeBSD would have created a
clever tool to aid this process! I've found enough entries in these lists
to think that the effort would be justified and much appreciated. If there
is no tool, can someone tell me the value of FS_UFS2_MAGIC? I presume
that's what I should search for - it's a UFS2 filesystem. Having only a
"Fixit" shell is somewhat limiting.
More information about the freebsd-questions