webdevqa.jp.net

Fuseファイルシステムタイプをmount(8)とfstabに登録する方法は?

小さなFuseベースのファイルシステムを作成しましたが、不足しているのは、fstab(5)に登録して、システムの起動時に自動マウントするか、mount /srv/virtual-dbだけで手動でマウントすることだけです。どうすればこれを達成できますか?

いくつかのinitスクリプトから/usr/bin/vdbfs.py /srv/virtual-dbを実行することはできますが、それは正確にはきれいではありません。

これはプログラミングの問題ではないかもしれないので申し訳ありませんが、パッケージ化と展開はまだプログラマーの仕事であるため、非常に関連性があります。

31
drdaeman

一般に、実行可能ファイルmount.fstypeを作成することにより、新しいマウントファイルシステムタイプを「登録」します。

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

vdbfs.pymountっぽい引数(つまりdev path [-o opts])を取る場合、mount -t vdbfsで、vdbfsfstabの3番目のフィールドとして使用します。働くでしょう。そうでない場合は、その形式の引数を取り、それらをvdbfs.pyが取るものにマップするラッパーを作成できます。

Fuseはmount.Fuse実行可能ファイルもインストールする必要があります。 mount.Fuse 'vdbfs.py#dev' path -o optsが続行され、vdbfs.py dev path -o optsが呼び出されます。その場合、ファイルシステムタイプとしてFuseを使用し、デバイスの前にvdbfs.py#を付けることができます。

32
ephemient

したがって、ephemientの答えを明確にするために、2つのオプションがあります。

  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を使用した手動マウントに関しては、userオプションとnoautoオプションが関連しており、Fuse自体によって完全にサポートされているため、必要はありません。それらを自分で実装します。 userオプションを使用すると、「Fuse」グループのメンバーである非特権ユーザーがmountコマンドを使用してファイルシステムをマウントでき、noautoはファイルシステムに自動的にマウントしないように指示します。起動時にマウントします。 noautoを指定しない場合、自動的にマウントされます。

19
ejm

Fuseファイルシステムタイプを使用できます。以下は私のシステムで動作します:

smbnetfs    /media/netbios    Fuse    defaults,allow_other    0    0

もう一つの例:

sshfs#[email protected]:/    /mnt    Fuse    user,noauto    0    0
1
Max Tsepkov