最近學習NFS文件系統的使用,Ubuntu上配置好了,想和Win7共享數據,所以網上搜到了這篇文章。借花獻佛,跟大家共享一下:
http://www.2cto.com/os/201207/139132.html
win7下設置掛載Linux服務器nfs共享的數據
win7下增加了很多有用的功能,只是默認沒有開啟而已,今天簡述下一個WIN7下的NFS功能,通過這個功能,可以讓win7共享Linux 下面的磁盤分區或者目錄數據,這個功能原理只能通過samba或者ftp來實現,並且配置復雜,而現在通過在win7下開啟NFS功能,只需一分鍾時間即 可完成配置,簡單方便。
1:首先是在linux下設置nfs數據共享
www.2cto.com
[root@localhost ~]# more /etc/exports
/app 192.168.12.134(rw,no_root_squash)
然后執行:
[root@localhost ~]# exportfs -av
exporting 192.168.12.134:/app
2:在win7下開啟nfs功能,如圖:

3:接着開始在win7進行掛載操作,如下圖:
此時就能看到掛載上來的磁盤分區了:如圖:
4:修改win7對nfs分區只讀屬性Win7 NFS客戶端使用mount命令掛載NFS服務之后,文件系統對Win7只讀,無法寫入文件,無法新建文件夾,此時使用mount命令可以查看到如下狀態:

可以看到UID=-2由於在存儲設備上共享出來的NFS文件系統歸屬於root權限,並且無法修改該所屬用戶,而Windows通過UID=-2的用戶去寫,肯定寫不進去。
解決辦法就是讓Win7在掛載NFS的時候將UID和GID改成0即可:打開注冊表:HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\ClientForNFS\CurrentVersion\Default,
增加兩 項:AnonymousUid,AnonymousGid,如圖:

重新啟動計算機,重新mount即可。此時就能在win7下對nfs文件系統進行讀寫操作了,跟本地磁盤一樣。
查看mount屬性,如下:

mount命令在win7下的具體用法如下:
如果要去掉nfs共享,只需只需卸載命令即可,umount用法如下:
作者 南非螞蟻
具體到我的電腦上就是:
mount \\10.11.52.249\windows\nfs_root H:
卸載時使用: umount
可能會遇到的問題:
這兩天在搭建嵌入式開發環境,配置好NFS服務器后,遇到了一個很糾結的錯誤
使用 mount -t nfs 127.0.0.1:/home/lzgonline/rootfs /mnt 和 mount -t nfs 192.168.1.9:/home/lzgonline/rootfs /mnt 本機掛載nfs則沒有問題,然而使用 mount -t nfs 192.168.3.12:/home/lzgonline/rootfs /mnt 時卻出現了問題,導致開發板無法通過nfs掛載啟動,其中192.128.3.12 和 192.128.1.9(即nfs服務器)之間建立了映射(DMZ)關系。
mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs
百度、谷歌了很久,大部分都說是權限設置有問題,其實文件夾權限都設為777了,權限上都沒問題,hosts.deny和hosts.allow都保留默認設置,防火牆也關了,該設置的都設置了,但還是被拒絕,很是郁悶,就在一籌莫展的時候,通過查看一些linux技術論壇后逐漸找到了問題所在。
首先使用命令查看出錯日志文件
[root@lzgonline init.d]# cat /var/log/messages | grep mount
Jun 29 00:49:04 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1689
Jun 29 00:51:02 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1710
Jun 29 01:02:17 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 1916
Jun 29 01:09:51 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 2157
Jun 29 01:17:02 lzgonline mountd[1644]: refused mount request from 192.168.3.12 for /home/lzgonline/rootfs (/home/lzgonline/rootfs): illegal port 2318
從出錯日志可以看出,mount.nfs: access denied by server while mounting 192.168.3.12:/home/lzgonline/rootfs 被拒絕的原因是因為使用了非法端口,功夫總沒白費,終於在一個linux技術論壇上找到了答案:
I googled and found that since the port is over 1024 I needed to add the "insecure" option to the relevant line in /etc/exports on the server. Once I did that (and ran exportfs -r), the mount -a on the client worked.
//如果端口號大於1024,則需要將 insecure 選項加入到配置文件(/etc/exports)相關選項中mount客戶端才能正常工作:
查看 exports 手冊中關於 secure 選項說明也發現確實如此
[root@lzgonline init.d]# man exports
secure,This option requires that requests originate on an Internet port less than IPPORT_RESERVED (1024). This option is on by default. To turn it off, specify insecure.
//secure 選項要求mount客戶端請求源端口小於1024(然而在使用 NAT 網絡地址轉換時端口一般總是大於1024的),默認情況下是開啟這個選項的,如果要禁止這個選項,則使用 insecure 標識
修改配置文件/etc/exports,加入 insecure 選項
/home/lzgonline/rootfs *(insecure,rw,async,no_root_squash)
保存退出
然后重啟nfs服務:service nfs restart
然后問題就解決了