ゲストOSがヘッドレスで起動した場合は、コンソールをttyS0に配置します。

ゲストOSがヘッドレスで起動した場合は、コンソールをttyS0に配置します。

当社の製品はDebian 4(systemdなし)を使用しています。テストのためにVirtualBoxによって管理されるゲストOSとして実行しました。

私が使用する方法は次のとおりです。

  • 手動デバッグのために、tty1にゲストOSのコンソールをインストールし、ここで一連のデバッガを起動しました。
  • スクリプトでテストするために、コンソールをttyS0(ホストPythonが簡単に接続)に移動しました。パフォーマンスのためにデバッガを実行していません。

私が今まで持っているもの:

仮想マシンのシリアルポートが有効になっていることを検出できます。 dmesgでttyS0を検索します。 (/procを見てみましたが、シリアルポートをまったく有効/無効にする必要はありません)

私が考える主な問題は次のとおりです。

Debain OSのシェルスクリプトがVirtualBoxによってヘッドレスで実行されているかどうかを知る方法はありますか? bashを使用できます。

アップデート1:

私は答えが「いいえ」と疑い始めました。 lspciを実行すると、VGA準拠のコントローラがヘッドレスモードとノーマルモードの両方でVirtualBoxグラフィックアダプタであることがわかります。ホストがサービスを提供するように設定されている場合、ヘッドレスゲストをデフォルトでリモートで表示できることがわかりました。これは、ゲストの立場で目立つ変化がないことを示しています。

ベストアンサー1

ホストでシェルスクリプトを使用して仮想マシンを変更して起動します。

通常スタート

#!/bin/bash
vboxmanage modifyvm "Vir153_1000" --uart1 off
vboxmanage startvm "Vir153_1000"

ヘッドレスブート

#!/bin/bash
vboxmanage modifyvm "Vir153_1000" --uart1 0x3F8 4
vboxheadless --startvm "Vir153_1000" --vrde off &

ゲストはまだシリアルポートがあることを確認し、それに応じて対処する必要があります。

アイデアをありがとう@siblenxに感謝します

おすすめ記事