ubuntu下搭建nfs服務器

1.1???????搭建NFS服務器

???????NFS(Network FileSystem,網絡文件系統)是由SUN公司發展,并于1984年推出的技術,用于在不同機器,不同操作系統之間通過網絡互相分享各自的文件。NFS設計之初就是為了在不同的系統間使用,所以它的通訊協議設計與主機及操作系統無關。

NFS分服務器和客戶機,當使用遠端文件時只要用mount命令就可把遠端NFS服務器上的文件系統掛載在本地文件系統之下,操作遠程文件與操作本地文件沒有不同。NFS服務器所共享文件或目錄記錄在/etc/exports文件中。

???????嵌入式Linux開發中,會經常使用NFS,目標系統通常作為NFS客戶機使用,Linux主機作為NFS服務器。在目標系統上通過NFS,將服務器的NFS共享目錄掛載到本地,可以直接運行服務器上的文件。在調試系統驅動模塊以及應用程序,NFS都是十分必要的,并且Linux還支持NFS根文件系統,能直接從遠程NFS root啟動系統,這對嵌入式Linux根文件系統裁剪和集成也是十分有必要的。

安裝nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

設置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS服務器目錄。?????一個NFS服務器可以共享多個NFS目錄,在/etc/exports文件中,每個目錄的設置獨占一行,編寫格式如下:

NFS共享目錄路徑????客戶機IP或者名稱(參數1,參數2,...,參數n)

???????說明:

q??NFS共享目錄可以是主機的任何一個目錄,為了方便使用,最好將權限設置為777。

q??客戶機指的是可以訪問共享目錄的客戶機的IP或者主機名,可以是指定的IP或者主機名。如果使用IP,可以使用通配符。假如指定IP為192.168.1.x的客戶機可以訪問,可以寫成192.168.1.*,如果設置為*,則表示任何客戶機都可以訪問。

q??訪問參數可以是一個,也可以是多個,用逗號分開。可能的參數和說明如?REF _Ref286733518 \h?表?5.108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000?所列。

表??STYLEREF 1 \s?5.?SEQ?表?\* ARABIC \s 1?1?NFS設置參數和說明

參數

說明

ro

只讀訪問

rw

讀寫訪問

sync

所有數據在請求時寫入共享

async

nfs在寫入數據前可以響應請求

secure

nfs通過1024以下的安全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

?

假定NFS共享目錄是/home/ky/nfs,允許所有客戶機訪問,/etc/exports文件可寫為:

/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)

啟動NFS服務器。啟動portmap(如果有必要)和nfs-kernel-server服務:

ky@ubuntu:~$?sudo service portmap start

ky@ubuntu:~$?sudo service nfs-kernel-server start

???????本地驗證NFS服務器。將NFS服務器目錄掛載到本機另外一個目錄下,可以看到掛載點目錄下可以看到NFS服務器目錄中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$?sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用開發板驗證NFS服務器是否可用。啟動開發板,進入系統,配置好開發板的IP地址后,用mount命令掛載NFS服務器的NFS目錄:

target#?mount??-t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

???????掛載成功后,可以在開發板的/mnt目錄下看到NFS服務器上的文件。

說明,使用開發板與虛擬機安裝的客戶系統進行NFS掛載,需要將虛擬網卡設置為Bridged模式,并建議使用靜態IP地址。

???????如果在使用中需要增加新的NFS共享目錄,直接修改/etc/exports文件即可。修改該文件后,可以不用重啟NFS服務,用exportfs命令讀取/etc/exports文件,重新共享輸出。exportfs命令語法如下:

???exportfs??[-aruv]

???????選項說明:

-a:全部掛載(或卸載) /etc/exports的設置;

-r:重新掛載/etc/exports的設置;

-u:卸載某一個目錄;

-v:在輸出的時候,把共享目錄顯示出來。

???????如果NFS已經啟動,修改了/etc/exports文件,執行如下命令,新的設置即可生效:

ky@ubuntu:~$?exportfs -ra

/etc/exports 可以如下配置:

/home/xuxuequan/AmBaWork/sharenfs *(rw,sync,no_root_squash,no_subtree_check)


可在修改/etc/exports后,不重啟nfs service,直接執行如下指令,使得修改立即生效

exportfs -rv


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383454.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383454.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383454.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uboot的常用命令詳解

U-Boot還提供了更加詳細的命令幫助,通過help命令還可以查看每個命令的參數說明。由于開發過程的需要,有必要先把U-Boot命令的用法弄清楚。接下來,根據每一條命令的幫助信息,解釋一下這些命令的功能和參數。 進入uboot的命令行提示…

minicom 串口信息過長分行顯示

有時串口輸出一行信息比較多,一行顯示不下,這個時候,我們可以用minicom的本身組合鍵設置,超過一行時自動卷起。 minicom 組合鍵的用法是:先按CtrlA組合鍵,然后松開這兩個鍵,再按Z鍵。另外還有一…

uboot 的 bootcmd 和bootargs參數詳解

U-boot的環境變量值得注意的有兩個: bootcmd 和bootargs。 bootargsconsolettyS1,115200n8 mem32M0x0 ispmem8M0x2000000 rmem24M0x2800000 init/linuxrc rootfstypesquashfs root/dev/mtdblock2 rw mtdpartsjz_sfc:256k(boot),2560k(kernel),2048k(root),-(appfs) …

MTD和 uboot中的bootargs 下屬 mtdparts

MTD 設備是象閃存芯片、小型閃存卡、記憶棒等之類的設備,它們在嵌入式設備中的使用正在不斷增長。 MTD 驅動程序是在 Linux 下專門為嵌入式環境開發的新的一類驅動程序。相對于常規塊設備驅動程序,使用 MTD 驅動程序的主要優點在于 MTD 驅動程序是專門為…

Linux應用程序在內存中的地址布局

棧:局部變量(初始化的和未初始化的,但不包含局部靜態變量)、局部只讀變量(const)堆:動態分配的區域(如使用malloc函數申請的區域)BSS段:存儲未初始化的全局變…

比較zImage和uImage的區別

一、vmlinuz vmlinuz是可引導的、壓縮的內核。“vm”代表“Virtual Memory”。Linux 支持虛擬內存,不像老的操作系統比如DOS有640KB內存的限制。Linux能夠使用硬盤空間作為虛擬內存,因此得名“vm”。 vmlinuz的建立有兩種方式。一是編譯內核時通過“make…

編譯faac錯誤分析

編譯faac時遇到了以下的編譯錯誤: /home/xuxuequan/Ingenicwork/toolchain/mips-gcc472-glibc216-32bit/mips-linux-gnu/libc/usr/include/string.h:365:26: error:ambiguates old declaration const char* strcasestr(const char*, const char*) 解決方案&#x…

gcc與g++的區別

一:gcc與g比較 編譯c/c代碼的時候,有人用gcc,有人用g,于是各種說法都來了,譬如c代碼用gcc,而 c代碼用g,或者說編譯用gcc,鏈接用g,一時也不知哪個說法正確,如果…

交叉編譯openssl不修改Makefile的方法

網上流傳的方法都是要修改Makefile的cc值&#xff0c;我來說個不用修改的方法作者&#xff1a;帥得不敢出門 C哈哈堂<31843264>openssl 下載http://www.openssl.org/source/tar -xvf openssl-1.0.1c.tar.gzcd openssl-1.0.1c/CCarm-linux-gcc ./config no-asm shared -…

編譯boa過程記錄

boa是比較老的HTTP的本地Server&#xff0c;本文是針對0.94.13版本的編譯過程做出記錄 1.下載boa的程序包&#xff0c;本文的編譯是針對misp平臺的交叉編譯 2.在編譯之前&#xff0c;需要針對產品的文件系統和修改編譯時可能遇到的錯誤&#xff0c;修改相關的文件。 &#xff…

/dev/null 21 的作用

shell中可能經常能看到&#xff1a;>/dev/null 2>&1命令的結果可以通過%>的形式來定義輸出/dev/null 代表空設備文件> 代表重定向到哪里&#xff0c;例如&#xff1a;echo "123" > /home/123.txt1 表示stdout標準輸出&#xff0c;系統默認值是1&a…

移植wpa_supplicant 2.2問題

1.編譯libnl1.1問題 In file included from addr.c:28:0: ../include/netlink-local.h: In function __str2type: ../include/netlink-local.h:218:11: error: ULONG_MAX undeclared (first use in this function) ../include/netlink-local.h:218:11: note: each undeclared …

wpa_supplicant與wpa_cli之間通信過程

wpa_supplicant編譯&#xff1a; 1. wpa_supplicant/Android.mk : -- wpa_cli -- wpa_supplicant -- libwpa_client.so 2. hostapd/Android.mk : -- hostapd_cli -- hostapd 從通信層次上劃分&#xff0c;wpa_supplicant提供向上的控制接口 control interface&#xff0c;用于與…

Linux內核驅動之GPIO子系統(一)GPIO的使用

一 概述 Linux內核中gpio是最簡單&#xff0c;最常用的資源(和 interrupt ,dma,timer一樣)驅動程序&#xff0c;應用程序都能夠通過相應的接口使用gpio&#xff0c;gpio使用0&#xff5e;MAX_INT之間的整數標識&#xff0c;不能使用負數,gpio與硬件體系密切相關的,不過linux有一…

gpio_direction_output 與 gpio_set_value

gpio_set_value&#xff08;port_num,0/1&#xff09; 一般只是在這個GPIO口的寄存器上寫上某個值&#xff0c;至于這個端口是否設置為輸出&#xff0c;它就管不了&#xff01; 而gpio_direction_output &#xff08;port_num,0/1)&#xff0c;在某個GPIO口寫上某個值之后&…

內核ko模塊strip使用

編譯一個內核時&#xff0c;習慣性的在install目標下加了命令&#xff1a; $(STRIP) --strip-all --remove-section.note --remove-section.comment test.ko 結果在insmod test.ko時出現錯誤&#xff1a; test: module has no symbols (stripped?) .................. 上…

ubuntu下修復U盤只讀問題

1.通過mount指令查看u盤掛載的實際設備 /dev/sdb1 on /media/xuxuequan/0BEB-331A type vfat (rw,nosuid,nodev,uid1000,gid1000,shortnamemixed,dmask0077,utf81,showexec,flush,uhelperudisks2) 2.umount掛載點 umount /media/xuxuequan/0BEB-331A 3.fsck修復u盤設備 s…

mkfs.jffs2參數詳解

實例&#xff1a;mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x4000 --pad0x1000000 -s 0x200 -n mkfs.jffs2: Usage: mkfs.jffs2 [OPTIONS] Make a JFFS2 file system image from an existing directory tree Options: -p, --pad[SIZE] 用16進制來表示所要輸出檔案的大小&…

關于c語言字符串函數和一些內存函數的的簡介

關于c語言字符串函數和一些內存函數的的簡介 求字符串長度的函數 strlen函數介紹![在這里插入圖片描述](https://img-blog.csdnimg.cn/20190301142458376.jpg)注模擬實現 . [1 ]計數器方式 因為strlen 是求字符串長度的函數&#xff0c;所以不能改變字符串本身&#xff0c;所…

君正T20平臺生成jffs2格式rootfs

基于系統升級的考慮&#xff0c;這兩天在君正T20平臺上折騰如何生成jffs2 格式的rootfs。詳細的過程如下&#xff1a; 1.修改uboot中的分區參數&#xff1a; 修改為rootfs格式為jffs2的&#xff0c;且適當擴大rootfs分區大小。&#xff08;因jffs2的壓縮比不如只讀的squashfs…