MirBSD manpage: scan_ffs(8)

SCAN_FFS(8)              BSD System Manager's Manual               SCAN_FFS(8)


     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 'diskla-
     bel -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 parti-
     tions 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 usu-
             ally 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 magni-
             tude faster. However, sometimes being smart is too good for its
             own good, especially if your disk has had a different layout pre-
             viously, 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 non-
             UFS/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

     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 (look in /var/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

     Last but certainly not least, we wish you good luck. The UFS/FFS filesys-
     tems 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.




     It is not perfect, and could do a lot more things with date/time informa-
     tion in the superblocks it finds, but this program has saved more than
     one butt, more than once.

MirBSD #10-current             January 31, 1998                              1

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.