以前環境構築したPXEサーバーですが、なかなかPXEブート出来ないのでステータスを確認したところ、xinetd.serviceがたくさんエラーを吐いておりました。
root@local:~# systemctl status -l xinetd.service
● xinetd.service - LSB: Starts or stops the xinetd daemon.
Loaded: loaded (/etc/init.d/xinetd)
Active: active (running) since 月 2016-01-04 23:42:23 JST; 1 months 0 days ago
CGroup: /system.slice/xinetd.service
└─496 /usr/sbin/xinetd -pidfile /run/xinetd.pid -stayalive -inetd_compat -inetd_ipv62月 04 21:20:45 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:20:50 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:20:56 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:21:04 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:21:12 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:21:23 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:21:35 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:21:49 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:22:03 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
2月 04 21:22:17 conoha.local.tooyama.org xinetd[496]: service tftp, recvfrom: Resource temporarily unavailable (errno = 11)
検索したらズバリのものがヒット。どうやらDebianのカーネルパッチのバグで、同じパッチが当たっているUbuntu Trustyでも同じ問題が発生するようです。
- [Bug 1527902] Re: 3.13.0-71: IPv6 UDP DNS packets are not received : Mailing list archive : kernel-packages team in Launchpad
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808293
[2/4 21:59 追記]
Ubuntuの場合は直近のカーネルは削除されず保持されているので、この問題を解決するにはひとつ前のカーネルでブートしなおせば解決できるのだとか。
一方、Debianは古いカーネルを新しいカーネルで上書きしてしまうのでそういった芸当ができません。そこで次のようにダウングレード(という名の上書き)をしてしまいました。再起動後何が起こったかはご存じの通り。起動しなくなりました。
とりあえず手持ちのDebianのDVDイメージでレスキューブートして、/bootにあるファイルを下記のようにリネームして再起動したらDebianは復旧しました。
initrd.img → initrd.img.old2
vmlinux → vmlinux.old2
initrd.img.old → initrd.img #Kernelのダウングレード前のinitrd.img
vmlinux.old → vmlinux #Kernelのダウングレード前のvmlinux
起動した後、「apt-get upgrade」で元のカーネルバージョンに戻しておきます。
ただ、一向にPXEブートはうまくいきません。 先のバグはIPv6のUDPがなんかおかしいとのことだったので、次を参考に
IPv4 flagを立てて「systemctl restart xinetd」を実行したところ、TFTPによるファイルのダウンロードができるようになりました。
$ tftp 192.168.1.6
tftp> get version.info
Received 60 bytes in 0.0 seconds
PXEブートもうまくいって、PXEインストーラー画面が出るようになりました。
ちなみにserver_argsに指定した-vは、ログを詳細に出すだけなので関係ありません。重要なのはflags = IPv4だと思います。
# vi /etc/xinetd.d/tftp
...
server_args = -v -s /var/lib/tftpboot
flags = IPv4
以前書いた記事は修正しておきたいと思います。