Vboxmanage 实例

Posted mmzoe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vboxmanage 实例相关的知识,希望对你有一定的参考价值。

modifyvm 非运行状态时

controlvm 虚拟机运行时用

virtualbox 截图的另一种思路:向每个虚拟机发送printscreen键盘.用双向粘贴技术.但存一个问题比如

一个机器截图还没有把图取出,另一个机器又按下printscreen键盘.所以延时一定要处理好.

 

启动虚拟机:

   vboxmanage startvm x-0146

创建快照:

   vboxmanage snapshot x-0146 take 001

      为x-0146创建名为001的快照

   vboxmanage snapshot x-0146 take 002

      为x-0146创建名为002的快照

   vboxmanage snapshot x-0146 restore 001

      恢愎到快照001

创建连接克隆:

    创建连接克隆的必要条件是有快照

vboxmanage clonevm x-0146 --snapshot 001 --options link --name x-0147 --register

     将x-0146虚拟机的001的快照连接克隆为名为x-0147的虚拟机,并注册.

用法:

vboxmanage modifyvm x-0146 --nic3 bridged

    以桥接的方式为虚拟机X-0146分配(VBOX图形界面里的设置的网络里的)网卡3

vboxmanage modifyvm x-0146 --bridgeadapter3 "Realtek PCIe GBE Family Controller"

   将主系统里名为"Realtek PCIe GBE Family Controller"的网卡绑定给桥接网卡3{可以就一块是桥接,那么为什么是3呢?

这个是因为上条语句(vboxmanage modifyvm x-0146 --nic3 bridged)网卡数字是相同的}

在述设置的改变运行后仍然生效.

 

只在运行时起作的:

vboxmanage controlvm x-0146 nic3 bridged "Realtek PCIe GBE Family Controller"

 

 

使用VBoxManage时要记住两件事:第一,VBoxManage必须和一个具体和“子命令”一起使用,比如“list”或“createvm“或“startvm”。

第二,大多数子命令需要在其后指定特定的虚拟机。有两种方式:

指定虚拟机的名称,和其在GUI中显示的一样。注意,如果名称包含空格,必须将全部名称包含在双引号中(和命令行参数包含空格时的要求一样)。

windows下我们也能够让VirtualBox使用命令行,使其在后台运行

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

比如我们的虚拟机名字叫:ubuntu

VBoxManage startvm ubuntu --type headless

这样就可以在后台启动ubuntu了

其余我们常用的virtualBox的命令是: 1.查看可用的虚拟机:

VBoxManage list vms

查看可用虚拟机的详细信息:

VBoxManage list vms -l

2.启动指定虚拟机

VBoxManage startvm <uuid>|<name> [--type gui|sdl|headless]

type参数说明:
gui: 默认窗口
sdl: 简单窗口
headless: 无窗口

3.查看正在运行的虚拟机:

VBoxManage list runningvms

4.操作已经运行的虚拟机:

VBoxManage controlvm | pause|resume|reset|poweroff|savestate

暂停|恢复|重启|关机|休眠

5.修改配置(memory单位为MB):

VBoxManage modifyvm <uuid>|<name> --memory 256 --acpi on --boot1 disk -nic1 bridged

6.创建磁盘(–size 取值单位MB –sizebyte 取值单位字节)

VBoxManage createhd --filename RedHat9.vdi --size 8000

7.动态挂卸USB

vboxmanage controlvm WinXP3 usbattach 3bd984a4-3cf3-4a58-94fa-171cb0a1c3be
vboxmanage controlvm WinXP3 usbdetach 3bd984a4-3cf3-4a58-94fa-171cb0a1c3be

8.修改winxp3虚拟机的USB过虑器是否为活的

vboxmanage usbfilter modify 0 --target WinXP3 --active no

vboxmanage usbfilter modify 1 --target WinXP3 --active yes

我们可以使用VBoxManage –help查询

9.截图:

    vboxmanage controlvm x-0151 screenshot k:\\151.png

10.给虚拟机X分配1G的内存

    vboxmanage modifyvm x --memory 1024

 11.给虚拟机X分配3个CPU并且峰值限在80%

    vboxmanage modifyvm x --cpus 3 --cpuexecutioncap 80

查询资料还可以查询https://www.virtualbox.org/manual/ch08.html

下面摘自https://www.cnblogs.com/pbss/articles/1987361.html以便方便查询

VBoxManage [-v|-version]         显示virtualbox的版本号
VBoxManage -nologo               隐藏logo
VBoxManage -convertSettings      允许自动转换设置文件
VBoxManage -convertSettingsBackup  允许自动转换设置文件,并在转换前作备份
VBoxManage -convertSettingsIgnore  允许自动转换设置文件,但是不保存结果

VBoxManage list vms|runningvms   显示列表虚拟机|正在运行的虚拟机
               |ostypes|hostdvds virtualbox支持的系统类型|宿主机的光盘驱动器
               |hostfloppies     宿主机的软盘驱动器
               |hostifs|hostinfo 宿主机的网络接口|宿主机的信息
               |hdds|dvds        已注册的虚拟硬盘|已注册的虚拟光盘
               |floppies|usbhost 已注册的虚拟软盘|宿主机的USB设备
               |usbfilters       USB筛选器
               |systemproperties 虚拟机的基本信息

VBoxManage showvminfo <uuid>|<name>     显示指定虚拟机的信息
                     [-details]         显示详细信息
                     [-statistics]      显示统计信息
                     [-machinereadable] 以清晰的格式显示虚拟机信息

VBoxManage registervm  <filename>       将指定文件所在的虚拟机添加到列表

VBoxManage unregistervm <uuid>|<name>   从虚拟机列表清除指定的虚拟机
                        [-delete]       从虚拟机列表删除指定的虚拟机

VBoxManage createvm     -name <name>    创建指定名称的虚拟机
                        [-register]      将创建的虚拟机添加到列表
                        [-basefolder <path> 指定虚拟机的基础目录
                        [-settingsfile <path>] 指定虚拟机配置文件的基础目录
                        [-uuid <uuid>]  创建指定uuid的虚拟机

VBoxManage modifyvm     <uuid|name>       编辑指定的虚拟机的配置
                        [-name <name>]    修改虚拟机的名称
                        [-ostype <ostype>]修改虚拟机的操作系统类型
                        [-memory <memorysize>]   修改虚拟机的内存大小
                        [-vram <vramsize>]       修改虚拟机的显存大小
                        [-acpi on|off]           启动或禁止acpi电源管理接口
                        [-ioapic on|off]         启动或禁止I/O APIC电源管理接口
                        [-pae on|off]            启动或禁止CPU的PAE支持,PAE是
Physical Address Extension : 物理地址扩展
                        [-hwvirtex on|off|default]启动或禁止CPU的硬件虚拟化支持
                        [-nestedpaging on|off]    开启或关闭CPU的嵌套页面列表支持
                        [-monitorcount <number>]  设置显示器数目,VRDP多用户模式时                        [-bioslogofadein on|off]  开启或关闭bioslogo渐显效果
                        [-bioslogofadeout on|off] 开启或关闭bioslogo渐隐效果
                        [-bioslogodisplaytime <msec>]设置bioslogo显示时间(以毫秒为单位)
                        [-bioslogoimagepath <imagepath>]设置bioslogo图像路径,用于自定义bioslogo
                        [-biosbootmenu disabled| 设置是否显示bios启动菜单 关闭
                                       menuonly| 只菜单
                                       messageandmenu] 信息和菜单
                        [-biossystemtimeoffset <msec>] 设置bios系统时间补偿(以毫秒为单位)
                        [-biospxedebug on|off] 打开或关闭biospxe调试
                        [-boot<1-4> none|floppy|dvd|disk|net&gt;] 设置启动顺序
                        [-hd<a|b|d> none|<uuid>|<filename>] 为虚拟机添加三个IDE设备之一(第2个主盘被vm保留作为光驱,不能占用)在三个IDE中,你可以指定(硬盘)的vdi文件名或者它的UUID
                        [-idecontroller PIIX3|PIIX4] 设置IDE控制器的类型
                        [-sata on|off] 开启或关闭SATA硬盘控制器
                        [-sataportcount <1-30>] 设置虚拟机最多支持的SATA控制器数目
                        [-sataport<1-30> none| 没有硬盘连接到SATA控制器
                                       <uuid>| 指定uuid的硬盘连接到SATA控制器
                                       <filename>] 指定文件名的硬盘连接到SATA控制器
                        [-sataideemulation<1-4> <1-30>] 指定一个SATA设备工作在IDE兼容模式,IDE设备编号是1-4,SATA设备编号是1-30
                        [-dvd none| 不连接DVD光驱
                            <uuid>| 指定UUID的DVD光驱连接
                        <filename>| 将指定的光盘映像文件挂接到DVD光驱
                      host:<drive>] 将宿主机的DVD光驱挂接到虚拟机的DVD光驱
                        [-dvdpassthrough on|off]打开|关闭虚拟机里光盘的刻录功能
                        [-floppy disabled| 不连接软驱
                                    empty| 连接软驱但不插入软盘
                                   <uuid>| 指定UUID的软驱连接
                               <filename>| 将指定的软盘映像文件挂接到软驱驱
                             host:<drive>] 将宿主机的软驱驱挂接到虚拟机的软驱
                        [-nic<1-N> none| 虚拟机不添加网卡
                                   null| 虚拟机有网卡但不连接
                                    nat| 网络连接使用NAT模式
                                 hostif| 网络连接使用桥接模式
                                 intnet] 网络连接使用内部网络模式
                        [-nictype<1-N> Am79C970A| 虚拟机连接AMD PCNet PCI II网卡
                                        Am79C973| 虚拟机连接AMD PCNet FAST III网卡(默认)
                                         82540EM| 虚拟机连接Intel PRO/1000 MT Desktop网卡
                                         82543GC] 虚拟机连接Intel PRO/1000 T Server网卡
                        [-cableconnected<1-N> on|off]插入或拔出网线
                        [-nictrace<1-N> on|off] 开启或关闭网络追踪
                        [-nictracefile<1-N> <filename>] 将网络流量追踪数据保存到文件
                        [-nicspeed<1-N> <kbps>] 设置网络连接的速度
                        [-hostifdev<1-N> none| 不连接到主机网络接口
                                 <devicename>] 桥接模式下连接到指定的主机接口
                        [-intnet<1-N> <network name>] 内网模式下为虚拟机指定内部网络名称
                        [-natnet<1-N> <network>| 配置NAT网络接口的地址
                                        default] 默认NAT网络接口的地址是10.0.x.0/24
                        [-macaddress<1-N> auto| 自动生成虚拟网卡的MAC地址
                                         <mac>] 指定虚拟网卡的MAC地址
                        [-uart<1-N> off| 不启用虚拟串口
                        <I/O base> <IRQ>]启用虚拟串口,并设置虚拟串口的I/O参数和IRQ参数
                        [-uartmode<1-N> disconnected| 启用虚拟串口,但不连接到宿主机的串口
                                       server <pipe>| 在宿主机创建PIPE通道,并将虚拟机串口连接到这个通道
                                       client <pipe>| 不创建PIPE通道,而是将虚拟机串口连接到已存在的通道
                                       <devicename>] 将虚拟机串口连接到宿主机的串口
                        [-gueststatisticsinterval <seconds>] 配置虚拟机静态时间间隔
                        [-audio none| 虚拟机不连接声卡
                                null| 将虚拟机的声卡连接到空的声音设备
                              dsound] 将虚拟机的声卡连接到宿主机的声卡
                        [-audiocontroller ac97| 将虚拟机声卡虚拟为ICH AC97声卡
                                          sb16] 将虚拟机声卡虚拟为soundblaster 16声卡
                        [-clipboard disabled| 不共享剪贴板
                                 hosttoguest| 将宿主机的剪贴板共享给虚拟机
                                 guesttohost| 将虚拟机的剪贴板共享给宿主机
                               bidirectional] 宿主机和虚拟机共使用一个剪贴板
                        [-vrdp on|off] 开启|关闭virtualbox内置的VRDP服务器
                        [-vrdpport default| 使用默认的vrdp端口3389
                                    <port>] 指定vrdp端口
                        [-vrdpaddress <host>] 指定VRDP主机地址
                        [-vrdpauthtype null| 不用授权,任何客户机都可以连接到VRDP服务器
                                   external| 只有宿主机的用户才可以连接到VRDP服务器
                                      guest] 只有虚拟机的用户才可以连接到VRDP服务器
                        [-vrdpmulticon on|off] 打开|关闭VRDP多用户连接模式
                        [-vrdpreusecon on|off] 打开|关闭VRDP断线重连
                        [-usb on|off] 打开|关闭虚拟USB控制器
                        [-usbehci on|off] 打开|关闭虚拟USB2.0控制器
                        [-snapshotfolder default| 将系统快照保存到默认文件夹
                                          <path>] 将系统快照保存到指定文件夹

VBoxManage startvm      <uuid>|<name> 开启指定UUID|名称的虚拟机
                        [-type gui|vrdp] 设置虚拟机标准显示设备GUI界面|VRDP

VBoxManage controlvm    <uuid>|<name> 改变正在运行的虚拟机的状态
                         pause| 暂停,这时虚拟机窗口显示灰色
                        resume| 恢复暂停的虚拟机
                         reset| 复位
                      poweroff| 强行关闭
               acpipowerbutton| 关机
               acpisleepbutton| 使虚拟机处于睡眠状态
                     savestate| 保存状态然后关闭,相当于休眠
           keyboardputscancode <hex> [<hex> ...] 键盘扫描码设置
               setlinkstate<1-4> on|off 连接|断开网络连接
               usbattach <uuid>|<address> 连接到指定UUDI|地址的USB设备 
               usbdetach <uuid>|<address> 断开指定UUDI|地址的USB设备  
               dvdattach none| 不连接虚拟DVD光驱
                       <uuid>| 连接到指定UUID的DVD光驱
                   <filename>| 连接到指定名称的DVD映像文件
                  host:<drive> 连接到宿主机的DVD光驱
               floppyattach none| 不连接虚拟软驱
                          <uuid>| 连接到指定UUID的虚拟软驱
                      <filename>| 连接到指定名称的软盘映像文件
                     host:<drive> 连接到宿主机的软驱

               setvideomodehint <xres> 设置虚拟机的屏幕分辨率 水平像素
                                <yres> 垂直像素
                                 <bpp> 颜色深度
                             [display] 刷新频率
               setcredentials <username> 指定VRDP自动连接参数 用户名
                              <password> 密码
                                <domain> 域
             [-allowlocallogon <yes|no>] 允许|禁止本地登陆

VBoxManage discardstate     <uuid>|<name> 丢弃指定UUID|名称的虚拟机的保存状态

VBoxManage adoptstate       <uuid>|<name> <state_file> 将虚拟机从指定的保存状态中恢复

VBoxManage snapshot         <uuid>|<name> 为指定的虚拟机拍快照
                            take <name> 为快照取名
                        [-desc <desc>]| 给快照添加描述
                        discard <uuid>|<name> | 丢弃指定的快照
                        discardcurrent -state| 恢复到最近的快照
                                        -all | 恢复到倒数第二个快照
                        edit <uuid>|<name>| 编辑指定的快照
                                   -current 编辑当前快照
                          [-newname <name>] 修改快照名称
                          [-newdesc <desc>] 修改快照描述
                        showvminfo <uuid>|<name> 显示快照的虚拟机信息

VBoxManage registerimage    disk|dvd|floppy <filename> 注册硬盘、光盘、软盘映像文件
                            [-type normal| 注册为普通类型(可创建快照,可读写)
                                immutable| 注册为只读类型(相当于加了硬盘卡)
                             writethrough] 注册为可写类型(这种类型不能创建快照)
                               (disk only) (注册类型选项只适用于硬盘)

VBoxManage unregisterimage  disk| 从虚拟介质管理器删除指定的硬盘
                             dvd| 从虚拟介质管理器删除指定的DVD光盘 
                           floppy 从虚拟介质管理器删除指定的软盘
                          <uuid>| 删除时指定UUID
                       <filename> 删除时指定映像文件

VBoxManage showvdiinfo      <uuid>|<filename> 显示指定UUID|名称虚拟硬盘的信息


VBoxManage createvdi        -filename <filename> 创建指定名称的虚拟硬盘
                            -size <megabytes> 指定虚拟硬盘的大小(以兆为单位)
                            [-static] 创建固定大小的虚拟硬盘
                            [-comment <comment>] 添加一段解释性文字
                            [-register] 注册新创建的虚拟硬盘
                            [-type normal| 注册类型 普通(可以创建快照)
                             writethrough] 注册类型 可写(不能创建快照)
                          (default: normal) 默认是普通类型
VBoxManage modifyvdi        <uuid>|<filename> compact 压缩指定的虚拟硬盘

VBoxManage clonevdi         <uuid>|<filename> <outputfile> 克隆指定的VDI虚拟硬盘

VBoxManage convertdd        [-static] <filename> <outputfile> 将raw硬盘转换成vdi虚拟硬盘
VBoxManage convertdd        [-static] stdin <outputfile> <bytes> 将标准输入参数指定的设备转换成vdi虚拟硬盘,比如:dd if=/dev/sda1 | VBoxManage convertdd stdin /media/disk/C.vdi

Dos批处理片断LOOP

@echo off
set /a v=0
:loop
set /a v+=1
echo %v%
dir %v%
if %v% neq 2 goto loop
pause

 

批量linkclone

@echo off
set /a v=0
:loop
set /a v+=1
vboxmanage clonevm x0 --snapshot 01 --options link --name x-08%v% --register
if %v% neq 7 goto loop
pause

 

我的常用批处理(链接克隆)

echo off
set i=0
:LOOP
set /a i+=1
vboxmanage clonevm x0 --snapshot 01 --options link --name x-0%1%i% --register
if %i% equ 1 goto BG1
if %i% equ 2 goto BG2
if %i% equ 3 goto BG3
if %i% equ 4 goto BG4
if %i% equ 5 goto BG5
if %i% equ 6 goto BG6
if %i% equ 7 goto BG7
goto ISLOOP
:BG1
vboxmanage modifyvm x-0%1%i% --nic1 bridged
vboxmanage modifyvm x-0%1%i% --bridgeadapter1 "Realtek PCIe GBE Family Controller"
goto ISLOOP
:BG2
vboxmanage modifyvm x-0%1%i% --nic1 bridged
vboxmanage modifyvm x-0%1%i% --bridgeadapter1 "Realtek PCIe GBE Family Controller #2"
goto ISLOOP
:BG3
vboxmanage modifyvm x-0%1%i% --nic1 bridged
vboxmanage modifyvm x-0%1%i% --bridgeadapter1 "Intel(R) PRO/1000 MT Dual Port Network Connection"
goto ISLOOP
:BG4
vboxmanage modifyvm x-0%1%i% --nic1 bridged
vboxmanage modifyvm x-0%1%i% --bridgeadapter1 "Intel(R) PRO/1000 MT Dual Port Network Connection #2"
goto ISLOOP
:BG5
vboxmanage modifyvm x-0%1%i% --nic1 bridged
vboxmanage modifyvm x-0%1%i% --bridgeadapter1 "Intel(R) 82580 Gigabit Network Connection"
goto ISLOOP
:BG6
vboxmanage modifyvm x-0%1%i% --nic1 bridged
vboxmanage modifyvm x-0%1%i% --bridgeadapter1 "Intel(R) 82580 Gigabit Network Connection #2"
goto ISLOOP
:BG7
vboxmanage modifyvm x-0%1%i% --nic1 bridged
vboxmanage modifyvm x-0%1%i% --bridgeadapter1 "Intel(R) 82580 Gigabit Network Connection #3"
goto ISLOOP
:ISLOOP
if %i% lss 7 goto LOOP
pause
echo on

以上是关于Vboxmanage 实例的主要内容,如果未能解决你的问题,请参考以下文章

预创建检查出错:“未找到 VBoxManage。确保已安装 VirtualBox,并且 VBoxManage 在路径中”

片段事务中的实例化错误

web前端开发JQuery常用实例代码片段(50个)

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

创建片段的新实例时菜单未膨胀

VBoxManage:错误:无法创建仅主机适配器[关闭]