Debian

Atmel Sama5d2 xplained 上的 NFS 引導失敗

  • April 19, 2018

我目前正在嘗試從 NFS 伺服器啟動 Atmel Sama5d2 Xplained 評估板。我正在執行具有 4.9.0 核心版本的 Debian 9,並且 nfs 伺服器是 nfs-kernel-server。

這是NFS伺服器配置

/srv/tftp/xplained/rootfs *(rw,nohide,no_subtree_check,async,no_root_squash)

我的 NFS 伺服器成功導出了我的文件夾,因為我能夠通過網路將它們掛載到另一個 linux 上。

我還能夠從我的 tftp 伺服器檢索核心映像和 dtb 文件。

但是,當核心啟動時,它無法從導出的 rootfs 啟動並返回以下錯誤

VFS: Unable to mount root fs via NFS, trying floppy. 
List of all partitions: 
0100            8192 ram0  (driver?) 
0101            8192 ram1  (driver?) 
0102            8192 ram2  (driver?) 
0103            8192 ram3  (driver?) 
b300         3833856 mmcblk0  driver: mmcblk   
 b301          112172 mmcblk0p1 00000000-01   
 b302         3721550 mmcblk0p2 00000000-02 
b318             128 mmcblk0rpmb  (driver?) 
b310 1024 mmcblk0boot1  (driver?) 
b308            1024 mmcblk0boot0  (driver?) 
No filesystem could mount root, tried:  nfs

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

這是我的核心參數

ip=dhcp console=ttyS0,115200 earlyprintk root=/dev/nfs rootfstype=nfs rw nfsroot=<server_ip>:/srv/tftp/xplained/rootfs

以及關於 nfs-moutd 服務的 dmesg

oct. 09 18:10:13 PC325 rpc.mountd[566]: authenticated mount request from 192.168.128.158:788 for /srv/tftp/xplained/rootfs (/srv/tftp/xplained/rootfs)
oct. 09 18:10:18 PC325 rpc.mountd[566]: authenticated mount request from 192.168.128.158:704 for /srv/tftp/xplained/rootfs (/srv/tftp/xplained/rootfs)
oct. 09 18:10:28 PC325 rpc.mountd[566]: authenticated mount request from 192.168.128.158:796 for /srv/tftp/xplained/rootfs (/srv/tftp/xplained/rootfs)
oct. 09 18:10:48 PC325 rpc.mountd[566]: authenticated mount request from 192.168.128.158:762 for /srv/tftp/xplained/rootfs (/srv/tftp/xplained/rootfs)

我嘗試了很多我在網際網路上找到的東西,比如檢查防火牆規則、鎖定埠等……但它仍然不起作用。最奇怪的是,我在 Ubuntu 機器上嘗試過使用相同的數據包並且它工作正常。

我還嘗試了全新的 Debian 安裝,它也有效。

我想了解為什麼它不能在我的開發電腦上執行。可能如何解決它

感謝@alanSchmitz,經過一番調查,我終於找到了問題的根源。

顯然我必須通過在核心引導參數上指定它來強制在uboot中使用NFS v3,如下所示root=/dev/nfs rootfstype=nfs rw nfsroot=<server_ip>:/srv/tftp/xplained/rootfs,vers=3

我試圖在伺服器端解決這個問題,但我找不到如何強制使用 NFS v3。

如果我發現如何在伺服器端強制使用 NFS v3 來安裝共享,我會更新我的答案。

我在執行 Manjaro Linux(基於 Arch)時遇到了同樣的問題。在 ubuntu 14.04 上它可以工作,但不能在 manjaro 上工作。執行wireshark捕穫後,問題就暴露了。nfs 伺服器響應“接受狀態:遠端不支持版本 # (2)”。我在我的 nfs 伺服器上的 /etc/nfs.conf 中啟用了版本 2,如下所示:

[nfsd]
# debug=0
# threads=8
# host=
# port=0
# grace-time=90
# lease-time=90
# udp=y
# tcp=y
vers2=y
vers3=y
vers4=y
vers4.0=y
vers4.1=y
vers4.2=y
# rdma=n
#

這對我有用。

引用自:https://unix.stackexchange.com/questions/397059