fuse メモ
fuse で自由にファイルシステムが作れるらしいのでやってみた。
http://fuse.sourceforge.net/
debian(5.0.4) に入れたかった。example の hello world のコンパイルして実行する。
//コンパイル環境を作るのが面倒だったので、 gvfs への guild-dep で入れた(邪道) #apt-get build-dep gvfs-fuse //fusermountとかのユーティリティが入らないので追加で入れる #apt-get install fuse-utils //fuse本体の読み込み #modprobe fuse //fuseのソースを入れた場所に移動 #cd /home/rti/fuse-2.8.3/example //hello.c をコンパイル #gcc -Wall `pkg-config fuse --cflags --libs` hello.c -o hello //テスト用のディレクトリを作る #mkdir /tmp/fuse //そのディレクトリにアタッチする #./hello /tmp/fuse //動作確認その1 ls #ls -l /tmp/fuse total 0 -r--r--r-- 1 root root 13 Jan 1 1970 hello //動作確認その2 cat #cat /tmp/fuse/hello Hello World! //使わないので umount 見たいな感じで開放する #fusermount -u /tmp/fuse //テスト用のディレクトリ削除 #rmdir /tmp/fuse
最初アタッチするディレクトリを、ディレクトリではなくファイルで作っていてはまった。
ひどいや。
//ダメな例 //間違えてファイルで作った #: > /tmp/fuse //アタッチ //問題なくアタッチできてしまう #./hello /tmp/fuse //lsしたらエラーになる #ls /tmp/hello ls: cannot access /tmp/hello: Input/output error //catしたらエラーになる #cat /tmp/hello cat: /tmp/hello: Input/output error //仕方ないので開放 fusermount -u /tmp/fuse //テスト用ファイル削除 //よい子のみんなは ファイルではなくディレクトリでやろうw rm /tmp/fuse