FUSE 是個好東西, 能夠用在特殊的領域裏面來實現本身的虛擬文件系統。函數
FUSE的下載與安裝 :spa
從fuse官網下載最新安裝包:http://sourceforge.net/projects/fuse/files/fuse-2.X/.net
安裝很簡單:blog
./configure進程
makeip
make install(注意:這一步要在root用戶模式下作)rem
掛載 fuse 虛擬文件系統:get
modprobe fuseit
查看fuse是否掛載成功:io
lsmod|grep fuse 執行該命令後會輸出
[root@localhost fuse]# lsmod | grep fuse
fuse 49237 2
證實掛載成功
下來就是使用的問題了, 呵呵。
安裝完fuse後,其子文件夾example下有一些作好的文件系統實例,教你掛載和使用該文件系統,推薦使用 fusexmp_fh.c 這個例子
由於他包括了全部的文件操做相關的映射。
編譯 fusexmp_fh.c 須要用下面的編譯命令:
gcc -Wall `pkg-config fuse --cflags --libs` -lulockmgr fusexmp_fh.c -o fusexmp_fh.exe
編譯後生成 fusexmp_fh.exe 可執行文件
在 /mnt 目錄下面創建文件夾 fuse
cd /mnt
mkdir fuse
而後到 fusexmp_fh.exe 目錄去執行
./fusexmp_fh.exe /mnt/fuse -d
便可啓動虛擬文件系統, 這個時候執行
df 命令,能夠看到 虛擬文件系統掛載出來了
[root@localhost example]# df
fuse 6824296 3499688 2972352 55% /mnt/fuse
這個時候你進入 /mnt/fuse 目錄
執行 ls , 便可看到映射的文件內容, 在這個目錄下面所做的文件操做,都會調用到 fusexmp_fh.exe 這個進程裏面註冊的
文件操做函數。
註冊句柄以下:
好比你執行 mkdir xxx , 則會調用到 fusexmp_fh.exe 進程的 int xmp_mkdir(const char *path, mode_t mode) 這個函數。
你能夠修改這個函數的實現, 在裏面添加你本身的信息。
當出現下面的錯誤提示:
fuse: bad mount point `/mnt/fuse': Transport endpoint is not connected
你只須要執行
umount -l /mnt/fuse 命令便可化解上面的錯誤, 具體緣由就不用說了吧, umount 這麼明顯。
咱們此次使用 fuse 使用, 主要是要實現一個雲的功能。
http://blog.csdn.net/langeldep/article/details/6221112