Projects : sysutils/ffs2recov

BSDforge

Following, are FreeBSD ports, or other *BSD related projects, hosted, or worked on at BSDforge in the sysutils category.

ffs2recov
ffs2recov is a utility to recover UFS2 filesystems
To quote the original author, Frank Mayhar:
This is the UFS2 version of ffsrecov, heavily (and I do mean heavily) based on John-Mark Gurney's program of the same name. It does basically the same thing, only it's a little more resistant to crashes caused by bad pointers, offsets and the like, and it does a little more than his did. Don't contact him for problems with this program, it's definitely my fault if it breaks.
This program is not ready for prime time. It has some shortfalls, it has a bunch of new options that are mostly undocumented and the manpage could stand to be rewritten. One good thing is that it now uses the libufs library, and is therefore not as dependent on carrying around low-level code.
On the other hand, it worked for me. Using this tool, I was able to recover almost all of a several-hundred-gigabyte file system that had been stomped by a misconfigured RAID controller. (That's why I wrote the thing in the first place, in fact.) With the right knowledge, and a lot of patience, it is possible to recover most or all of a trashed file system, at least if it's not too trashed.
I'm releasing it under the Berkeley two-clause license, in the hope that someone with more time will pick it up, polish it and make something a little more useful out of it.

It is my intention to further development on the original authors work.

Installation

Using the FreeBSD ports system:
cd /usr/ports/sysutils/ffs2recov make install clean
Using the FreeBSD pkg system:
pkg install sysutils/ffs2recov
TODO
  • make it cache cylinder groups instead of mmap'ing entire drive
  • make it search a device and regenerate a sane disklabel for it