我正在嘗試讓遠端根(和啟動)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://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