回答:
これは私の理解です!
PXE(クライアント側)は、IPの要求をブロードキャストします。DHCPサーバーが必要な情報を返信します:IP、Next Server IP(TFTPサーバーIP)、pxelinux.0
(PXEブートストラップローダーファイル名)、... etc
PXE(クライアント側)pxelinux.0
はTFTPサーバーからファイルを要求し、RAMにロードしてから制御をに渡しpxelinux.0
ます。
pxelinux.0
次の名前でTFTPサーバーからブート構成ファイルを取得します
(存在しない場合は、次のもので試行します)。
default
ファイルにドロップユーザー選択またはデフォルトのメニューエントリ。pxelinux.0
TFTPサーバーから対応するカーネルとRAMDiskを要求し、RAMにロードします。
次に、ブートパラメータと制御をロードされたカーネルに渡します。
カーネルは、その機能/プロパティに応じて、TFTPサーバーまたはその他のプロトコルサーバーから残りの部分を読み込みます。
PXEサーバーをセットアップするには多くの方法がありますが、これはそのうちの1つです。
これらの手順は、実際のマシン上のUbuntu 9.10およびUbuntu 10.04でテストされました。わずかな変更が加えられるだけで、まだ有効なはずです。(VirtualBox上のUbuntu 14.04で更新およびテスト済み。古いリリースの編集リビジョンを確認してください)
私のターゲットはPartedMagic 4.5で、UbuntuやLinuxディストリビューションに似ているはずです。
DHCPおよびTFTPパッケージをインストールする
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
DHCPセットアップ
編集/etc/default/isc-dhcp-server
、DHCPサービスのイーサネットインターフェイス
INTERFACES="eth0"
編集/etc/dhcp/dhcpd.conf
または/etc/ltsp/dhcpd.conf
存在する、DHCPサービスの構成
PXE固有の構成:filename
&next-server
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.123;
option broadcast-address 192.168.10.255;
filename "pxelinux.0";
next-server 192.168.10.123;
}
静的IP設定eth0
、192.168.10.123
デスクトップ版のためか、ネットワークマネージャを使用して私の場合は/etc/network/interfaces
サーバー版のため。
auto eth0
iface eth0 inet static
address 192.168.10.123
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
ネットワークインターフェイスを再初期化します。
sudo ifdown eth0
sudo ifup eth0
サービスを再開する
sudo service isc-dhcp-server restart
ステータスを確認する
netstat -lu
出力
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
TFTPセットアップ
編集し、行頭から/etc/inetd.conf
削除するか、コメントの下にない場合は追加します。(systemd、15.10以降でこれをスキップします)#<off>#
tftp
#:BOOT:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
のブートサービスを有効にする inetd
sudo update-inetd --enable BOOT
サービスを開始
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
ステータスを確認する
netstat -lu
出力
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
PXEブートファイルのセットアップ
解凍しpmagic-pxe-4.5.zip
ます。pxelinux.0
存在しない場合は、Syslinux ProjectまたはUbuntu Netboot Imageにsysliux-common
インストールされているパッケージから入手してください。/usr/lib/syslinux/pxelinux.0
それらを同様の構造に配置します。
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
/var/lib/tftpboot/pxelinux.cfg/default
必要に応じて、パスの編集:pmagic/bzimage
&pmagic/initramfs
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
適切な権限を設定する
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
F9またはを使用してBIOSの起動順序を1回変更します。またはF12、BIOS設定からの永続的なセットアップDEL、F2またはを使用しますF12。(マシンのブランドによって異なります)
上部に移動します[PXE | NIC | LAN | Ethernet | Network]
。
inetutils-inetd
またはのxinetd
代わりに使用できます。openbsd-inetd
一部のinetd
手順は異なります。
TFTPルートディレクトリはから変更できます/etc/default/tftpd-hpa
。更新すること/etc/inetd.conf
も忘れないでください。
多くのディストリビューションは、SSH(SFTP)、SMB、NFSなどの多くのプロトコルを介したRAMDiskの読み込みをサポートしています。例UbuntuはNFSをサポートしています。
一部の古いネットワークカードはPXE、サポートしていないIPXE(例。gPXEのかEtherbootのは、フロッピーディスク、USBドライブ上のいずれか)を使用することができ、ハードディスクの(/boot
パーティション)、あるいはがROMにフラッシュする(ほんの数NICがサポートされています)。GRUB2には、PXEを使用した起動をサポートするモジュールがあります。
ウィキペディア:gPXEおよびROM-O-maticも参照してください。
cdimage.ubuntu.com/netboot/の Ubuntu Netboot Imageは 、ネットワークからUbuntuをインストールし、公式ミラーまたはローカルミラー(ある場合)から必要なパッケージをすべてダウンロードするように要求します。
ほとんどのユーザーは、PXEからライブイメージを起動することを探しています。この質問は、PXEサーバーをセットアップすることだけでした。Ubuntu Wiki:インストール-LocalNetを参照してください
PXEメニューはカスタマイズできます。学習するのに最適なテンプレートはUbuntu NetBootです。Pxeboot Multiple imageを参照してください
memdisk
PXEを介してISOまたはフロッピーディスクイメージを直接読み込むために使用できます。syslinux-common
パッケージにはコピーがあります。クライアントには、イメージと、ロードされたOSを実行するための一部を保持するのに十分なRAMが必要です。
構成例:
/var/lib/tftpboot/
|-- FDSTD.144
|-- memdisk
|-- pxelinux.0
|-- slitaz-cooking.iso
|-- pxelinux.cfg
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
/pxelinux.cfg/default
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
LABEL slitaz
MENU LABEL ^Slitaz.iso
TEXT HELP
Testing boot from iso.
ENDTEXT
KERNEL memdisk
APPEND initrd=slitaz-cooking.iso
LABEL freedos_std
MENU LABEL ^FreeDOS STD
TEXT HELP
Testing boot from Floppy IMG.
ENDTEXT
KERNEL memdisk
APPEND initrd=FDSTD.144
元の開発者が商用化することを決定した後、PartedMagicパッケージは公式サイトから削除されました。一部のリリースはtorrentネットワークを介して見つけることができます。ここでの私の答えは、私のために働いた最初のPXEセットアップの履歴書です。Ubuntu Netboot Imageは同じ手順で動作するはずです。
netstat -lu | grep tftp
はリスニングモードで表示されます。/ tftpbootフォルダーは777ですがtftp> get pxelinux.0
、クライアントから試してみると、常にtftp:pxelinux.0:Permission deniedエラーが発生します。デバッグするアイデアはありますか?前もって感謝します。
/var/lib/tftpboot/
755(デフォルト)の@ Danduk82は問題ないはずです。pxelinux.0
644があるかどうかを確認して実行sudo chmod -R +r /var/lib/tftpboot/
し、すべてのコンテンツを読み取り可能にします。
filename "pxelinux.0";
コメントなし); P ...回答とこの素晴らしい(そして完全な)回答に感謝します。乾杯