PXEブートサーバーのセットアップに問題があります。 isc-dhcp-server
を実行し、tftp-hpa
はtftp経由でファイルを提供し(検証済み)、Apache2
はrootfsイメージをホストします。 PXEクライアントがカーネルファイルとinitrdファイルを正しくダウンロードしているように見えると、カーネルパニックが発生します。
これが私の/tftpboot/pxelinux.cfg/default
です:
default pxeboot
label pxeboot
kernel vmlinuz-3.16.0-4-AMD64
append initrd=vmlinuz-3.16.0-4-AMD64 ip=dhcp boot=live fetch=http://xxx.xxx.xxx.xxx/filesystem.squashfs
私のサーバーはUbuntu 15.04 mini
インストールです。
最初に次の手順に従って、fimesystem.squashfs
ルートファイルシステムイメージを作成しました。 http://djlab.com/2014/10/debian-pxe-boot-image-from-scratch/
次に、次の手順に従ってDHCPとTFTPをインストールしました。 https://help.ubuntu.com/community/DisklessUbuntuHowto
しかし、TFTPがファイルをこれに提供するようにするには、/etc/default/tftpd-hpa
を変更する必要がありました。
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="xxx.xxx.xxx.xxx:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="yes"
DisklessUbuntuHowTo
instructionsに従ってTFTP_OPTIONS
を変更すると、tftpが起動しなくなります。次に、Apache2
サーバーを起動しました。これは、意図したとおりに/var/www/html/
に入れたファイルを表示しているようで、http://xxx.xxx.xxx.xx/filesystem.squashfs
からファイルをダウンロードできますが、起動中にカーネルがパニックになります。
/boot/
ディレクトリが空だったため、最初はホストchroot/boot/
ディレクトリからkernel
とinitrd
のイメージを取得しましたが、次の手順を使用してchrootにカーネルをインストールしました。 : http://willhaley.com/willhaley/blog/create-a-custom-debian-live-environment/
chroot chroot
apt-get install --no-install-recommends --yes \
linux-image-3.16.0-4-AMD64 live-boot
次に、カーネルとinitrdイメージをchroot/boot/
ディレクトリからコピーしましたが、カーネルはまだパニックに陥っています。 /tftpboot/pxelinux.cfg/default
を次のように変更した場合:
default pxeboot
label pxeboot
kernel vmlinuz-3.16.0-4-AMD64
append initrd=vmlinuz-3.16.0-4-AMD64
ホスト/boot
からカーネルとinitrdイメージを使用すると、クライアントは2つのイメージをロードし、私を(initramfs)
プロンプトにダンプします。 chroot/boot/
イメージを使用すると、カーネルパニックが発生します。
これまでカーネルパニックをデバッグしたことがないので、チェックするログファイルすらわかりません。どんな助けもいただければ幸いです、
ミーシャ
編集:これはPXEクライアントの起動とカーネルパニックのビデオです: https://www.youtube.com/watch?v=WlhEmNx8J8M
カーネルはPXE互換のカーネル/ initrdセットではないため、パニックになります。もし私があなたなら、車輪の再発明はしません。実績のあるPXE互換ディストリビューションを使用して、ニーズに合わせてinitrdをカスタマイズし、必要なスカッシュを追加します。 PXE互換ディストリビューションとそれに対応するパラメーターの大きなリストについては、 Serva を参照してください。