ヘッドレスモードでVirtualBox VMを起動し、シリアルコンソールを介して端末からネットワークブートプロセスを表示したい(例:またはscreen
使用minicom
)。この目標をどのように達成できますか?
追加のコンテキストは次のとおりです。
PXEネットワークブートの実験に使用するVirtualBox仮想マシンがあります。仮想マシンに名前が付けpxeclient
られ、Debianが実行されます。
次のブログ記事に記載されている手順に従って、仮想マシン用のシリアルポートを設定しました。
以下は、シリアルコンソールを設定した方法の簡単な説明です。
まず、UARTシリアルポートをVMに接続しました。
touch "/dev/pxeclient-uart-port"
vboxmanage modifyvm "client" --uart1 "0x3F8" '4'
vboxmanage modifyvm "client" --uartmode1 server "/dev/pxeclient-uart-port"
その後、(GUIインターフェイスを介して)VMでgrub設定ファイルを変更しました。
cat <<HEREDOC > /etc/default/grub
# NOTE: Enable Virtual Serial Console for VirtualBox
GRUB_DEFAULT=0
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=$(lsb_release -i -s 2> /deb/null || echo Debian)
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="console=ttyS0 console=tty0 ignore_loglevel"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=0 --word=8 --parity=no --stop=1"
HEREDOC
次に、このminicom
プログラムを使用して仮想マシンコンソールに接続します。
minicom -D unix#/dev/pxeclient-uart-port
これまでは、すべてが期待どおりに機能しているようです。コンソールに正常に接続でき、仮想マシンを起動した後(ヘッドレスモード)、端末を介して起動プロセスを表示できます。
次に、PXEを使用してネットワーク起動を実行するように仮想マシンの起動順序を変更します。
vboxmanage modifyvm 'pxeclient' --boot1 'net' --boot2 'none' --boot3 'none' --boot4 'none'
ただし、仮想マシンを起動すると、端末に書き込まれた出力は表示されません。 GUI インターフェイスを使用して VM を再起動すると、GUI ウィンドウに PXE ブート プロセスが表示されますが、シリアル コンソールから同じ出力が表示されません。
私はすべての仮想マシンをヘッドレスモードで実行することを好みます。シリアルコンソールを介してネットワークブートプロセスを監視するには、いくつかの追加設定を実行する必要がありますか?