Fork me on GitHub

Oh Noes!

I will not maintain the Linux VFS port anymore. Feel free to fork and improve it.

You'll find me working on HAMMER FUSE Port instead.

-- Daniel, December 2012

Porting the HAMMER File System to Linux

As part of a student project, I attempted to port the HAMMER File System from DragonFly BSD to Linux. The file system port implements the VFS operations getattr, read and readdir. This means you can mount a HAMMER block device on Linux, list its contents and read from a file. Write support and support for pseudo file systems are missing.

The port has prototype quality and was only tested on a virtual machine. Crashes were observed from time to time, so please do not use this code on a live machine.

Two interesting by-products were created: A port of the self-contained hammerread.c to Linux, and a Linux FUSE module based on the same code. Both tools are available from the downloads section.

Documentation

Community

Please refer to the HAMMER Filesystem Porting mailinglist and newsgroup.

Download

Linux VFS port

Download zip / tar or clone the project by running:

$ git clone git://github.com/dlorch/hammer-linux
$ make && insmod hammer.ko	

Hammerread Command-line Tool

This is a port of the hammerread.c command line tool to Linux and OS X [Usage].

Download zip / tar or clone the project by running:

$ git clone git://github.com/dlorch/hammer-linux
$ cd hammer-linux
$ git checkout -b hammerread origin/hammerread
$ make && ./hammerread
usage: hammerread <dev>

A FUSE module for the HAMMER filesystem

Requires Linux FUSE or MacFUSE [Usage].

Download zip / tar or clone the project by running:

$ git clone git://github.com/dlorch/hammer-linux
$ cd hammer-linux
$ git checkout -b fuse-hammer origin/fuse-hammer
$ make && ./fusehammer
HAMMER filesystem for FUSE (readonly)
Usage: ./fusehammer <dev> <mount_point> [<FUSE library options>]

Misc

hammerdisk.raw.bz2: raw dump of a hammer disk (Contents).