FC2ブログ

[CentOS]PXEブート

DHCP/TFTP/PXEサーバ: 192.168.10.8
インストール対象: X230

X230のNICがPXE対応していたので、実験。

注意1: WIFIルータのDHCPサーバ機能はPXE対応してない。

自作のDHCPサーバと無線ルータのDHCPサーバを両方アクティブにしておいたら、
X230起動時、どうやら、無線ルータの方のDHCPサーバが応答しているらしく、うまくいかない。
無線ルータのDHCP機能はOFFにして進める。


注意2: DNSサーバ立ててないのでサーバ名はIPで書く。

注意3: dhcpd.confのfilenameはtftpのserver_argを起点として指定。

これが一番はまった。

Intel (R) Boot Agent GE v1.5.50
Copyright (C) 1997-2013, Intel Corporation

CLIENT MAC ADDR: xx xx xx xx xx xx GUID: xxxxxx xxxx xxxx xxxx
CLIENT IP: 192.168.10.51 MASK: 255.255.255.0 DHCP IP: 192.168.10.8
GATEWAY IP: 192.168.10.1
TFTP.
PXE-M0F: Exiting Intel Boot Agent.


PXEブートを試すと上記の内容で、ブート選択画面に戻ってしまう。

原因は以下の通り。

DHCPサーバのdhcpd.conf内には以下のように、pxelinux.0の場所を指定する。

filename "pxelinux.0";


そして、この指定方法は、「/etc/xinetd.d/tftp内のserver_argsから見た相対パス」となっている。
これに気付いて修正したら、無事PXEブートに成功した。

より詳しく書くと、tftpファイル内では以下の設定をしている。

server_args = -s -v /tftpboot/linux-install


さらに、上述した通り、dhcpd.conf内では、

filename "pxelinux.0";

としている。

この場合、pxelinux.0を置くべき場所は「/tftpboot/linux-install/pxelinux.0」が正解。
これに気付かず、だいぶはまった。

以下ページで「PXE での Linux ブートの大まかな流れ」が説明されていて、気づいた。
http://www.maruko2.com/mw/PXE%E3%83%96%E3%83%BC%E3%83%88%E7%94%A8%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B


<思考の流れ>
PXEブート時、DHCPサーバのIPは正しい。
  ↓
DHCPサーバから指定した範囲のIPを入手できている。
  ↓
/var/log/messageを見ても、DHCPサーバから正常にIPが取得出来た事が確認出来る。
  ↓
PXEブートは「PXE.」という行で失敗している模様。
  ↓
上記参照したページでの「PXE での Linux ブートの大まかな流れ」より、DHCPサーバの次は、
TFTPサーバが「pxelinux.0」を渡すはず。しかし、これが失敗している。
  ↓
TFTPサーバの設定を見直そう。そしてミスに気付いた。
カレンダー
06 | 2016/07 | 08
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード