小さなFuseベースのファイルシステムを作成しましたが、不足しているのは、fstab(5)に登録して、システムの起動時に自動マウントするか、mount /srv/virtual-db
だけで手動でマウントすることだけです。どうすればこれを達成できますか?
いくつかのinitスクリプトから/usr/bin/vdbfs.py /srv/virtual-db
を実行することはできますが、それは正確にはきれいではありません。
これはプログラミングの問題ではないかもしれないので申し訳ありませんが、パッケージ化と展開はまだプログラマーの仕事であるため、非常に関連性があります。
一般に、実行可能ファイルmount.fstype
を作成することにより、新しいマウントファイルシステムタイプを「登録」します。
$ ln -s /usr/bin/vdbfs.py /usr/sbin/mount.vdbfs
vdbfs.py
がmount
っぽい引数(つまりdev path [-o opts]
)を取る場合、mount -t vdbfs
で、vdbfs
をfstab
の3番目のフィールドとして使用します。働くでしょう。そうでない場合は、その形式の引数を取り、それらをvdbfs.py
が取るものにマップするラッパーを作成できます。
Fuseはmount.Fuse
実行可能ファイルもインストールする必要があります。 mount.Fuse 'vdbfs.py#dev' path -o opts
が続行され、vdbfs.py dev path -o opts
が呼び出されます。その場合、ファイルシステムタイプとしてFuse
を使用し、デバイスの前にvdbfs.py#
を付けることができます。
したがって、ephemientの答えを明確にするために、2つのオプションがあります。
編集/etc/fstab
このような:
# <file system> <mount point> <type> <options> <dump> <pass>
# ...
vdbfs.py#<dev> /srv/virtual-db Fuse user,<other-opts> 0 0
または、
「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
を使用した手動マウントに関しては、user
オプションとnoauto
オプションが関連しており、Fuse自体によって完全にサポートされているため、必要はありません。それらを自分で実装します。 user
オプションを使用すると、「Fuse」グループのメンバーである非特権ユーザーがmount
コマンドを使用してファイルシステムをマウントでき、noauto
はファイルシステムに自動的にマウントしないように指示します。起動時にマウントします。 noauto
を指定しない場合、自動的にマウントされます。
Fuseファイルシステムタイプを使用できます。以下は私のシステムで動作します:
smbnetfs /media/netbios Fuse defaults,allow_other 0 0
もう一つの例:
sshfs#[email protected]:/ /mnt Fuse user,noauto 0 0