既存のシステムからpxelinux?

既存のシステムからpxelinux?

私は tftp で pxe サーバーをセットアップしました。これは Debian インストーラーを使用して動作します。

http://www.debian-administration.org/articles/478

今、必要なのはインストーラではなく、すでに存在するシステム (USB 上) です。その USB イメージを起動し、特に pxelinux.0 ブートローダーを作成するにはどうすればよいでしょうか? Debian ではインストーラ イメージしか見つかりません。

編集: わかりました。USB にシステムをインストールして、複数のクライアントで PXE を使用してネットワーク経由で起動したいと考えています。上記のリンクのチュートリアルに従って、tftp サーバーと pxe 環境を備えたプレーンな Debian をインストールしました。インストーラーでは動作しますが、別のカーネルを使用しようとしましたが、pxelinux.0 ファイルが Debian ディストリビューションのインストーラー カーネルを指しているため、ファイルが見つからないというメッセージが表示されます。

答え1

USB ブート可能/インストール可能な Linux イメージのすべてが PXE 環境で動作するわけではないことを理解する必要があります。

非 PXE イメージは通常、起動デバイス (HDD、USB など) から起動し、必要なコンポーネントを取得します。

PXE 対応イメージは最初にネットから起動し、そこから必要なコンポーネントを取得するために NFS、HTTP、SMB などのシステムをマウントする準備が init スクリプトで整います。

PXE 以外のインストール イメージには、ネットワークからコンポーネントを取得するための init スクリプトが用意されていないだけでなく、ネットワーク サポートさえ備えていないカーネル/busybox ビルドや、PXE インストールを容易にする HTTP や SMB などの一部のプロトコル用のカーネル モジュールを備えていないカーネル/busybox ビルドが使用されることもよくあります。

TFTP はいくつかの初期転送 (pxelinux/vesamenu/kernel/initrd) でのみ使用され、インストールの大部分は後で HTTP または NFS または SMB 共有マウントを使用して転送されることを覚えておいてください。

次に、USB Linux インストール イメージを PXE ブートする場合は、ディストリビューションの initrd を分析して、含まれている init スクリプトが PXE をサポートしているかどうかを確認する必要があります。次に、カーネル/busybox にネット ブートに必要なコンポーネントが含まれているかどうかを確認する必要があります。これは簡単な作業ではありません。

「インストールではない」がライブディストリビューションであるイメージを起動する場合は、squashfs ファイルをネットマウントするためのコードを init スクリプトに追加する必要があります。

インストールでもライブディストリビューションでもないイメージを起動したい場合、状況はさらに複雑になります。

関連情報