PXEダウンロードの理論的な部分は、記事http://xgu.ru/wiki/PXEで詳しく説明されています。
それでは始めましょう。 dhcp、tftp、nfsが必要です。
Debian 7がインストールされたコンピューターがサーバーとして機能しますが、既にdnsmasqがインストールされています(dhcpサーバーとdnsサーバーの両方です)。 これは、dhcpを上げて個別にバインドしないように、小規模なホームネットワークに非常に便利です。 さらに、dnsmasqには独自のtftpサーバーがあるため、「すべて1本のボトル」と言われるように、タスクに最適です。 nfsサーバーをインストールし、全体を構成することは残ります。 PXEブートローダーは、FreeBSDディストリビューションイメージに含まれています。
必要なパッケージをインストールします。
apt-get install dnsmasq nfs-kernel-server
公式サイトfreebsd.orgからFreeBSDのiso-imageをダウンロードしてください。 最小限のブートオンリーイメージを使用しました。
wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-i386-bootonly.iso
マウント:
mount -o loop FreeBSD-10.1-RELEASE-i386-bootonly.iso /mnt
すべての画像ファイルを、nfs経由でアクセスできるディレクトリにコピーします。
cp -a /mnt /srv/nfs/freebsd
nfsボールを/ etc / exportsに追加します
/srv/nfs/freebsd 192.168.0.0/24(rw,sync,no_subtree_check)
nfsを再起動します。
service nfs-kernel-server restart
次に、何かを修正する必要があります。
/ srv / nfs / freebsd / etc / fstabの行をコメントまたは削除して、システムがブート時にディスクをマウントしようとしないようにし(イメージはブランクに記録することを目的としています)、nfsボールをルートファイルシステムとしてマウントします:
# /dev/iso9660/10_1_RELEASE_I386_BO / cd9660 ro 0 0
存在しないファイル/srv/nfs/freebsd/tmp/bsdinstall_etc/resolv.confを参照するシンボリックリンク/srv/nfs/freebsd/etc/resolv.confを削除します。 理論的には、dnsサーバーのアドレスはdhcpを介して取得され、起動時にFreeBSDインストーラーによってこのファイルに書き込まれます。 ただし、これは発生しません。インストーラーは空のファイルを作成し、ファイルが既に作成されている場合は上書きします。 したがって、シンボリックリンクの代わりに、新しいファイル/srv/nfs/freebsd/etc/resolv.confを作成し、それにDNSサーバーのアドレスを書き込みます。
nameserver 192.168.0.101
ファイル/etc/dnsmasq.confを編集します。問題を解決するために必要なオプション、つまり dnsなしのdhcp + tftp:
interface=eth0 #, dhcp- dhcp-range=192.168.0.200,192.168.0.250,12h # ip- dhcp-option=17,/srv/nfs/freebsd/ # nfs dhcp-boot=/srv/nfs/freebsd/boot/pxeboot # PXE- enable-tftp # tftp- tftp-root=/srv/nfs/freebsd/ # tftp
dnsmasqを再起動します。
service dnsmasq restart
それだけです。 BIOSに入り、LAN(PXE)から起動順序を選択します。 ネットワークカードがpxe-loaderをロードし、カーネルがコピーされてtftp経由で起動され、ルートファイルシステムがnfs経由でマウントされ、FreeBSDインストーラーが起動され、次に標準のFreeBSDインストールが行われます。 BIOSの起動順序を前の順序に変更することは、インストールの最後でのみ忘れないでください。