How to register FUSE filesystem type with mount(8) and fstab?
filesystems, fuse, gnu, linux, mount
Solution
In general, one "registers" a new mount filesystem type by creating an executable `mount.fstype`.
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
If `vdbfs.py` takes `mount`-ish arguments (i.e. `dev path [-o opts]`), then `mount -t vdbfs` and using `vdbfs` as the 3rd field in `fstab` will work. If it doesn't, you can create a wrapper which does take arguments of that form and maps them to whatever your `vdbfs.py` takes.
FUSE should also install a `mount.fuse` executable; `mount.fuse 'vdbfs.py#dev' path -o opts` will go on and call `vdbfs.py dev path -o opts`. In that case, you can use `fuse` as your filesystem type and prefix your device with `vdbfs.py#`.
Problem
I've written a small FUSE-based filesystem and now the only part's missing is that I want to register it with fstab(5) to auto-mount it on system startup and/or manually mount it with just `mount /srv/virtual-db`. How can I achieve this? I know, I can just run `/usr/bin/vdbfs.py /srv/virtual-db` from some init script, but that's not exactly pretty. I'm sorry because this may be not exactly a programming question, but it's highly related, as the packaging and deployment is still the programmer's job.