NotePublic/Software/Applications/VirtualBox/命令行下使用_Virtualbox.md

3.5 KiB
Raw Blame History

命令行下使用 Virtualbox

设置虚拟机

# 创建并注册虚拟机
VBoxManage createvm --name <vm name> --register
# 为虚拟机创建一个硬盘镜像
VBoxManage createhd --filename <hd name> --size <hd size>
# 为虚拟机创建一个存储控制器
VBoxManage storagectl <vm name> --name <controller name> --add ide|sata|scsi|floppy --controller LsiLogic|LSILogicSAS|BusLogic|IntelAhci|PIIX3|PIIX4|ICH6|I82078 --bootable on
# 添加网络连接功能
VBoxManage modifyvm <vm name> --nic1 nat --nictype1 82540EM --cableconnected1 on
# 添加音频功能
VBoxManage modifyvm <vm name> --vram 128 --accelerate3d on --audio alsa --audiocontroller ac97

modifyvm 参数可控制的内容比较多,下表不完整的收集了一些信息:

VBoxManage modifyvm Description
--name <name> 改变虚拟机的名称
--ostype <ostype> 设置虚拟机从主机分配的内存大小单位MB
--memory <memorysize> 指定虚拟机中将运行的操作系统使用VBoxManage list ostypes了解这里可用的各种标识符
--vram <vramsize> 指定虚拟显卡可以使用的显存大小
--acpi on|off 相应地决定虚拟机是否支持ACPI和I/O APIC
--cpus <cpucount> 为虚拟机设置虚拟CPU的个数
--synthcpu on|off 决定VirtualBox是否为客户机提供合成CPUsynthetic CPU以允许在显著不同的主机系统之间实时迁移
--pae on|off 启用或禁用PAE
--hwvirtex on|off|default 启用或禁用主机处理器的硬件虚拟化扩展Intel VT-x或AMD-V
--hwvirtexexcl on|off 启用或禁用VirtualBox对主机处理器硬件虚拟化扩展Intel VT-x或AMD-V的独占。如果想和其他管理器共享这些扩展你必须禁用些选项。但这样做会有性能损失
--nestedpaging on|off 如果启用硬件虚拟化此附加选项启用或禁用主机系统处理器的nested paging功能
--vtxvpid on|off 如果启用硬件虚拟化此附加选项启用或禁用主机系统处理器的标签TLBVPID功能
--accelerated3d on off
--snapshotfolder default|<path> 指定虚拟机快照存放的目录
--firmware efi|bios 指定虚拟机使用的启动固件EFI或BIOS

查询和启动虚拟机

# 获取虚拟机列表
VBoxManage list vms
# 查看正在运行的虚拟机
VBoxManage list runningvms
# 开启虚拟机
VBoxManage startvm <vm uuid>|<vm name> [--type gui|sdl|headless]
# 虚拟机状态控制
VBoxManage controlvm <vm uuid>|<vm name> pause|resume|reset|poweroff|savestate|acpipowerbutton
  • --type
    • gui图形化界面
    • sdl图形化界面但是没有菜单常用于调试
    • headless在后台运行默认开启 vrdp 服务,可通过 RDP 远程桌面连接

以下命令都可以启动虚拟机并进行远程 RDP 连接:

VBoxManage startvm <vm uuid>|<vm name> --type headless
VBoxHeadless --startvm <vm uuid>|<vm name>

区别是 VBoxManage 是异步执行VBoxHeadless 默认是同步执行,会阻塞命令行。

关于 VNC 的一点说明

VNC 需要使用特别的 extension pack而且目前 VNC 不被 Oracle 官方支持,只能从源码构建该 extension pack。

参考资料

VBoxManage 命令行使用