@tsutsuii ちょっとお聞きしたいのですが,NetBSD の nfs_boot のエラー番号の一覧ってどこにあります?
@orumin nfs_boot 専用の番号というものは無いはずで、番号が表示されているとしたら <sys/errno.h> https://nxr.netbsd.org/xref/src/sys/sys/errno.h の番号だと思います。が、strerror(3) を使わず番号が直接表示されているとするとたぶんブートローダーのメッセージで、ブートローダーの実装が妥当なエラーを返しているかという観点だと実装を見ないとわからないかもしれません。NFS boot が動かない原因を調べるのであれば、サーバー側で tcpdump したほうが早いという説もあります
@tsutsuii tcpdump なるほど,すっかりそれをわすれてました……。じつはその reply のあとに NetBSD で nfs server つくりなおしたらいけたので Linux の nfs server 実装との差異が問題かもしれないです。
@orumin nfs boot の場合、ブートローダーの devopen() で
・DHCPでのIP取得
・NFS mount
・実際のファイルオープン
まで一気に行われるので、どこでエラーになっているのかがわかりづらいという問題はあります。経験上はNFSよりDHCP設定のほうがNGの可能性はありそうですが NetBSD以外をサーバーにした経験はあまりないのでなんとも……
@tsutsuii DHCP の設定はほぼそのまま(next-server の IP を NetBSD の nfs server にしただけ)でちゃんと起動したので nfs の問題なのは確実で,nfs mount のときに portmap NFS, error=5 が出たのでなにか nfs server のほうがわるそうなのだとはおもいます……。
@tsutsuii ただ Linux の rpcbind.mountd のログには authenticated と出ててそこまでは正常に mount したときと同じログでした(Linux や macOS だとその表示が出てから正しくマウントされた
@tsutsuii 解決しました。最近の Linux だと TCP がデフォルトなのに対し NetBSD は UDP で NFS に繋げにいってたので portmap が「そんなさーびすねーよ」って返してしまってたのが原因でした……。
@orumin それも思い至っていたのですが書きそびれてました……。NetBSDも最近NFSでTCPがデフォルトになっててネットブートが云々、というログが流れていたような(最近ちゃんとチェックできていない)
@tsutsuii どこかで NetBSD の fstab の話でマウントオプションに tcp をというのも見かけました
@orumin userlandというか /etc/rc がマウントする時はそれでいいんですが、カーネルが NFS root を mount する時のオプションはカーネルビルド時のオプションでないと変えられなかったような気も
@tsutsuii ですよねー。今こちらでは nfs server のオプションのほうかえて対応してます