VBoxManage 命令行使用
原文地址:http://cnjun939.blog.163.com/blog/static/78144538201251474311135/
由于最近需研究virtualbox,看好看到上面的网址有,只不过不全是自己要的,且网页太花,看起来痛苦,先将之拷过来,然后修改之。
VBoxManage是VirtualBox的命令行接口。利用他,你可以在主机操作系统的命令行中完全地控制VirtualBox。VBoxManage支持GUI可访问的全部功能,而且更多。VBoxManage展示了虚拟化引擎的全部特征,包括GUI无法访问的。
列一下,你需要使用命令行:
使用主GUI之外的用户接口(例如,VBoxSDL或VBoxHeadLess服务器);
控制更多高级和实验性的配置。
使用VBoxManage时要记住两件事:
第一,VBoxManage必须和一个具体和“子命令”一起使用,比如“list”或“createvm“或“startvm”。
第二,大多数子命令需要在其后指定特定的虚拟机。有两种方式:
指定虚拟机的名称,和其在GUI中显示的一样。注意,如果名称包含空格,必须将全部名称包含在双引号中(和命令行参数包含空格时的要求一样)。
例如:
VBoxManage startvm "Windows XP"
指定其UUID,VirtualBox用来引用虚拟机的内部唯一标识符。设上述名称为“Windows XP”的虚拟机有如下UUID,下面的命令有同样的效果:
VBoxManage startvm 670e746d-abea-4ba6-ad02-2a3b043810a5
使用VBoxManage list vms可列出当前注册的所有虚拟机的名称及其对应的UUID。
通过命令行控制VirtualBox的典型用法如下:
使用命令新建虚拟机并立即在VirtualBox中注册,使VBoxManage createvm的--register选项:
$ VBoxManage createvm --name "SUSE 10.2" --register
VirtualBox Command Line Management Interface Version 3.1.6
(C) 2005-2010 Sun Microsystems, Inc.
All rights reserved.
Virtual machine 'SUSE 10.2' is created.
UUID: c89fc351-8ec6-4f02-a048-57f4d25288e5
Settings file: '/home/username/.VirtualBox/Machines/SUSE 10.2/SUSE 10.2.xml'
从上面的输出可以看到,一个新的虚拟机被创建,带有一个新的UUID和新的XML的设置文件。
显示虚拟机的配置,使用VBoxManage showvminfo;详见“VBoxManage showvminfo”。
修改虚拟机的设置,使用VBoxManage modifyvm,例如:
VBoxManage modifyvm "Windows XP" --memory "512MB"
详见“VBoxManage modifyvm”。
控制虚拟机的运行,使用下列其中一个:
启动当前关闭的虚拟机,使用VBoxManage startvm;详见“VBoxManage startvm”。
暂停或保存当前运行的虚拟机,使用VBoxManage controlvm;详见“VboxManage controlvm”。
命令概述
不带参数运行VBoxManage或使用了无效的参数,将显示下面的语法图。注意,根据主机平台,输出可能会稍有不同;如有疑问,请检查VBoxManage在您的特定主机的可用命令输出。
(译者注:没翻译语法图,请运行VBoxManage查看输出,原文见http://www.virtualbox.org/manual/ch08.html#id2535703)。
每次调用VBoxManage,只能执行一个命令。但是,一个命令可能支持几个子命令在同一行被调用。接下来的部分是每个命令的详细参考。
VBoxManage list
list命令提供你的系统和VirtualBox当前设置的相关信息。
VboxManage list有如下可用子命令:
vms 列出当前在VirtualBox注册的所有虚拟机。默认显示包含每个虚拟机的名字和UUID的紧凑列表。如果指定了--long或--l参数,将显示和showvminfo命令一样的详细列表。
runningvms 用和vms相同的格式列出当前正在运行的虚拟机的唯一标识符(UUID)。
hdds,dvds,floppies 显示当前所有在VirtualBox注册的虚拟磁盘镜像的信息,包括其所有设置,在VirtualBox中的UUID和与其关联的所有文件。
ostypes 列出VirtualBox目前支持的所有客户机操作系统,及其在modifyvm命令中引用它的标识符。
hostdvds,hostfloppies,hostifs 相应地,列出主机上的DVD,软驱和网络接口,及用来在VirtualBox中访问他们的名字。
hostusb 提供主机上的USB设备的信息,特别是用来建立USB筛选器的信息和当前是否被主机使用。
usbfilters 列出所有在VirtualBox中注册的全局USB筛选器——即,所有虚拟机都可能访问的设备的筛选器——及其参数。
systemproperties 显示部分VirutalBox的全局设置,比如客户机内存和虚拟硬盘尺寸的最大和最小值,文件夹设置和当前使用的验证库。
hddbackends 列出所有VirtualBox已知的硬盘驱动器后端。除了后端本身的名字,还显示了功能说明、配置和其他有用信息。
VBoxManage showvminfo
showvminfo命令显示特定虚拟机的信息。这和VBoxManage list vms --long为所有虚拟机显示的内容相同。
你将得到类似下面的信息:
$ VBoxManage showvminfo "Windows XP"
VirtualBox Command Line Management Interface Version 3.1.6
(C) 2005-2010 Sun Microsystems, Inc.
All rights reserved.
Name: Windows XP
Guest OS: Other/Unknown
UUID: 1bf3464d-57c6-4d49-92a9-a5cc3816b7e7
Config file: /home/username/.VirtualBox/Machines/Windows XP/Windows XP.xml
Memory size: 512MB
VRAM size: 12MB
Number of CPUs: 2
Synthetic Cpu: off
Boot menu mode: message and menu
Boot Device (1): DVD
Boot Device (2): HardDisk
Boot Device (3): Not Assigned
Boot Device (4): Not Assigned
ACPI: on
IOAPIC: on
PAE: on
Time offset: 0 ms
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging: on
VT-x VPID: off State: powered off (since 2009-10-20T14:52:19.000000000) Monitor count: 1 3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Storage Controller (0): IDE Controller
Storage Controller Type (0): PIIX4
Storage Controller (1): Floppy Controller 1
Storage Controller Type (1): I82078
IDE Controller (0, 0): /home/user/windows.vdi (UUID: 46f6e53a-4557-460a-9b95-68b0f17d744b)
IDE Controller (0, 1): /home/user/openbsd-cd46.iso (UUID: 4335e162-59d3-4512-91d5-b63e94eebe0b)
Floppy Controller 1 (0, 0): /home/user/floppy.img (UUID: 62ac6ccb-df36-42f2-972e-22f836368137)
NIC 1: disabled
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
UART 1: disabled
UART 2: disabled
Audio: disabled (Driver: Unknown)
Clipboard Mode: Bidirectional
VRDP: disabled
USB: disabled
USB Device Filters:
<none>
Shared folders:
none>
Statistics update: disabled
VBoxManage registervm/unregistervm
registervm命令可以将一个XML格式的虚拟机定义导入VirtualBox。这存在一些限制:不能和已经在VirtualBox中存在的虚拟机冲突;不能带有硬盘或可移动磁盘。可以在定义之前将定义文件放进虚拟机文件夹。
注意
用VBoxManage createvm(见下)创建新的虚拟机时,可以直接指定--register参数避免单独注册。
unregistervm命令注销一个虚拟机。如果同时指定了--delete参数,XML定义文件将被删除。
VBoxManage createvm
这个命令创建一个新的XML虚拟机定义文件。
参数--name <name>是必需的,而且必须指定计算机的名称。由于这个名字默认用作配置文件(扩展名为.xml)和虚拟机文件夹(.VirtualBox/Machines目录的子目录)的文件名,必须符合主机操作系统对文件名的要求。如果虚拟机被重命名,设置文件和文件夹名会自动更改。
然而,如果使用了--basefolder <path>和--settingsfile <filename>参数,XML定义文件将用<filename>命名,虚拟机文件夹用<path>指定。这种情况下,虚拟机的名字改变时,设置文件和虚拟机文件夹的名字不会随之更改。
默认情况下,该命令只创建XML文件而不自动在VirtualBox中注册。为了即刻注册虚拟机,使用--register参数或单独运行VBoxManage registervm。
VBoxManage modifyvm
该命令调整已注册虚拟机的属性。该命令可用的属性对应于VirtualBox GUI在每个虚拟机“设置”对话框显示的虚拟机设置;详见第三章 配置虚拟机。然而,一些更高级的设置只在VBoxManage下可用。
常规设置
VBoxManage modifyvm可用于下面的常规设置:
--name <name>:改变虚拟机的名称,可能会重命名内部的虚拟机文件,如上面的VBoxManage createvm所述。
--ostype <ostype>:指定虚拟机中将运行的操作系统。使用VBoxManage list ostypes了解这里可用的各种标识符。
--memory <memorysize>:设置虚拟机从主机分配的内存大小,单位MB。更多信息见“创建第一个虚拟机”。
--vram <vramsize>:指定虚拟显卡可以使用的显存大小。详见“显示设置”。
--acpi on|off;--ioapic on|off:相应地决定虚拟机是否支持ACPI和I/O APIC。
--cpus <cpucount>:为虚拟机设置虚拟CPU的个数。(见“‘处理器’标签”)。
--synthcpu on|off:决定VirtualBox是否为客户机提供合成CPU(synthetic CPU),以允许在显著不同的主机系统之间实时迁移(live migration)。
--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加速是否可用;见“硬件3D加速(OpenGL和Direct3D 8/9)”。
你可以通过一系列的设置控制虚拟机启动时的BIOS logo。默认显示VirtualBox logo。
使用--bioslogofadein on|off和--bioslogofadeout on|off,你可以分别决定logo是否可以淡入淡出。
使用--bioslogodisplaytime <msec>,你可以设置logo的可见时间,单位为毫秒。
使用--bioslogoimagepath <imagepath>,如果你是so inclined,你可以将显示的图片替换成你自己的logo。图片必须是未压缩的256色BMP文件。
--biosbootmenu disabled|menuonly|messageandmenu:决定BIOS是否允许用户选择临时的启动设备。menuonly不显示消息,但用户可以按下F12选择临时的启动设备。
--boot<1-4> none|floppy|dvd|disk|net:为虚拟机指定启动顺序。有四个选项,虚拟将尝试从1到4访问,每一个你都可以设置虚拟机试图启动的设备。
--snapshotfolder default|<path>:指定虚拟机快照存放的目录。
--firmware efi|bios:指定虚拟机使用的启动固件:EFI或BIOS。仅在你完全明白所作的事情时使用EFI。
网络设置
VBoxManage modifyvm可用于下面的网络设置:
--nic<1-N> none|null|nat|bridged|intnet|hostonly:为每一块虚拟网卡设置可用的网络连接类型。可供选择的是不存在(none),不连接到主机上(null),使用网络地址转换(nat),桥接网络(bridged),使用内部网络和其他虚拟机通信(intnet)或主机专用网络(hostonly)。这些选项对应的模式在“网络模式介绍”中有详细说明。
--nictype<1-N> Am79C970A|Am79C973|82540EM|82543GC|82545EM|virtio:这允许你为虚拟机的每一块网卡指定VirtualBox提供给客户机的网络硬件;见“虚拟网络硬件”。
--cableconnected<1-N> on|off:允许你临时断开一个虚拟网络接口;就像真实网卡的网线被拔出。这对重新设置虚拟机中的某些软件非常有用。
使用“nictrace”选项,你可以通过向其发送一个文件跟踪网络流量,作为调试用。
使用--nictrace<1-N> on|off,你可以为特定的虚拟网卡启用网络跟踪。
如果启用,必须通过--nictracefile<1-N> <filename>指定使用的文件。
--bridgeadapter<1-N> none|<devicename>:如果为虚拟网卡选择了桥接网络(见上面的--nic选项;否则这个设定不起作用),使用该选项指定虚拟网络接口使用主机上的哪一个接口。详见“桥接网络”。
--hostonlyadapter<1-N> none|<devicename>:如果为虚拟网卡选择了主机专用网络(见上面的--nic选项;否则这个设定不起作用),使用该选项指定虚拟网络接口使用主机专用接口。详见“主机专用网络”。
--intnet<1-N> network:如果为虚拟网卡选择了内部网络(见上面的--nic选项;否则这个设定不起作用),使用该选项指定内部网络名(详见“内部网络连接”)。
macaddress<1-N> auto|<mac>:使用这个选项为虚拟网卡设置MAC地址。通常,VirtualBox在创建虚拟机时为其分配一个随机的地址。
串口,音频,剪贴板,VRDP和USB设置
VBoxManage modifyvm可用于下面的其他硬件设置:
--uart<1-N> off|<I/O base> <IRQ>:用此选项为虚拟机配置虚拟串口;参见“串口”部分。
--uartmode<1-N> <arg>:此选项控制VirtualBox如何将给定的虚拟串口(预先使用--uartX配置好,见上)连接到虚拟机所在的主机。“串口”部分已经详细说明,对每一个这样的端口,你可以为<arg>指定如下选项:
disconnected:串口对客户机可见,但没有“另一端”——就像没有电缆连接的真实COM端口。
server <pipename>:在Windows主机上,此选项告诉VirtualBox在主机上创建一个名为<pipename>的命名管道并将虚拟串行设备连接其上。注意,Windows的命名管道名称以\\.\pipe\开始。
在Linux主机上,将使用一个本地域套接字而不是命名管道。
client <pipename>:这个操作与server...类似,只是不由VirtualBox创建管道(或本地域套接字),但假设其已经存在。
<devicename>:除上述以外,如果指定了主机上的物理硬件串口,虚拟串口被边接到物理串口。在Windows主机上,设备名称将是COM端口,比如COM1;在Linux主机上,设备名称类似于/dev/ttyS0。这允许你“wire”一个真正的串口到虚拟机。
--clipboard disabled|hosttoguest|guesttohost|bidirectional:利用此设置,你可以选择客户机操作系统是否与主机共享剪贴板;见“常规设置”。这需要虚拟机装有客户要附件。
--monitorcount <count>:启用VRDP的多显示器支持;见“客户机多显示器”。
--usb on|off:此选项启用或禁用虚拟机的虚拟USB控制器;见“USB设置”。
--usbehci on|off:些选项启用或禁用虚拟机的USB2.0控制器;见“USB设置”。
远程机器设置 Remote machine settings
VBoxManage modifyvm可用于以下影响远程机器行为的设置:
--vrdp on|off:启用或禁用VirtualBoxGUI内置的VRDP服务器。注意,如果使用VBoxHeadless(见“VBoxHeadless,VRDP-only服务器),VRDP输出总是被启用。
--vrdpport default|<ports>:VRDP服务器能够绑定的一个端口或端口范围;“default”或“0”表示3389,RDP标准端口。你可以指定一个逗号分隔的端口或端口范围列表。在两个端口号之间使用连字符指定范围。VRDP服务器将从指定的列表中绑定可用的一个。一个端口只能被一个机器使用。例如,选项--vrdpport 5000,5010-5012告诉服务器绑定以下端口:5000,5010,5011,5012。
--vrdpauthtype null|external|guest:这允许你选择是否和如何执行验证;详见“RDP验证”。
--vrdpmulticon:允许到同一VRDP服务器的多个连接;见“VRDP多连接”。
Teleporting设置
(译者注:关于teleporting,请参见linuxtoy.org上的讨论:VirtualBox实时迁移实验。)
使用VBoxManage modifyvm命令,你可以将一台虚拟机成teleporting的目的主机。参见“Teleporting”。
--teleporter on|off:通过此选项设置虚拟机启动时是否等待网络上的teleporting请求。如果选择“on”,虚拟机启动时,不会像通常一样启动虚拟机;相反,它等待从以下两个参数配置的端口和地址传来的teleporting请求。
--teleporterport <port>,--teleporteraddress <address>:必须和--teleporter一起使用;告诉虚拟机在哪个端口和地址监听其他虚拟机传来的teleporting请求。<port>可以是任何没被使用的TCP/IP端口号(比如6000);<address>可以是任何IP地址或主机名并指定绑定到的TCP/IP套接字。默认值是“0.0.0.0”,表示任何地址。
--teleporterpassword <password>:如果设置了些可选参数,只有当源虚拟机指定了和此命令给定的相同的密码,teleporting请求都会成功。
--cpuid <leaf> <eax> <ebx> <ecx> <edx>:高级用户可以在teleporting操作前使用这些命令限制VritualBox提供给客户机操作系统的虚拟CPU的功能。这必须在teleporting的源和目的主机上运行,将修改客户机执行CPUID机器指令时所看到的。这有助于那些错误地假设某些CPU功能是可用的misbehaving应用程序。参数的意思和硬件相关;请查阅AMD和Intel的处理器用户手册。
VBoxManage import
此命令通过复制虚拟磁盘镜像并在VirtualBox中创建虚拟机导入一个OVF格式的虚拟电脑。虚拟电脑的介绍见“导入和导出虚拟机”。
import子命令至少需要一个OVF文件的路径作为输入,并假设磁盘镜像,如果需要的话,与OVF文件在同一文件夹。有大量的其他命令行选项用来详细控制哪些东西被导入并修改导入参数,但细节取决于OVF文件的内容。
因此,建议首先运行带--dry-run或-n参数的import子命令。这将在屏幕上打印虚拟电脑如何被导入VirtualBox的说明,及控制导入行为的可选命令行参数。
作为例子,这是一个典型的包含Windows XP客户机虚拟电脑的屏幕输出:
VBoxManage import WindowsXp.ovf --dry-run
Interpreting WindowsXp.ovf...
OK.
Virtual system 0:
0: Suggested OS type: "WindowsXP"
(change with "--vsys 0 --ostype <type>"; use "list ostypes" to list all)
1: Suggested VM name "Windows XP Professional_1"
(change with "--vsys 0 --vmname <name>")
3: Number of CPUs: 1
(change with "--vsys 0 --cpus <n>")
4: Guest memory: 956 MB
(change with "--vsys 0 --memory <MB>")
5: Sound card (appliance expects "ensoniq1371", can change on import)
(disable with "--vsys 0 --unit 5 --ignore")
6: USB controller
(disable with "--vsys 0 --unit 6 --ignore")
7: Network adapter: orig bridged, config 2, extra type=bridged 8: Floppy
(disable with "--vsys 0 --unit 8 --ignore")
9: SCSI controller, type BusLogic
(change with "--vsys 0 --unit 9 --scsitype {BusLogic|LsiLogic}"; disable with "--vsys 0 --unit 9 --ignore")
10: IDE controller, type PIIX4
(disable with "--vsys 0 --unit 10 --ignore")
11: Hard disk image: source image=WindowsXp.vmdk, target path=/home/user/disks/WindowsXp.vmdk, controller=9;channel=0
(change controller with "--vsys 0 --unit 11 --controller <id>"; disable with "--vsys 0 --unit 11 --ignore")
可以看到,每一个配置项都被编号,并根据其类型支持不同的命令行参数。import子命令可使用--vsys X --unit Y --ignore选项忽略许多配置项;X指虚拟系统的编号(0除非套件中存在几个虚拟系统说明),Y指配置项编号,如被打印在屏幕上的。
在上面的例子中,选项#1指定了VirtualBox中的目标机器的名称。选项#9和#10分别指定了磁盘控制器。选项#11描述了硬盘镜像;这里,附加的--controller选项指示磁盘镜像被连接到哪个控制器,默认来自OVF文件。
在同一--vsys选项后可结合多个对同一个虚拟系统的配置项。比如,导入一个由OVF描述的虚拟机,不要声卡和USB控制器,磁盘镜像连接到IDE控制器而不是SCSI控制器,使用:
VBoxManage import WindowsXp.ovf
--vsys 0 --unit 5 --ignore --unit6 --ignore --unit11 --controller 10
VBoxManage export
此命令从VirtualBox中导出一个或多个虚拟机到OVF格式的虚拟机套件,并将其虚拟磁盘镜像复制到压缩的VMDK。关于套件的简介,见“导入和导出虚拟机”。
export命令的使用很简单:给出想要导出到同一OVF文件的虚拟机并在附加的--output或-o选项后指定目标OVF文件。注意,目标OVF文件目录将接收以压缩的VMDK格式(不管原格式是什么)输出的磁盘镜像,所以应当为其留有足够的磁盘空间。
除了简单的输出给定虚拟机,还可以附加一些产品信息套件文件。使用--product,--producturl,--vendor,--vendorurl和--version指定这些额外信息。由于法律上的原因,你可能会添加许可证文本或许可证文件,相应地使用--eula和--eulafile选项。和OVF导入一样,你必须使用--vsys X选项将前面提到的选项指向正确的虚拟机。
对于无法完全兼容OVF标准1.0的虚拟化产品,使用--legacy09选项启用OVF0.9传统模式。
VBoxManage startvm
此命令启动一个当前状态为“已关闭”或“已休眠”的虚拟机。
注意
这只是为向后兼容而提供。我们推荐运行相应的前端直接启动虚拟机,否则你可能会错过VirtualBox输出到终端的重要的错误和状态信息。这对除了VirtualBox之外的其他前端尤其重要,因为他们不能通过弹出窗口显示错误消息。更多信息见“VBoxHeadless,the VRDP-only server”。
可选地--type参数决定虚拟机在窗口(GUI模式,这是默认值)中启动或是通过VBoxHeadless,是否启用VRDP,输出。
可以使用以下值:
gui
启动虚拟机并显示GUI窗口。这是默认值。
vrdp
启动虚拟机并显示GUI窗口,其显卡输出可被RDP客户端访问。
headless
启动虚拟机,只为远程RDP显示,不显示窗口,
VBoxManage controlvm
controlvm子命令允许你改变正在运行的虚拟机的状态。可指定以下值:
VBoxManage controlvm <vm> pause临时暂停虚拟机不改变其状态。虚拟机窗口变灰,显示当前为暂停状态。(等效于在GUI窗口“虚拟机”菜单中选择“暂停”。)
使用VBoxManage controlvm <vm> resume取消前面的pause命令。(等效于在GUI窗口“虚拟机”菜单中选择“恢复”。)
VBoxManage controlvm <vm> reset 对虚拟机有在真实的电脑上按下“Reset”键相同的效果:虚拟机冷启动,直接重启客户机操作系统。虚拟机的状态不会被保存,数据可能会丢失。(等效于在GUI窗口“虚拟机”菜单中选择“重启”。)
VBoxManage controlvm <vm> poweroff 对虚拟机有在真实的电脑上拔下电源线相同的效果。同样,虚拟机的状态不会被保存,数据可能会丢失。(等效于在GUI窗口“虚拟机”菜单中选择“关闭”或点击窗口的关闭按钮然后在对话框中选择“关闭虚拟机电源”。)
这之后,虚拟机的状态是“已关闭”。在此,可以被重新启动;见“VBoxManage startvm”。
VBoxManage controlvm <vm> savestate 将虚拟机的当前状态保存到磁盘并停止虚拟机。(等效于在GUI窗口“虚拟机”菜单中选择“关闭”或点击窗口的关闭按钮然后在对话框中选择“保存虚拟机状态”)
这之后,虚拟机的状态是“已保存”。在此,可以被重新启动;见“VboxManage startvm”。
VBoxManage controlvm <vm> teleport --hostname <name> --port <port> [ --password <password> ] 使虚拟机成为teleporting操作的源主机,并初始化到给定目的主机的teleport,见“teleporting”。如果指定了可选的密码,必须与modifyvm命令为目的主机设置的密码相匹配。详见“teleporting设置”。
一些不直接影响虚拟机运行状态的controlvm可用额外选项:
setlinkstate<1-N>操作,从网络接口处连接或断开虚拟机的网线。
nic<1-N> null | nat | bridged | intnet | hostonly:设置虚拟机每一块虚拟网卡可用的网络连接类型。可以是不连接到主机(null),使用网络地址转换(nat),桥接网络(bridged),使用内部网络与其他虚拟机通信(intnet)或仅主机网络(hostonly)。这些选项对应于详细“网络连接模式介绍”中说明的模式。
usbattach 和 usbdettach 使主机USB设备直接对虚拟机可用,不需要先建立筛选器。USB设备可通过UUID(唯一识别符)或在主机系统中的地址指定。
可以使用VBoxManage list usbhost找到此信息。
vrdp on|off 启用或禁用内建的VRDP服务器。
vrdpport defautl|<ports> 改变VRDP服务器能够绑定的端口或端口范围;“default”或“0”表示标准RDP端口3389。关于--vrdpport选项的详细说明,见“串口,音频,剪贴板,VRDP和USB设置”。
setvideomodehint 请求客户机系统改变到特定的视频模式。需要安装客户机附件,且不是对所有客户机有效。
setcredentials 用于Windows客户机的远程登陆。详见“Windows客户机自动登陆”。
VBoxManage discardstate
此命令清除当前未运行的虚拟机的保存状态,下次启动时操作系统会重新启动。这相当于在物理机器上拔掉电源线,应该尽可能地避免。
VBoxManage snapshot
此命令用于在命令行下控制快照。一个快照包含拍照时虚拟机设置的完整拷贝,并可选的包含虚拟机的状态文件,如果快照是在虚拟机运行时取得。取得快照后,VirtualBox为每一个与虚拟机关联的硬盘创建差异硬盘,所以当快照被恢复时,虚拟硬盘的内容能够通过丢简单地丢弃预先存在的差异文件而快速恢复。
take操作取得虚拟机当前状态的快照。你必须为快照提供一个名字,及可选地说明。新的快照作为当前快照的孩子被插入快照树并成为新的当前快照。
delete操作删除一个快照(通过名称或UUID指定)。这可能需要一段时间才能完成,因为与快照关联的差异镜像需要与其子差异镜像合并。
restore操作通过重置虚拟机的设置和当前状态恢复到给定快照(通过名称或UUID指定)。虚拟机的前一个当前状态将会丢失。这之后,给定的快照成为新的“当前”快照,随后的快照将被插入到被恢复的快照之下。
restorecurrent操作是恢复当前快照的捷径(即从当前状态产生的快照)。此命令等效于使用以当前快照的名称或UUID为参数的“restore”子命令,但避免了决定名称或UUID的多余步骤。
利用edit操作,可以改变已存在的快照的名称和说明。
利用showvminfo操作,可以查看保存有已存在快照虚拟机设置。
VBoxManage openmedium/closemedium
这些命令在VirtualBox中注册或注销硬盘,DVD或软盘镜像。这是虚拟媒体管理器的命令行等效;更多信息见“虚拟媒体管理器”。
注意
为了与更早的VirtualBox兼容,“registerimage”和“unregisterimage”命令也被支持,相应地在内部被映射到“openmedium”和“closemediums”命令。
注册镜像时,可选地,你可以为其指定新的UUID。对于硬盘,其父UUID也能被改变。
注销镜像时,可选地,你可以指定删除镜像。你可能会得到报告信息“删除失败”,但不管怎样镜像将会成为未注册。
VBoxManage storagectl/storageattach
这些命令允许为虚拟机连接新的存储控制器,修改或移除已存在的;也允许用户改变连接其上的硬盘,DVD或软盘镜像。连接到虚拟机的存储控制器的列表通过下面的命令获得:
VBoxManage showvminfo <vmname>
见“VBoxManage showvminfo”。
VBoxManage storagectl
此命令连接/修改/移除存储控制器。语法如下:
VBoxManage storagectl <uuid|vmname>
--name <name>
[--add <ide/sata/scsi/floppy>]
[--controller <LsiLogic/BusLogic/IntelAhci/PIIX3/PIIX4/ICH6/I8207>]
[--sataideemulation<1-4> <1-30>]
[--sataportcount <1-30>]
[--remove]
各参数表示:
uuid|vmname
虚拟机UUID或名称。必须。
name
存储控制器的名称。必须。
add
定义存储控制器必须被连接到的系统总线的类型。
controller
允许选择给定存储控制器模拟的芯片组类型。
sataideemulation
指定哪一个SATA端口工作于IDE模拟模式。如“硬盘控制器:IDE,SATA(AHCI),SCSI”所述,默认为SATA端口1-4;通过此命令,你可以映射4个IDE通道到任何一个被支持的SATA端口。
sataportcount
决定SATA控制器支持的端口数量。
remove
从虚拟机配置中移除存储控制器。
VBoxManage storageattach
此命令连接/修改/移除连接到由--storagectl指定的存储控制器的存储介质。语法如下:
VBoxManage storageattach <uuid|vmname>
--storagectl <name>
--port <number>
--device <number>
[--type <dvddrive|hdd|fdd> --medium <nome|emptydrive|uuid|filename|host:<drive>>]
[--passthrough <on|off>]
[--forceunmount]
各参数表示:
uuid|vmname
虚拟机UUID或名称。必须。
storagectl
存储控制器的名称。必须。
port
介质将被连接/断开/修改的端口号。必须。
device
介质将被连接/断开/修改的设备号。必须。
type
定义 介质将被连接/断开/修改的驱动器类型。
medium
允许指定DVD/软盘驱动器是完全断开的(none)或仅是需要被连接的空的DVD/软盘驱动器(emptydrive)。如果指定了uuid,filename或host:<drive>,将连接到存储控制器的指定端口和设备号。
passthrough
利用此参数,可以启用DVD的写入支持(目前为实验性;见“使用主机驱动器刻录CD和DVD”)。
forceumount
指定此选项,你可以卸载DVD/CD/软盘或挂载新的DVD/CD/软盘,即使前者被客户机读锁定。
注意
“--medium none”选项在虚拟机运行是无效,因为不能在虚拟机运行时移除DVD/CD/软盘驱动器或硬盘。
VBoxManage showhdinfo
此命令显示虚拟硬盘镜像的信息,包括其大小,在磁盘上占用的大小,类型及使用此虚拟硬盘的虚拟机。
注意
为了兼容更早的VirtualBox,“showvdiinfo”命令也被支持,并在内部被映射到“showhdinfo”命令。
VBoxManage createhd
此命令创建新的虚拟硬盘镜像。语法如下:
VBoxManage createhd --filename <filename>
--size <megabytes>
[--format VDI|VMDK|VHD](default:VDI)
[--variant Standard,Fixed,Split2G,Stream,ESX]
[--type normal|writethrough](default:normal)
[--comment <comment>]
[--remember]
各参数表示:
filename
允许选择文件名。必须。
size
允许定义镜像容量,单位为MiB。必须。
format
允许选择与输入文件不同的输出文件格式。
variant
允许选择输出文件的文件格式变体。这是一个逗号分隔的变体标志列表。不是所有的组合都被支持,指定错误的标志会导致错误消息。
type
仅当--remember被指定时有效。定义镜像的硬盘类型。
comment
允许附加注释到镜像。
remember
成功写入后,保持目标镜像被注册。
注意
为了兼容更早的VirtualBox,“createvdi”命令也被支持,并在内部被映射到“createhd”命令。
VBoxManage modifyhd
使用此命令,你能够在normal,immutable和write-througn之间改变已存在的镜像的类型;详见“特殊的镜像写模式”。
注意
为了兼容更早的VirtualBox,“modifyvdi”命令也被支持,并在内部被映射到“modifyhd”命令。
仅对immutable(差异)硬盘,modifyhd autoreset on|off命令决定每次虚拟机重启时硬盘是否被自动重置(同样,见“特殊的写模式”)。默认值为“on”。
另外,modifyhd --compact命令用于压缩磁盘镜像,即只包含0的块。为了让这个操作更有效,需要在客户机系数中使用合适的软件工具将空闲空间填0。Microsoft为Windows客户机提供了名为sdelete的工具。压缩虚拟磁盘镜像之前,在客户机中运行sdelete -c将磁盘空闲空间填0。基本的镜像和作为快照一部分被创建的差异镜像都会被压缩。
VBoxManage clonehd
此命令复制一个已注册的虚拟硬盘到具有新的唯一标识符(UUID)的新镜像。新的镜像能被转移到其他的主机系统或使用虚拟介质管理器再次导入VirtualBox;见“虚拟介质管理器”和“cloning disk images”。语法如下:
VBoxManage clonehd <uuid>|<filename> <outputfile>
[--format VDI|VMDK|VHD|RAW|<other>]
[--variant Standard,Fixed,Split2G,Stream,ESX]
[--type normal|writethrough|immutable]
[--remember]
各参数表示:
format
允许选择与输入文件不同的输出文件格式。
variant
允许选择输出文件的文件格式变体。这是一个逗号分隔的变体标志列表。不是所有的组合都被支持,指定错误的标志会导致错误消息。
type
仅当--remember被指定时有效。定义镜像的硬盘类型。
comment
允许附加注释到镜像。
remember
成功写入后,保持目标镜像被注册。
注意
为了兼容更早的VirtualBox,“clonevdi”命令也被支持,并在内部被映射到“clonehd”命令。
VBoxManage convertfromraw
此命令将raw硬盘镜像转换为VirtualBox磁盘镜像(VDI)文件。语法如下:
VBoxManage convertfromraw <filename> <outputfile>
[--format VDI|VMDK|VHD]
[--variant Standard,Fixed,Split2G,Stream,ESX]
VBoxManage convertfromraw stdin <outputfile> <bytes>
[--format VDI|VMDK|VHD]
[--variant Standard,Fixed,Split2G,Stream,ESX]
各参数表示:
format
选择要创建的磁盘镜像格式。默认为VDI。
variant
允许选择输出文件的文件格式变体。这是一个逗号分隔的变体标志列表。不是所有的组合都被支持,指定错误的标志会导致错误消息。
第二种形式强迫VBoxManage从标准输入为磁盘镜像读取内容(对在管道中使用此命令非常有用)。
注意
为了兼容更早的VirtualBox,“convertdd”命令也被支持,并在内部被映射到“convertfromraw”命令。
VBoxManage addiscsidisk
此命令连接一个iSCSI网络存储单到VirtualBox。iSCSI目标成为可用,被虚拟机当作标准的write-through虚拟磁盘镜像使用。
语法如下:
VBoxManage addiscsidisk --server <name>|<ip>
--target <target>
[--port <port>]
[--lun <lun>]
[--username <username>]
[--password <password>]
[--type normal|writethrough|immutable]
[--comment <comment>]
[--intnet]
各参数表示:
server
iSCSI目标的主机名或IP地址。
target
目标名称字符串。这iSCSI目标决定,用来识别存储资源。
port
目标上的iSCSI服务的TCP/IP端口号(可选)。
lun
目标资源的逻辑单元号(Logic Unit Number)(可选)。通常,此值为0。
username,password
如果需要的话,用于目标认证的用户名和密码(可选)。
注意
目前,用户名和密码以未加密(即明文)的形式保存在虚拟机配置文件中。
type
定义镜像的硬盘类型。
comment
任务你关于此项的说明(可选;比如,“楼下的大存储服务器”)。仅存于内部,不需要操作。
intnet
通过内部网络连接iSCSI目标。这需要更深入的配置,见“通过内部网络访问iSCSI目标”。
VBoxManage getextradata/setextradata
这些命令让你附加和检索字符串到虚拟机或VirtualBox配置文件(通过指定global而不是虚拟机名)。你必须指定一个key(一个文本字符串)与数据关联,随后可以用其来检索。例如:
VBoxManage setextradata Fedora5 installdate 2006.01.01
VBoxManage setextradata SUSE10 installdate 2006.02.02
对虚拟机Fedora5将key installdate与“2006.01.01”关联,对虚拟机SUSE10则是“2006.02.02”。你可以通过如下方式检索信息:
VBoxManage getextradata Fedora5 installdate
将会返回
VirtualBox Command Line Management Interface Version 3.1.6
(C) 2005-2010 Sun Microsystems, Inc.
All rights reserved.
Value: 2006.01.01
VBoxManage setproperty
此命令用于改变影响整个VirtualBox的全局设置。部分对应于GUI中“全局设置”对话框中的设置。可用的属性如下:
hdfolder
指定用来存放磁盘镜像文件(.vdi,.vmdk,.vhd)的默认文件夹。
machinefolder
指定保存虚拟机定义的默认文件夹;详见“VirtualBox配置数据”。
vrdpauthlibrary
指定当为某个特定虚拟机选择“externl”VRDP验证时使用的库;详见“RDP验证”。
websrvauthlibrary
指定web服务用来验证用户身份的库。关于VirtualBox的web服务,详见单独的VirtualBox SDK手册(第10章,VirtualBox编程接口)。
hwvirtexenabled
选择是否默认支持硬件虚拟化。
VBoxManage usbfilter add/modify/remove
usbfilter命令用于控制虚拟机的USB筛选器,或是影响整个VitualBox设定的全局筛选器。全局筛选器在指定虚拟机筛选器之前被应用,可能被用来防止设备被虚拟机捕捉。全局筛选器以一个特定的顺序被应用,并且只有适用于某个设备的第一个被应用。例如,如果第一个全局筛选器说hold(使其可用)一个特定的Kingston存储棒设备,第二个说忽略所有的Kingston设备,那么该存储棒对任何有适当筛选器的虚拟机都可用,但其他的Kingston设备不行。
使用usbfilter add创建一个USB筛选器时,必须指定3或4个强制的参数。index指定筛选器在列表中的位置。如果该位置已存在某个筛选器,那么该筛选器及后面的都后移一个位置。否则,新的筛选器被放置在列表的最后。target参数选择筛选器连接的虚拟机或使用“global”应用到所有的虚拟机。name是新的筛选器和全局筛选器的名称,action说明允许虚拟机访问筛选器适用的设备(“hold”)或禁止其访问(“ignore”)。另外,你应当指定筛选的参数。可以使用VBoxManage list usbhost列出连接到你的系统的设备参数。最后,你需要指定筛选器是否被激活;对于本地筛选器,指定其用于本地设备,远程设备或两都皆可。
使用usbfilter modify修改USB筛选器时,必须用索引(用VBoxmanage list usbfilters列出全局筛选器的索引值;对于特定虚拟机,使用VBoxManage showvminfo)和目标(可以是一个虚拟机或“全局”)指定筛选器。可改变的属性与usbfilter add相同。使用usbfilter remove并指定索引和目标删除筛选器。
VBoxManage sharefolder add/remove
此命令允许你在主机计算机和客户机操作系统之间共享文件夹。为此,客户机系统必须装有支持此功能的某个版本的VirtualBox客户机增加工具。
“共享文件夹”部分详细说明了共享文件夹。
VBoxManage metrics
此命令支持管理系统资源的使用。资源用一系列与主机系统或特定虚拟机关联的指标表示。比如,主机系统有Cpu/Load/User指标,显示一个采样时间段内在用户模式下执行的CPU时间百分比。
指标数据在内部被收集和保留;可在任何时间通过VBoxManage mertics query检索。数据在后台进程VBoxSVC存活期间可用。
默认不收集任何指标。指标收集不会启动,直到用合适的采样间隔和被保存的指标数量调用VBoxManage metrics setup。间隔以秒为单位。例如,以1秒为间隔收集主机处理器和内存使用指标并保持最近5个采样,可以使用如下命令:
VBoxManage metrics setup --period 1 --samples 5 host CPU/Load/,RAM/Usage
将间隔或保存的采样数量指定为“0”将禁用指标收集。注意,VBoxManage metrics setup子命令取消先前的可能为指定对象和指标集合收集的所有的采样。
主机和虚拟机有两套不同的相关指标。使用VBoxManage metrics list子命令列出所有可用的指标。
一个完整的指标名称可能包含合并函数。名称有如下形式:Category/Metrics[/SubMetrics][:aggregate]。例如,如果应用到主机对象,RAM/Usage/Free:min代表可用内存的最小值。stands for the minimum amount of available memory over all retained data
子命令可能用于所有的对象和指标或被限制到某个对象或/和一个指标表。如果在参数中没给出对象和指标,命令将应用到所有的可用指标和对象。可以使用星号(“*”)来明确指定命令被用于所有的对象和指标。使用“host”作为对象名来限制主机相关指标的命令。使用逗号分隔名称的指标列表将范围限制到指标的子集。
例如,查询名为“test”的虚拟机在用户模式和内核模式使用的CPU时间数据,可以使用如下命令:
VBoxManage query test CPU/Load/User,CPU/Load/Kernel
下面的列表总结了可用的子命令:
list
此命令显示目前存在的指标的参数。注意,特定虚拟机的指标只在该虚拟机运行时可用。
setup
此子命令设置两个指标数据采样的间隔和内部保存的采样数量。保存的数据可用于query子命令显示。--list选项显示命令执行后被修改的指标。
query
此检索并显示目前保存的指标数据。
注意
query子命令不会删除或刷新保存的数据。如果足够频繁查询,将会看到旧的采样逐渐地被新的采样“淘汰”。
collect
此子命令设置两个指标数据采样的间隔和内部保存的采样数量。收集的数据定期显示直到按下Ctrl-C,除非指定--detach选项。使用--detach选项,此命令运行方式与setup相同。--list选项显示哪个指标匹配指定的筛选器。
VBoxManage guestproperty
“guestproperty”命令允许你获取或设置运行中的虚拟机的属性。请参阅“客户机属性”部分。如那里描述的,客户机属性可以是任何既能被客户机也能被主机写入和读取的key/value字符串对,所以可被用作少量字符串的通信通道,假设客户机正在运行且装有客户机增强工具。另外,一些key由“/VitrualBox/”开始的value由客户机增加工具自动设置和使用。
以下子命令可用(此处的<vm>,在所有情形下,和其他的VBoxManage一样,可以是一个虚拟机名称或一个虚拟机UUID):
enumerate <vm> [-patterns <pattern>]:列出给定虚拟机所有可用的客户机属性,包括其值。如果客户机服务进程无法连接,例如,虚拟机没有运行或没安装虚拟机增强工具,该列表将非常有限。
如果指定了--patterns <pattern>,将作为一个过滤器,只显示匹配给定模式的属性。模式可以包含如下通配符:
*(星号):代表任意数量的字符;例如,“/VituralBox*”将匹配以“/VirtualBoxs”开始的所有属性。
?(问号):代表单个任意字符;例如,“fo?”将匹配“foo”和“for”。
|(管道符号):可用于指定多个替代模式;例如,“s*|t*”将匹配以“s”或“t”开始的任何值。
get <vm>:只查询单个属性的的值。如果属性无法找到(例如,客户机未运行),打印“No value set!”。
set <vm> <property> [<value> [-flags <flags>]]:通过指定键值对设置客户机属性。如果忽略<value>,属性将被删除。利用--flags可可选地指定附加的行为(可以通过逗号分隔结果几个行为):
TRANSIENT:当虚拟机退出时,该值不会与虚拟机数据保存在一起;
RDONLYGUEST:该值只能被主机修改,客户机只可读取;s
RDONLYHOST:相反地,该值只能被客户机修改,主机只可读取;
READONLY:两者的结合,该值不能被改变。
wait <vm> <pattern> --timeout <timeout>:等待由“模式”描述的值改变或被删除或被创建。模式规则和上面的“enumerate”子命令一样。
VBoxManage dhcpserver
“dhcpserver”命令允许你控制VirtualBox内建的DHCP服务器。当使用内部或仅主机网络时这非常有用。(理论上,你也可以为一个桥接网络启用它,但可能会与你物理网络中已存在的DHCP服务器冲突。)
使用如下的命令行选项:
如果为虚拟机的虚拟网络适配器使用内部网络,使用VBoxManage dhcpserver add --netname <network_name>,这里<network_name>是与VBoxManage modifyvm <vmname> --intnet<X> <network_name>中的相同网络名。
如果为虚拟机的虚拟网络适配器使用仅主机网络,使用VBoxManage dhcpserver add --ifname <hostonly_if_name>,这里<hostonly_if_name>是与VBoxManage modifyvm <vmname> --hostonlyadapter<X> <hostonly_if_name>中的相同仅主机接口名。
另外,如果知道仅主机网络的名称,你也可以与内部网络一起使用--netname选项;可用VBoxManage list hostonlyifs找出该名字(见上面的“VBoxManage list”)。
第一次添加DHCP服务器时需要以下附加的参数:
--ip,指定DHCP服务器自身的IP地址。
--netmask,指定网络的子网掩码;
--lowerip和--upperip,相应地指定DHCP服务器将分配给客户端的IP地址的最大和最小值。
最后,必须指定--enable,否则DHCP服务器将以禁用状态被创建,什么也不做。
此后,一旦使用给定的内部或仅主机网络的虚拟机启动时,VitualBox会自动启动DHCP服务器。
相反地,使用带--name <network_name>或--ifname <hostonly_if_name>参数的VBoxManage dhcpserver remove将删除给定的内部或仅主机网络的DHCP服务器。
要修改先前由VBoxManage dhcpserver add创建的DHCP服务器,可以为给定的网络或仅内部接口名使用VBoxManage dhcpserver modify。