web-dev-qa-db-ja.com

PXEブート-TFTPサーバーでカーネルが見つかりません

PXEブート用に次のリンクをたどりました http://www.howtoforge.com/setting-up-a-pxe-install-server-on-ubuntu-9.10-p

また、サーバーからクライアントにpingを実行でき、クライアントを起動したときにもサーバーからIPアドレスを取得しています。

しかし後で、私はこのエラーが発生しました

PXELinux 3.82 2009-06-09
. . . [other informations]
!PXE Entry point found (we hope) at 9D3B:0109 via plan A
UNDI code segment at 9D3B len 16C2
UNDI data segment at 933B len A000
Getting cached packet 01 02 03
. . . [other informations]
TFTP prefix:
Trying to load: pxelinux.cfg/ec5db4c0-74fe-d511-b9e7-3d9235afe5a1
Trying to load: pxelinux.cfg/01-00-17-31-b6-5e-a8
Trying to load: pxelinux.cfg/0A64491E
Trying to load: pxelinux.cfg/0A64491
Trying to load: pxelinux.cfg/0A6449
Trying to load: pxelinux.cfg/0A644
Trying to load: pxelinux.cfg/0A64
Trying to load: pxelinux.cfg/0A6
Trying to load: pxelinux.cfg/0A
Trying to load: pxelinux.cfg/0
Trying to load: pxelinux.cfg/default
Unable to locate configuration file
Boot failed: press a key to retry or wait for reset

リンクに記載されているすべてのファイルをtftpbootに入れました。誰もが問題になる可能性があることを説明できますか?.

4
user70523

ブートサーバーでtcpdump(またはWireshark)を実行して、クライアントが何を要求しているかを確認してみてください。個人的に、私はそれが真実であり、完全な真実であり、唯一の真実であるため、ネットワーク上で何が実行されているかを確認するのが好きです;)そしてそれは私が実際に何が起こっているのかを判断するのに役立ちます。

パーミッションと言えば、ディレクトリパーミッションについても覚えておいてください。プロセスは、ディレクトリ内に入ることができるようにディレクトリに対する実行(x)権限(考え:cd/path/x)と、そのコンテンツを読み取るための読み取り(r)権限(考え:ls/path/x)を持っている必要があります。実行ビットは必須であり、tftpdデーモンが実行するユーザーの読み取り権限も害を及ぼすことはありません。

次に、-vvvvファイル内のオプションに/etc/default/tftpd-hpaを追加して、サーバーを再起動します。これにより、tftpd-hpaデーモンのログレベルが上がり、問題の原因に関する追加のヒントが得られる場合があります(/var/log/messagesの内部を確認してください)。

別のアイデア:クライアントが必要とするファイルをtftpサーバーから取得してみてください(ネットワーク上で実行されているものをリッスンすることで、クライアントが必要とするものを取得します)。ファイルをダウンロードできる場合は、tftpサーバーが機能し、ファイルが存在し、パスが正しく、アクセス許可が適切であることを確認できます。その他の問題がある場合は、クライアント側にあります(またはクライアント/サーバープロトコルの不一致)。

最後に、/ tftpbootディレクトリを書き込み可能にするというHOWTOの推奨事項は好きではありません。セットアップが機能するようになったら、ディレクトリから書き込み権限を削除します。不正なクライアントは、/ tftpbootディレクトリが存在するファイルシステムを簡単にいっぱいにする可能性があります。プロトコルには認証が組み込まれていません(したがって、「トリビアル」ftp)。

テキストの壁が役立つことを願っています;)

2
Paweł Brodacki

同じ問題が発生していましたが、SELinuxを無効にすると解決しました。 CentOS 6.5を実行していて、DRBL/Clonezillaを使用しています。

手順:

  1. 開いた /etc/selinux/config
  2. 変化する SELINUX=enforcingからSELINUX=disabled
  3. リブート
0
zymhan

/tftpboot/pxelinux.cfgにあるpxeconfigファイルへのソフトリンクを作成する必要があります。ソフトリンクの名前は0A64491Eにする必要があります。ソフトリンクはファイルを指す必要があり、データセンターの場合は../profilesを指します(構成ファイルの場所は関係ありません)。

Centos6 pxeconfigの簡単なインストールファイルの例は次のとおりです。

DEFAULT INSTALL
LABEL INSTALL
KERNEL centos6/x86_64/vmlinuz
APPEND utf8 load_ramdisk=1 root=/dev/ram nofb ks=http://servername/mrepo/kickstarts/centos6.ks ksdevice=eth0 initrd=centos6
/x86_64/initrd.img console=ttyS1,115200

ここで重要なビットは、正しいコンソールセッションに出力していることを確認することです。これが正しく行われない場合は、カーソルが点滅するか、。だけが表示されます。

さらに、ボーレート(上記の場合は115200)を設定すると、コンソールを使用して管理ネットワーク経由でサーバーに接続している場合に正しく設定できます。

0
Wilshire

ファイル/var/log/messagesには、より多くの情報が記録されている可能性があります。そこを見たことがありますか?これは権限の問題のように聞こえます。 tftpd-hpaを実行しているユーザーがファイル/tftpboot/pxelinux.cfg/defaultを読み取れることを確認してください。また、他のユーザーがファイルに書き込めないことを確認してください。 lsで権限を確認できます。出力の最初は次のようになります

$ ls -l /tftpboot/pxelinux.cfg/default
-rw-rw-r--
0
sciurus