私はしばらくVirtualboxを使用してきましたが、Virtualboxと対話する方法を学んだ唯一の方法は、グラフィカルインターフェイスを介していました。
ゲストと対話するためにホストシステムでスクリプトを作成できるように、コマンドラインを介して仮想マシンにbashコマンドを送信する方法はありますか?
例えば
$ sendMessage vmName "echo hello"
新しい仮想化ソフトウェアを試してみたいと思います。
私は現在Macを使用しており、この方法でLinuxクライアントを実行したいと思います。
編集する:
潜在的なマルウェアを実行して動作を確認したいと思います。理想的には、ゲストが完全に隔離されるようにゲストのネットワーキングを無効にしたいと思います。
私はゲストとホストが純粋にstdin / stdoutを介して通信したいと思います。
ベストアンサー1
共有ファイルシステムの使用
VirtualBoxサポートを使用してゲストのホストディレクトリを公開できます。テストするコードを共有ディレクトリに直接配置し、仮想マシンを起動し、コンソールを使用して共有ディレクトリに移動してコードを実行します。ネットワークは必要なく、ホストへの公開は共有ディレクトリにのみ存在し、スナップショットを使用してゲストファイルシステムへの変更を元に戻すことができます。
仮想シリアルポートの使用
ネットワークを設定せずにホストシステムがゲストと対話できるようにゲストシリアルポートを設定できます。
VirtualBoxで、設定 - >ポートに移動して最初のシリアルポートを有効にし、ポートモードを「Host Pipe」に設定します(「Create Pipe」が選択されていることを確認)。そのフィールドにパス(例:)を入力します/tmp/hostserial
。パスはホストに公開されるUnixソケットです。
ゲストをアクティブにします。今あなたの使命は、ゲストが内部的にシリアルポートと通信することです。この試み:
agetty -l /bin/bash -n ttyS0 115200 vt100
ttyS0
これにより、最初のシリアルポートでbashシェルが起動します。 OS Xホストにインストールされていることを確認し、netcat
次のことを試してください。
nc -U /tmp/hostserial
bash
ゲストと会話をする自分を発見することになります。これはまさにあなたが望むものではありませんが、とにかく役に立ちます。
私自身は、共有ディレクトリを使用する最初のオプションを選択します。