
PXEはPreboot Execution Environment(起動前実行環境)の略で、ネットワーク上のリモートサーバーからコンピューターを起動することを可能にするクライアントサーバーインターフェースです。これにより、ネットワーク経由でサーバーやワークステーションの自動プロビジョニングが可能になります。
参照: 知っておくべきオープンソースと Linux の用語 40 選 (TechRepublic Premium)
場合によっては、仮想マシンでこれを実行したい場合もあるでしょう。しかし、VirtualBoxを使用している場合、PXEを実現するために必要なすべての機能が含まれているわけではありません。幸いなことに、これは可能です。その設定方法をご紹介します。
PXEブートを有効にするために必要なもの
これを動作させるには、LinuxまたはWindowsホスト上でVirtualBoxのインスタンスを実行する必要があります。ここではPop!_OSホストとテストVMでデモを行います。それでは、仮想魔法を実際に使ってみましょう。
TEST VM設定を構成する方法
テスト用の仮想マシンは、新しいマシン(ここではTESTと名付けています)を作成しますが、ISOイメージはアタッチしないでください。このTEST VMを作成したら、以下の2つの設定を調整する必要があります。
- ネットワーク: ネットワーク アダプターを NAT に設定します。これは、[ネットワーク] | [アダプター 1] | [接続先] で行います。
- ブート順序:VMをネットワークから起動するように設定します。これは、「システム」→「マザーボード」→「ブート順序」で行います。まず「ネットワーク」を有効にし、一番上に移動します(図A)。
図A

VM の設定はこれで完了です。
必要なファイルを追加する方法
VirtualBoxにはPXEを処理するために必要なスクリプトが含まれていません。幸いなことに、これらのスクリプトは比較的簡単に追加できます。各ホストOSはこれらのスクリプトを異なる場所に保存します。保存場所は以下の通りです。
- Linux および Oracle Solaris :
$HOME/.config/VirtualBox
。 - Windows の場合:
$HOME/.VirtualBox
. - macOS :
$HOME/Library/VirtualBox
.
ターミナルウィンドウを開き、そのディレクトリに移動します。ディレクトリに移動したら、次のコマンドでファイルをダウンロードします。
curl https://codeload.github.com/defunctzombie/virtualbox-pxe-boot/tar.gz/master | tar zx --strip-components 1
このコマンドは、VirtualBox の保存場所に TFTP という名前の新しいディレクトリを作成します。
一つ注意すべき点は、ダウンロードに含まれるファイルはUbuntu固有のものであり、最新の2つのリリースは含まれていないということです。Xenialで止まっています。また、このダウンロードでインストールできるのはUbuntuのみであることにもご注意ください。他のディストリビューションの場合は、PXEに関する具体的な手順を見つけて追加してください。キックスタートファイルの作成方法については、TFTP/kickstart/basic.cfgファイルも参考にしてください。
Ubuntuの最新バージョンを追加したい場合は、該当リリースのカーネルファイルとinitrdファイルをダウンロードし、TFTP/installers/ubuntu/に配置する必要があります。例えば、20.04を使用する場合は、以下の手順に従ってください。
ISO イメージをダウンロードします:
wget https://releases.ubuntu.com/20.04/ubuntu-20.04.5-live-server-amd64.iso
イメージをマウントします。
sudo mount ubuntu-20.04.5-live-server-amd64.iso /mnt
カーネルとinitrdファイルをコピーする
cp /mnt/casper/{vmlinuz,initrd} ~/.config/VirtualBox/TFTP/
ldlinux.c32ファイルをコピーする
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 ~/.config/VirtualBox/TFPT
次のコマンドでデフォルトの設定ファイルをバックアップします。
mv ~/.config/VirtualBox/TFPT/pxelinux.cfg/default ~/.config/VirtualBox/TFPT/pxelinux.cfg/default.bak
次のようにして新しいデフォルト ファイルを作成します。
nano ~/.config/VirtualBox/TFPT/pxelinux.cfg/default
次の内容をそのファイルに貼り付けます。
DEFAULT install
LABEL install
KERNEL vmlinuz
INITRD initrd
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=https://releases.ubuntu.com/20.04/ubuntu-20.04.5-live-server-amd64.iso
ファイルを保存して閉じます。
VMのシンボリックリンクを作成する方法
VMの名前をTESTにしたことを思い出してください。PXEを必要とするすべての仮想マシンについて、TFTP/lxelinux.0から同じ名前の新しいファイルへのシンボリックリンクを作成する必要があります。つまり、TEST VMでは、以下のコマンドでTFTPディレクトリに移動します。
cd ~/.config/VirtualBox/TFTP
次に、次のようにして新しいシンボリックリンクを作成します。
ln -s ./pxelinux.0 TEST.pxe
Linux は大文字と小文字を区別するため、VM の名前が TEST の場合、シンボリック リンクの名前は TEXT.pxe にする必要があることに注意してください。
PXE対応VMを起動する方法
設定はこれで完了です。あとは仮想マシンを起動するだけで、2つのオプションが表示されます。
- インストール
- キックスタートインストール
おめでとうございます。これでVirtualBoxでPXEが有効になりました。PXEブートを有効にする必要があるすべてのVMに、.pxeシンボリックリンクを作成する必要があることに注意してください。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。