FUSEファイルシステムをマウントするためのカーネルインタフェースについては、 "linux/Documentation/filesystems/fuse.txt"(例えば、hereを参照)に記述されています。
ファイルシステムをマウントするのと同じように、mount(2)
を呼び出します。しかし、大きな違いはマウントオプションfd=n
を提供しなければならないということです。ここで、は、/dev/fuse
を開いて取得したファイルディスクリプタであり、カーネル要求に応答するファイルシステムを実装するユーザースペースプロセスによって使用されます。
特に、これはファイルシステムを実装するユーザースペースプログラムによって実際にマウントがで実行されることを意味します。具体的には、ほとんどのFUSEファイルシステムはlibfuse
を使用して、fuse_main
またはfuse_session_mount
を呼び出してマウントします(最終的にmount(2)
システムコールを含むmount.c
の内部関数fuse_mount_sys
を呼び出します)。
FUSEファイルシステムをプログラムでマウントする場合は、対応するFUSE実行可能ファイル(例:sshfs)をforkして実行し、マウントに代わってマウントするようにしてください。
実際には/sbin/mount.fuse
には何もマウントされていません。それはあなたがmount
コマンドラインユーティリティを介して、またはブート時の「/ etc/fstabの」内のエントリを経由してFUSEファイルシステムをマウントできるようにするだけのラッパーです。だからこそそこにコードを見つけることができません。上記の方法と同じ方法でFUSEファイルシステムをマウントし、問題のファイルシステムのFUSE実行ファイルを実行して実際のマウントを実行します。