
私は 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 スクリプトに追加する必要があります。
インストールでもライブディストリビューションでもないイメージを起動したい場合、状況はさらに複雑になります。