VirtualBox 远程使用

VirtualBox 在桌面环境使用时,打开 UI,鼠标点点,就搞定了,特别简单。但如果要在生产环境中使用 VirtualBox,就必须能够以 non-GUI 的方式操作,VirtualBox 当然支持这种模式。这里记录一些常用的维护指令。这些指令在 Host OS 为 Linux 或 Windows 都以同样方式使用的。如果 Host 是 Windows,用 shell 的方式不是一个必要的选择。

1. 查看 VM 列表

$ VBoxManage list vms

这个指令,可以查看所有 VM 的名称,在 Host OS 执行后反馈的结果是:

"UServer" {82a177bc-9627-4970-8054-65f7a72ff821}

注意,这个命令只能查到当前用户下的虚拟机运行状态,如果在 a 用户下启动了虚拟机 v,在 b 用户下是看不到的。

2. 查看正在运行的 VM 列表

$ VBoxManage list runningvms

3. 以 headless 方式启动 VM

headless 在中文里也常被称为无头方式,通过这种方式启动的 VM,不会在 Host OS 中出现图形窗口,但可以供远程连接使用。这种方式对生产环境部署 VM 特别有用:在作为服务器的 Host OS 上以无头方式启动若干 VM, VM 中开启 SSH, 通过 SSH 远程管理它们。如:

$ VBoxManage startvm UServer --type headless
Waiting for VM "UServer" to power on...
VM "UServer" has been successfully started.

4. 关机

一种方式是已经登录 VM 的情况下,在 VM 中执行正常的关机指令即可,或执行

VBoxManage controlvm UServer acpipowerbutton

另一种方式是在 Host OS 以断电的方式简单粗暴地将机器关闭:

VBoxManage controlvm UServer poweroff

5. 更多用法

VBoxMange --help 

通过 VirtualBox 的指令,可以完成在 UI 上操作能完成的所有任务,但并非必要。一般可以在本地安装好 VM,并作必要配置,再上传到 Host OS 上使用。

参考

Chapter 7. Remote virtual machines: https://www.virtualbox.org/manual/ch07.html

(上面这篇文章中还介绍了如何使用 VRDP 管理 VirtualBox)