鈴木@葛飾区です。 その後時間が取れましたのでFreeBSDの/boot/pxebootの方にデバッグメッセー ジを仕込んで問題点を探ってみました。 その結果、pxebootがUDPでrpcの要求を送信して帰ってきた応答パケットの受 信がエラーになってしまって先に進まなかったことがわかりました。
/sys/boot/i386/libi386/pxe.c の readudp() で、PXEのROMに入っているAPI を使ってUDPの受信を行っているようなのですが、ここでUDPパケットのディス ティネーションアドレスとして自分のIPを指定していると宛先がそのIP以外の 場合エラーとなるようです。 udpread_p->dest_ip = h->myip.s_addr; ← ここ udpread_p->d_port = h->myport; udpread_p->buffer_size = len; udpread_p->buffer.segment = VTOPSEG(data_buffer); udpread_p->buffer.offset = VTOPOFF(data_buffer); 本来であればこれで問題無いものと思うのですが、IntelのPXEのドキュメント によると、これは指定しなければ何でも受け取るようですのでためしに指定し ない(udpread_p->dest_ip=の行を削除)ようにしてみたところ、NFSのマウント に成功して起動することができました。 ただ、疑問なのはNFSサーバがFreeBSDの場合元のコードでも問題無いことで、 根本的原因解明まではできませんでした。 クライアントのPXEのROMにもよるのかとも、思いますがとりえあえず SuperMicroのマザーボードオンボードのIntelのPXEとVMware ESXi6.0の仮想マ シン上のE1000アダプター(Intel=em)と、フレキシブルアダプター(AMD=lnc)の 3つで同じ結果でした。 バグレポートは出しておいたのですが、いまいち拙いレポートでうまく伝わる か、また、pxe + Linux NFSというあまり関心が高そうにも思えない点で改善 してもらえるか心配なところです。 (さっそく、レポートのカテゴリーを間違えたようで訂正されていました。。。) とりあえずはご報告まで。 From: zen-freebsd-us...@suzuki.que.ne.jp Subject: [FreeBSD-users-jp 95714] Re: Linuxサーバからのpxeboot Date: Fri, 01 Apr 2016 13:31:24 +0900 (JST) Message-ID: <20160401.133124.2289014485931258386.in...@x.inetd.co.jp> > 松元様 > > お返事ありがとうございます。鈴木@葛飾です。 > >> もしかしてSunRPCサービスが動いてないとか? > > rpc関連は動作しております。いちおう、どういう応答かはわかりませんが、 > 応答パケットも返っています。 > 動いていなかったときはicmp unreachable portを返していたのでその点は大 > 丈夫だと思います。 > > 起動したFreeBSDからはマウントできますので、pxebootの中の機能限定版NFS > クライアントとの相性が悪いのだと思いますが、サーバー側で合わせられない > ものかと思っております。 > --- > すずき > _______________________________________________ > freebsd-users-jp@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp > To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org" > _______________________________________________ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"