NFS 根檔案系統

NFS 根檔案系統

我正在嘗試讓遠端根(和啟動)NFS 檔案系統正常工作,但我已經達到了知識的極限。我想知道是否有人能指出我正確的方向。

伺服器

TFTP 和 NFS 皆由執行 OpenWRT 19.07 的 Linksys WRT 1900 ACS 路由器提供服務。該設備還有一個外部 SSD,用作覆蓋根檔案系統。

https://openwrt.org/docs/guide-user/additional-software/extroot_configuration

每個客戶端在該目錄下都有一個根系統檔案(Ubuntu 21.04)

/nfs/exports/tftp/

和下面的啟動目錄

/tftp/tftpboot/

這是 /etc/exports 的內容:

/overlay/upper/nfs/exports/ *(rw,sync,no_subtree_check,no_root_squash) /overlay/upper/tftp/tftpboot/ *(rw,sync,no_subtree_check,no_root_squash)

如果我不加入 /overlay/upper/ 前綴,則無法掛載匯出的目錄

客戶

客戶端成功 PXE 啟動並載入作業系統(Ubuntu 21.04),我可以登入、SSH 等。

我在啟動過程中看到的第一個錯誤是:

[Failed] Failed to start Remount Root and Kernel File System

後來我看到

[Failed] Failed to mount /boot

但一旦登入 /boot 似乎已掛載。

這是來自客戶端的 fstab

10.1.0.1:/overlay/upper/nfs/exports/tftp/68fe97e5 / nfs defaults,_netdev,nfsvers=4.1,proto=tcp 0 0

10.1.0.1:/overlay/upper/tftp/tftpboot/68fe97e5 /boot nfs defaults,_netdev,nfsvers=4.1,proto=tcp 0 0

tmpfs /tmp tmpfs defaults 0 0

tmpfs /var/tmp tmpfs defaults 0 0

tmpfs /var/run tmpfs defaults 0 0

(抱歉格式問題)

和/boot/cmdline.txt

net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=10.1.0.1:/overlay/upper/nfs/exports/tftp/68fe97e5,tcp ip=dhcp elevator=deadline rootwait fixrtc rw cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory

當我查看 systemctl systemd-remount-fs.service 時,我看到這一行

May 27 15:10:08 rdg-clust-01 systemd-remount-fs[317]: mount.nfs: an incorrect mount option was specified

誰能指出我哪個選項錯了?

答案1

看看它在 KickStart、JumpStart 或舊 RoboInstaller 中的工作原理。 miniroot 核心映像由 TFTP 提供服務,檔案系統由 NFS 提供服務。這也是過去無磁碟 UNIX 用戶端的工作方式。我很確定您無法使用 TFTP 提供整個檔案系統。這不是協議的設計方式。

有許多線上文件可以幫助指導您成功配置無磁碟系統:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_storage_devices/setting-up-a-remote-diskless-system_managing-storage-devices

https://www.xmodulo.com/diskless-boot-linux-machine.html

http://mirror.internode.on.net/pub/ldp/en/Diskless-root-NFS-HOWTO/Diskless-root-NFS-HOWTO.pdf

相關內容