72 lines
3.5 KiB
Markdown
72 lines
3.5 KiB
Markdown
# 命令行下使用 Virtualbox
|
||
|
||
## 设置虚拟机
|
||
|
||
```bash
|
||
# 创建并注册虚拟机
|
||
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 | Descriptions |
|
||
|-------------------------|--------------|
|
||
| --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是否为客户机提供合成CPU(synthetic 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 | 如果启用硬件虚拟化,此附加选项启用或禁用主机系统处理器的标签TLB(VPID)功能 |
|
||
| --accelerated3d on|off | 如果安装有客户机附件,决定硬件3D加速是否可用 |
|
||
| --snapshotfolder default\|\<path\> | 指定虚拟机快照存放的目录 |
|
||
| --firmware efi\|bios | 指定虚拟机使用的启动固件,EFI或BIOS |
|
||
|
||
## 查询和启动虚拟机
|
||
|
||
```bash
|
||
# 获取虚拟机列表
|
||
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 连接:
|
||
|
||
```bash
|
||
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 命令行使用](https://www.cnblogs.com/luhouxiang/p/3275102.html)
|