如何使用mount(8)和fstab注册FUSE文件系统types?

我已经写了一个小型的基于FUSE的文件系统,现在唯一缺less的部分就是我想用fstab(5)来注册它,以便在系统启动时自动挂载它,并且/或者用mount /srv/virtual-db 。 我怎样才能做到这一点?

我知道,我可以从一些初始化脚本运行/usr/bin/vdbfs.py /srv/virtual-db ,但这并不完美。

我很抱歉,因为这可能不完全是一个编程问题,但它是高度相关的,因为打包和部署仍然是程序员的工作。

Solutions Collecting From Web of "如何使用mount(8)和fstab注册FUSE文件系统types?"

通常,通过创建一个可执行的mount.fstype “注册”一个新的mount文件系统类型。

 $ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs

如果vdbfs.py mount -ish参数(例如dev path [-o opts] ),那么mount -t vdbfs和使用vdbfs作为fstab的第三个字段将会起作用。 如果没有的话,你可以创建一个包装器,它包含了这个形式的参数,并将它们映射到vdbfs.py所需的任何东西。

FUSE还应该安装一个mount.fuse可执行文件; mount.fuse 'vdbfs.py#dev' path -o opts将继续并调用vdbfs.py dev path -o opts 。 在这种情况下,可以使用fuse作为文件系统类型,并在vdbfs.py#前缀。

所以为了澄清ephemient的答案,有两个选择:

  1. 像这样编辑/etc/fstab

     # <file system> <mount point> <type> <options> <dump> <pass> # ... vdbfs.py#<dev> /srv/virtual-db fuse user,<other-opts> 0 0 

    要么,

  2. 创建一个前缀为“mount”的可执行文件。 (确保它可以使用与mount类似的选项):

     $ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs 

    并编辑/etc/fstab像这样:

     # <file system> <mount point> <type> <options> <dump> <pass> # ... <dev> /srv/virtual-db vdbfs.py user,<other-opts> 0 0 

关于在启动时自动安装和用安装mount手动安装, usernoauto选项是相关的,并且由保险丝本身完全支持,所以您不必自己实施它们。 user选项允许属于“保险丝”组的非优先用户使用mount命令安装文件系统, noauto指示文件系统不要在启动时自动安装。 如果你没有指定noauto ,它会自动挂载。

你可以使用熔丝文件系统类型。 以下在我的系统上工作:

 smbnetfs /media/netbios fuse defaults,allow_other 0 0 

另一个例子:

 sshfs#user@example.com:/ /mnt fuse user,noauto 0 0