帮VirtualBox 作为开源虚拟化工具,其命令行工具 VBoxManage 能高效管理虚拟机(如批量操作、自动化脚本)
1. 列出所有虚拟机(包括运行状态)
VBoxManage list vms
- 显示所有已注册的虚拟机名称及其 UUID(不显示运行状态)。
2. 列出正在运行的虚拟机
VBoxManage list runningvms
- 仅显示当前正在运行的虚拟机(名称 + UUID)。
3. 列出所有虚拟机及其详细信息
VBoxManage list vms --long
4. 列出所有主机网络(NAT、桥接等)
VBoxManage list hostonlyifs
5. 列出所有 DHCP 服务器
VBoxManage list dhcpservers
- 显示 VirtualBox 内置的 DHCP 服务器配置(如 NAT 网络的 DHCP)。
6. 列出所有虚拟硬盘镜像(VDI/VMDK等)
VBoxManage list hdds
7. 列出所有 DVD/CD 镜像
VBoxManage list dvds
8. 列出所有网络模式(NAT、桥接等)
VBoxManage list bridgedifs
9. 列出所有支持的 Guest OS 类型
VBoxManage list ostypes
- 显示 VirtualBox 支持的客户机操作系统类型(用于创建虚拟机时选择)。
10. 列出所有全局配置
VBoxManage list systemproperties
- 显示 VirtualBox 的全局设置(如默认硬盘路径、日志目录等)。
11. 列出所有扩展包
VBoxManage list extpacks
- 显示已安装的 VirtualBox 扩展包(如 USB 2.0/3.0 支持、远程桌面等)。
12. 列出所有云虚拟机(需安装 CloudBox)
VBoxManage list cloudproviders
- 显示支持的云服务提供商(需配置 VirtualBox Cloud 功能)。
其他常用 VBoxManage
命令(非 list
类别)
- 启动虚拟机:
VBoxManage startvm "虚拟机名称" --type headless|gui|sdl
- 关闭虚拟机:
VBoxManage controlvm "虚拟机名称" poweroff|savestate|acpipowerbutton
- 创建/删除虚拟机:
VBoxManage createvm --name "虚拟机名称" --register
VBoxManage unregistervm "虚拟机名称" --delete
- 修改虚拟机配置:
VBoxManage modifyvm "虚拟机名称" --memory 4096 --cpus 2
案例1:批量关闭所有虚拟机
#!/bin/bash
for vm in $(VBoxManage list runningvms | awk '{print $1}' | sed 's/"//g'); do
VBoxManage controlvm "$vm" poweroff
done