什么是 VBoxManage,为什么要用命令行

VBoxManage 是随 VirtualBox 一同安装的命令行接口(CLI)。每一个你在图形界面里能完成的操作——创建虚拟机、挂载磁盘、调整网络、拍摄快照——VBoxManage 都能通过一条命令实现。

VirtualBox相关配图

那为什么不直接用图形界面?几个典型理由:

- 你的 Linux 服务器没有桌面环境,只能通过 SSH 远程管理。 - 你需要一次性创建 10 台配置相同的虚拟机,手动点击既慢又容易出错。 - 你想把虚拟机的创建和配置写进 CI/CD 流水线或 Shell 脚本,实现完全自动化。

简单来说,图形界面适合偶尔操作,而 VBoxManage 适合需要效率、可重复性和远程控制的场景。从 VirtualBox 7.0 版本开始,VBoxManage 新增了对 `--cloud` 相关子命令的支持,功能覆盖面进一步扩大。

安装确认与环境配置

在开始使用前,先确认 VBoxManage 已经可以正常调用。打开终端(Windows 用户打开 CMD 或 PowerShell),输入:

VirtualBox相关配图

```bash VBoxManage --version ```

如果返回类似 `7.0.20r163906` 的版本号,说明一切就绪。

如果提示"命令未找到",通常是环境变量没有配置好。各系统的默认安装路径如下:

- Windows:`C:\Program Files\Oracle\VirtualBox\` - macOS:`/usr/local/bin/VBoxManage`(安装后通常已自动加入 PATH) - Linux:`/usr/bin/VBoxManage`(通过包管理器安装后自动可用)

Windows 用户需要手动将安装目录添加到系统 PATH 环境变量中。操作步骤:右键"此电脑" → 属性 → 高级系统设置 → 环境变量 → 在 Path 中新增 VirtualBox 安装路径,保存后重新打开终端即可生效。

确认版本号能正常输出后,运行以下命令查看当前已有的虚拟机列表:

```bash VBoxManage list vms ```

返回为空说明还没有创建过虚拟机,接下来就可以动手了。

核心命令速查:覆盖日常 80% 的操作

掌握以下几组命令,日常的 VirtualBox 命令行 VBoxManage 使用基本够用。

VirtualBox相关配图

创建并注册一台虚拟机:

```bash VBoxManage createvm --name "Ubuntu-Test" --ostype Ubuntu_64 --register ```

为虚拟机分配 2GB 内存和 2 个 CPU 核心:

```bash VBoxManage modifyvm "Ubuntu-Test" --memory 2048 --cpus 2 ```

创建一块 20GB 的动态扩展虚拟硬盘:

```bash VBoxManage createmedium disk --filename ~/VMs/Ubuntu-Test.vdi --size 20480 ```

将硬盘挂载到虚拟机的 SATA 控制器:

```bash VBoxManage storagectl "Ubuntu-Test" --name "SATA" --add sata --controller IntelAhci VBoxManage storageattach "Ubuntu-Test" --storagectl "SATA" --port 0 --device 0 --type hdd --medium ~/VMs/Ubuntu-Test.vdi ```

启动虚拟机(无头模式,适合服务器):

```bash VBoxManage startvm "Ubuntu-Test" --type headless ```

关闭虚拟机(模拟按下电源键):

```bash VBoxManage controlvm "Ubuntu-Test" acpipowerbutton ```

查看所有可用的 ostype 列表:

```bash VBoxManage list ostypes ```

这条命令在你不确定 `--ostype` 参数该填什么时非常有用。

实战场景一:用脚本批量创建虚拟机

假设你需要为一个培训环境准备 5 台配置相同的 Ubuntu 虚拟机。手动操作要重复 5 遍,而用 Shell 脚本只需要一个循环:

```bash #!/bin/bash for i in $(seq 1 5); do VM_NAME="Lab-VM-${i}" VBoxManage createvm --name "$VM_NAME" --ostype Ubuntu_64 --register VBoxManage modifyvm "$VM_NAME" --memory 2048 --cpus 2 --nic1 nat VBoxManage createmedium disk --filename ~/VMs/${VM_NAME}.vdi --size 20480 VBoxManage storagectl "$VM_NAME" --name "SATA" --add sata --controller IntelAhci VBoxManage storageattach "$VM_NAME" --storagectl "SATA" --port 0 --device 0 --type hdd --medium ~/VMs/${VM_NAME}.vdi echo "${VM_NAME} 创建完成" done ```

执行后,5 台虚拟机在几秒内全部就绪。如果后续需要调整配置,只需修改脚本中的参数值重新运行,不必逐台手动修改。

实战场景二:快照故障恢复

快照是 VirtualBox 中最实用的功能之一。在你对虚拟机做任何高风险操作(升级内核、修改系统配置)之前,先拍一个快照:

```bash VBoxManage snapshot "Ubuntu-Test" take "before-kernel-upgrade" --description "内核升级前的干净状态" ```

如果操作后系统出了问题,比如升级内核后无法正常启动,恢复只需要两步:

```bash # 先强制关闭虚拟机 VBoxManage controlvm "Ubuntu-Test" poweroff

# 恢复到之前的快照 VBoxManage snapshot "Ubuntu-Test" restore "before-kernel-upgrade" ```

然后重新启动虚拟机,系统会回到快照时的状态,所有问题一笔勾销。

查看当前虚拟机的所有快照:

```bash VBoxManage snapshot "Ubuntu-Test" list ```

这个工作流在测试环境中尤其有价值——大胆实验,随时回滚。

总结

VBoxManage 把 VirtualBox 的全部能力交到了命令行手中。从创建虚拟机、调整配置到快照管理,每一步都可以脚本化和自动化。对于新手用户,建议从本文提到的核心命令开始练习,逐步将常用操作整理成自己的脚本库。

如果你还没有安装 VirtualBox,可以前往 VirtualBox 官方下载页面获取最新版本,安装后即可体验 VBoxManage 的完整功能。遇到具体命令的参数疑问时,`VBoxManage --help` 是最快的参考方式。

相关阅读:VirtualBox 命令行 VBoxManage 使用使用技巧VirtualBox 无法启动虚拟机怎么办?6