九、NFS服务器
一、搭建NFS服務器
1、安裝Ubuntu NFS服務
- – apt-get install nfs-kernel-server?
- 安裝過程彈出對話,選擇Y,回車繼續安裝,安裝完成后可以在輸入一次上面的命令, ,最后顯示如下圖,就安裝成功了。
? ? ? ? ? ? ? ? ? ?
如果安裝出現一下情況,請先用apt-get update 命令更新一下數據源的地址。
? ? ? ? ? ? ? ? ? ?
?2、配置
在Ubuntu上打開??vi /etc/exports。
– 最后一行添加/home/minilinux/ *(rw,sync,no_root_squash)
- ?/home/minilinux/:表示要共享的目錄,根據實際情況修改
- ?*:代表允許所有的網絡段訪問
- ?rw:是可讀寫權限
- ?ync:是資料同步寫入內存和硬盤
- ?no_root_squash:是Ubuntu nfs 客戶端分享目錄使用者的權限,如果客戶端使用的是root 用戶,那么對于該共享目錄而言,該客戶端就具有root 權限
- ro:只讀訪問
- async :nfs 在寫入數據前可以相應請求
- secure: nfs 通過以下的安全 TCP/IP 端口發送
- insecure: nfs 通過 1024 以上的端口發送
- wdelay:如果多個用戶要寫入 NFS 目錄,則歸組(默認)
- no_wdelay:如果多個用戶要寫入 NFS 目錄,則立即寫入,當使用 async 時,無需此設 置
- hide:在 nfs 共享目錄中不共享妻子目錄
- no_hide:共享 nfs 目錄的子目錄
- subtree_check:如果共享/usr/bin 之類的子目錄時,強制 nfs 檢查父目錄的權限(默認)
- no_subtree_check:和上面相對,不檢查父目錄權限
- all_squash:共享文件的 UID 和 GID 映射匿名用戶 anonymous,適合公用目錄
- no_all_squash:保留共享文件的 UID 和 GID(默認)
- root_squash root:用戶的所有請求映射成如 anonymous 用戶一樣的權限(默認)
- no_root_squash root:用戶具有根目錄的完全管理訪問權限
- anonuid=xxx:指定 nfs 服務器/etc/passwd 文件中匿名用戶多的 UID
- anongid=xxx:指定 nfs 服務器/etc/passwd 文件中匿名用戶的 GID
? ? ? ? ? ? ? ? ? ??
?3、重啟
? ?重啟portmap 服務
- ?/etc/init.d/portmap restart
? ?重啟nfs 服務
- ?/etc/init.d/nfs-kernel-server restart
? ? ? ? ? ? ? ? ? ? ? ??
4、測試NFS 服務器?
- 在虛擬機 Ubuntu 控制臺輸入“mount -t nfs localhost:/home/minilinux /mnt”命令,這個命令可以把/home/minilinux 掛載到/mnt 目錄下。
- 使用“df”命令查看是否掛載成功,如下圖就代表成功了。
? ? ? ? ? ? ? ? ? ??
?最后可以使用命令“umount /mnt”取消掛載 NFS。
二、在開發板上使用NFS共享目錄
1、修改最小系統ifconfig-eth0文件(可以重新修改Ubuntu上的最小系統,然后再燒寫鏡像到板子,也可以直接在板子的系統上修改)
? ? ? ? ?實現 nfs 文件系統可能需要修改 linux 最小文件系統的“etc/init.d/ifconfig-eth0”文 件。修改第八行為:if grep -q nfs /proc/mounts ; then。修改后如下圖?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
2、重新配置最小系統內核
1)拷貝內核到Ubuntu
? ? 還記得我們在《一、燒寫最小linux系統》里面燒寫的那個zImage文件嗎?iTOP-4412 開發板的內核默認沒有配置 NFS 功能,所以需要將 NFS 功能配置。我們去光盤的“06_源碼_uboot和kernel”目錄下,找到“iTop4412_Kernel_3.0_20200410.tar.gz”文件,如下
將文件拷貝到Ubuntu的?/home/topeet/android4.0目錄,沒有這個目錄可以自己創建,也可以換一個其他目錄,我跟著教程走。拷貝完后使用解壓命令:
tar vxf?iTop4412_Kernel_3.0_20200410.tar.gz解壓。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?2)配置缺省文件
我們進入iTop4412_Kernel_3.0目錄里,首先使用“ cp config_for_linux_scp_elite .config”(這里以精英版 SCP 核心板為例, 如果是其它開發板,則需要對應配置)命令配置缺省信息(注意:make zImage在編譯前,一定要配置好缺省文件,不然有可能會一直重啟哦)。
?3)配置內核
使用“make menuconfig” 命令打開配置。
進入Networking support
– 選中Networking options然后進入
? 選中IP: kernel level autoconfiguration
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? 進入File systems
– 選中Network File Systems然后進入
? 選中以下選項
? “NFS client support”,“NFS client support for NFS version 3”,“NFS client support for the NFSv3 ACL protocol extension”,“NFS client support for NFS version 4”,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?“NFS client support for NFSv4.1”,“Root file system onNFS”一共六個選項
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?? 保存退出? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 注釋掉網卡調試信息drivers/net/usb/dm9620.c,關鍵詞LEN_PLOAD,注釋掉三行打印信息。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
4)編譯內核和燒寫內核到開發板
? ? ? ? ? ?使用“make zImge”命令編譯內核,然后燒寫內核,具體燒寫看前面《一、燒寫最小linux系統》中的zImage,其他的可以不用動。還是用原來的。
?
3、在開發板上掛載共享目錄
1)確保開發板和Ubuntu正常通信
? ? ? ? ? ? ? ? ? ? ? ? ??
2)掛載
- 在開發板的/mnt 目錄下,使用命令“mkdir nfs”新建一個目錄,作為開發板的 NFS 同 步目錄
- 使用命令:“mount -t nfs -o nolock 192.168.0.104:/home/minilinux? /mnt/nfs”掛載。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
打開?vi /etc/exports,如下圖,我們中途把這個地址配置成linux目錄下,所以我們要重新給他修改過來,改完后記得重啟nfs(參考上面重啟)
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
重啟完后,我們在來到開發板的超級終端上,掛載,如下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
我們可以看到Ubuntu和開發板上都能打開這個共享的目錄。
?
?
?
總結
- 上一篇: 八、TFTP服务器搭建及应用
- 下一篇: 编程格式注意事项---后期慢慢补充