scan_ffs - find UFS/FFS partitions on a disk
scan_ffs [-lsv] [-b begin] [-e end] device
This is the life-saver of typos. If you have ever been
working too long,
and just happened to type 'disklabel -rw sd0 floppy', instead of 'disklabel
-rw fd0 floppy', you know what I am talking about.
This little program will take a raw disk device (which you
might have to
create) that covers the whole disk, and finds all probable
UFS/FFS partitions
on the disk. It has various options to make it go
faster, and to
print out information to help in the reconstruction of the
disklabel.
The options are as follows:
-l This will make scan_ffs print out a string looking
much like the
input to disklabel. With a little massaging, this
output can
usually be used in the disklabel edit.
-s This tells scan_ffs to be smart about skipping partitions (when
it thinks it found a valid one). By not scanning
partitions for
superblocks, the program completes a couple of orders of magnitude
faster. However, sometimes being smart is too
good for its
own good, especially if your disk has had a different layout previously,
or contains other non-UFS/FFS filesystems.
-v Tell scan_ffs to be verbose about what it is doing,
and what it
has found.
-b begin
Tell scan_ffs where to begin searching for filesystems. This
makes it easier to skip swap partitions, or other
large nonUFS/FFS
partitions.
-e end Ditto for telling scan_ffs where to stop.
device This specifies which device scan_ffs should use to
scan for
filesystems. Usually this device should cover the
whole disk in
question.
The basic operation of this program is as follows:
1. Panic. You usually do so anyways, so you might as
well get it over
with. Just don't do anything stupid. Panic away from
your machine.
Then relax, and see if the steps below won't
help you out.
2. Try to find your old disklabel by any other means possible. This
includes printouts, backups, screendumps, and whatever
other method
you can think of. The more information you have, the
better your
chances are in recovering the disklabel of the disk.
3. Create a disklabel on the affected disk, which covers
the whole
disk, and has at least one partition which covers the
whole disk.
As the ``c'' partition usually covers the whole disk
anyways, this
sounds like a good place to start.
4. Run scan_ffs over this partition. If you have any information
about the disklabel which used to exist on the disk,
keep that in
mind while scan_ffs spews out its things.
5. Use disklabel(8) to reconstruct the disklabel on the
affected disk,
using all the information you gathered from scan_ffs
and other
sources.
Last but certainly not least, we wish you good luck. The
UFS/FFS
filesystems are pretty sturdy. I've seen them reconstructed
after some
pretty weird and awesome fumbles. If you can't have backups, at least
have funky tools to help you out of a jam when they happen.
disklabel(8)
It is not perfect, and could do a lot more things with
date/time information
in the superblocks it finds, but this program has saved
more than
one butt, more than once.
OpenBSD 3.6 January 31, 1998
[ Back ] |