【vbox】Linux安装Virtual Box虚拟机实践记录--编辑中

目录

一、安装

方法一

方法二

二、使用 

在centos 使用

常用命令

VBoxManage 命令行使用(设置)

VBoxManage 命令操作,详细的网络设置命令

1.5  桥接网络(Bridged Networking)

1.6 内部网络(Internal networking)

1.7   仅主机模式(Host-only networking)


一、安装

 

1.进入virtualbox官网

https://www.virtualbox.org/

2.点击download

方法一

3.点击Linux distributions

4.向下翻至如图,并且进入同种框选页面

5.在/etc/yum.repos.d/目录下新建virtualbox.repo并写入如下内容

[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc

6.更新yum缓存

yum clean all

yum makecache

7.安装virtualbox

yum install VirtualBox-5.1

方法二

点击下面的连接,下载rpm包,传到linux服务器,

yum install  VirtualBox-6.1-6.1.32_149290_el7-1.x86_64.rpm 安装 

(yum install 和rpm的区别的是,yum install 底层调用rpm 并会自动处理依赖关系和下载依赖包)

二、使用 

在centos 使用

centos6.7 安装 virtualBox 再安装 centos 7

Tag: 黄色为自己实际情况需要设置的部分,绿色部分为虚拟机名称(自定义)

1.创建虚拟机

VBoxManage createvm --name centos7 --ostype RedHat_64 --register --basefolder /home/virtualbox/

(查看支持的操作系统类型:VBoxManage list ostypes)

2.创建磁盘
VBoxManage createvdi --filename /home/virtualbox/centos7.vdi --size 40000

3.创建硬盘控制器
VBoxManage storagectl centos7 --name storage_controller_1 --add ide

4.挂载虚拟机硬盘
VBoxManage storageattach centos7 --storagectl storage_controller_1 --type hdd --port 0 --device 0 --medium /home/virtualbox/centos7.vdi

5.挂载虚拟机光驱(操作系统镜像)
VBoxManage storageattach centos7 --storagectl storage_controller_1 --type dvddrive --port 1 --device 0 --medium /home/download/VirtualBox/CentOS-7-x86_64-Minimal-1804.iso

6.设置启动顺序,光驱第一,硬盘第二
VBoxManage modifyvm centos7 --boot1 dvd
VBoxManage modifyvm centos7 --boot2 disk

7.创建桥接的网络
VBoxManage modifyvm centos7 --nic1 bridged --cableconnected1 on --nictype1 82540EM --bridgeadapter1 p2p1 --intnet1 brigh1 --macaddress1 auto

8.开启vrde 模块(关闭),需要安装VirtualBox 扩展模块,以支持RDP协议,镜像桌面连接
VBoxManage modifyvm centos7 --vrde on
VBoxManage modifyvm centos7 --vrde off(暂时不用)

9.设置虚拟机内存和CPU
VBoxManage modifyvm centos7 --memory 8192
VBoxManage modifyvm centos7 --cpus 2

10.启动虚拟机
VBoxManage  startvm centos7 -type headless (后台启动)

ps: 更新宿主机操作系统内核 yum -y install kernel

常用命令

启动名为centos7的VM

vboxmanage startvm centos7

开启虚拟机在后台运行

VBoxManage startvm <vm_name> -type headless

开启虚拟机并开启远程桌面连接的支持

VBoxManage startvm <vm_name> -type vrdp

改变虚拟机的远程连接端口,用于多个vbox虚拟机同时运行

VBoxManage controlvm <vm_name> vrdpprot <ports>

列出VirtualBox中的所有VM

vboxmanage list vms

VBoxManage list vms --long  详细信息

列出正在运行的虚拟机vboxmanage list runningvms
关闭虚拟机

 正常 VBoxManage controlvm <vm_name> acpipowerbutton   

强制 vboxmanage controlvm centos7 poweroff 

控制已经运行的虚拟机:(暂停|恢复|重启|关机|休眠)

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

注:更多参数详见 VBoxManage --help 输出的帮助。

创建存储控制器IDE、SATA

VBoxManage storagectl learnAsm --name IDE --add ide --controller PIIX4 --bootable on

VBoxManage storagectl learnAsm --name SATA --add sata --controller IntelAhci --bootable on

 # 移除

VBoxManage storagectl learnAsm --name IDE --remove

VBoxManage storagectl learnAsm --name SATA --remove

创建网口

创建桥接网:

VBoxManage modifyvm “虚拟机名称” --bridged "网口名称”

内部网络(Internal networking):

VBoxManage modifyvm “虚拟机名称” --intnet   "网口名称”

仅主机模式(Host-only networking):

VBoxManage modifyvm “虚拟机名称” --hostonly "网口名称”

建立虚拟磁盘VBoxManage createmedium --filename HDD10G.vdi --size 10000 #单位MB
设置内存大小1GVBoxManage modifyvm learnAsm --memory 1024 #单位MB
修改虚拟机配置

$VBoxManage modifyvm RedHat9 --memory 256 --acpi on --boot1 disk -nic1 bridged

$vboxmanage modifyvm RedHat9 --nic2 bridged --bridgeadapter2 eth3 --nictype2 82540EM

该命令为设置宿主机上网卡4为虚拟机上的网卡2,采用桥接模式,网卡类型为82540EM

VirtualBox通过命令行操作虚拟机_ITPUB博客

删除虚拟机

VBoxManage unregistervm --delete learnAsm (会删除所有虚拟硬盘,谨慎操作!!!)

注册虚拟机

VBoxManage registervm <your vms path>/learnAsm.vbox

从别人那里复制来的虚拟机文件,可以注册它

更多

使用命令操作VirtualBox - 知乎

文章末尾或VBoxManage 命令操作,详细的网络设置命令_一定迟到逗的博客-CSDN博客_vboxmanage命令

共享剪切板

1、使用方法

VBoxManage modify "winxp" &ndash;clipboard "参数”

其中参数可为:

disabled| 不共享剪贴板

hosttoguest| 将宿主机的剪贴板共享给虚拟机

guesttohost| 将虚拟机的剪贴板共享给宿主机

bidirectional] 宿主机和虚拟机共使用一个剪贴板

使用共享文件夹
1、添加一个共享文件夹
VBoxManage sharedfolder add "WinXP" -name "shared" -hostpath "/home/xxx/shared"
命令中WinXp为虚拟机的名称,shared为共享文件夹的名称,这个可以随意指定,/home/xxx/shared为共享文件夹的路径。

然后启动虚拟机,进入系统后在开始->运行->cmd->回车,如入

net use x: \\vboxsvr\shared

x:为映射的驱动器符号,shared为共享文件夹的名称,vboxsvr是固定不变的

2、删除一个共享文件夹

在虚拟机关闭的状态下运行一下命令

VBoxManage sharedfolder remove "WinXP" -name "shared"

回车即可
在虚拟机中使用USB设备
1、查看已与主机连接的USB设备
VBoxManage list usbhost
执行后会出现类似一下的信息
VirtualBox Command Line Management Interface Version 3.1.2
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
Host USB Devices:
UUID: 0b2517d9-7828-403e-b5da-38f5c6af419f
VendorId: 0x054c (054C)
ProductId: 0x02d2 (02D2)
Revision: 1.0 (0100)
Manufacturer: Sony
Product: "PSP" Type A
SerialNumber: E456A7C3AD3DEE32
Address: /proc/bus/usb/001/003
Current State: Busy

UUID: 03e57f1a-9dec-443c-b4f8-80b1d60e0992
VendorId: 0x08ff (08FF)
ProductId: 0x2580 (2580)
Revision: 6.35 (0635)
Product: Fingerprint Sensor
Address: /proc/bus/usb/003/002
Current State: Available

可以看到我现在在用的USB设备就两个,一个是我的PSP,一个是我本本的指纹识别模块。
然后我们通过VBoxManage usbfilter add来把某个USB设备注册到虚拟机,下面以我的PSP为例:
VBoxManage usbfilter add 0 -target winxp -name "PSP USB" -action hold -active yes -vendorid 054C -vendorid 02D2 -product "PSP" -remote no -serialnumber E456A7C3AD3DEE32
需要注意的是name、product可以随便填,但是vendorid、vendorid、serialnumber一定要与上面输出地内容一致。

来源:http://lazyhack.net/use-virtualbox-vboxmanage/

=============================================

在 Ubuntu 16.04 上使用 VBoxManage

接下来我们将要使用 VBoxManage 向你展现通过命令行终端工具来新建和管理虚拟机是多么的简单。

运行下面的命令,新建一个将用来安装 Ubuntu 系统的虚拟机。

# VBoxManage createvm --name Ubuntu16.04 --register

在运行了这条命令之后,VBoxMnage 将会新建一个叫 做“Ubuntu16.vbox” 的虚拟机,这个虚拟机的位置是家目录路径下的 “VirtualBox VMs/Ubuntu16/Ubuntu16.04.vbox”。在上面这条命令中,“createvm” 是用来新建虚拟机,“--name” 定义了虚拟机的名字,而 “registervm” 命令是用来注册虚拟机的。

现在,使用下面这条命令为虚拟机创建一个硬盘镜像。

$ VBoxManage createhd --filename Ubuntu16.04 --size 5124

这里,“createhd” 用来创建硬盘镜像,“--filename” 用来指定虚拟机的名称,也就是创建的硬盘镜像名称。“--size” 表示硬盘镜像的空间容量,空间容量的单位总是 MB。我们指定了 5Gb,也就是 5124 MB。

接下来我们需要设置操作系统类型,如果要安装 Linux 系的系统,那么用下面这条命令指定系统类型为 Linux 或者 Ubuntu 或者 Fedora 之类的。

$ VBoxManage modifyvm Ubuntu16.04 --ostype Ubuntu

用下面这条命令来设置虚拟系统的内存大小,也就是从主机中分配到虚拟机系统的内存。

$ VBoxManage modifyvm Ubuntu10.10 --memory 512

现在用下面这个命令为虚拟机创建一个存储控制器。

$ VBoxManage storagectl Ubuntu16.04 --name IDE --add ide --controller PIIX4 --bootable on

这里的 “storagect1” 是给虚拟机创建存储控制器的,“--name” 指定了虚拟机里需要创建、更改或者移除的存储控制器的名称。“--add” 选项指明存储控制器所需要连接到的系统总线类型,可选的选项有 ide / sata / scsi / floppy。“--controller” 选择主板的类型,主板需要根据需要的存储控制器选择,可选的选项有 LsiLogic / LSILogicSAS / BusLogic / IntelAhci / PIIX3 / PIIX4 / ICH6 / I82078。最后的 “--bootable” 表示控制器是否可以引导系统。

上面的命令创建了叫做 IDE 的存储控制器。之后虚拟介质就能通过 “storageattach” 命令连接到该控制器。

然后运行下面这个命令来创建一个叫做 SATA 的存储控制器,它将会连接到之后的硬盘镜像上。

$ VBoxManage storagectl Ubuntu16.04 --name SATA --add sata --controller IntelAhci --bootable on

将之前创建的硬盘镜像和 CD/DVD 驱动器加载到 IDE 控制器。将 Ubuntu 的安装光盘插到 CD/DVD 驱动器上。然后用 “storageattach” 命令连接存储控制器和虚拟机。

$ VBoxManage storageattach Ubuntu16.04 --storagectl SATA --port 0 --device 0 --type hdd --medium "your_iso_filepath"

这将把 SATA 存储控制器及介质(比如之前创建的虚拟磁盘镜像)连接到 Ubuntu16.04 虚拟机中。

运行下面的命令添加像网络连接,音频之类的功能。

$ VBoxManage modifyvm Ubuntu10.10 --nic1 nat --nictype1 82540EM --cableconnected1 on
$ VBoxManage modifyvm Ubuntu10.10 --vram 128 --accelerate3d on --audio alsa --audiocontroller ac97

通过指定你想要启动虚拟机的名称,用下面这个命令启动虚拟机。

$ VBoxManage startvm Ubuntu16.04

然后会打开一个新窗口,新窗口里虚拟机通过关联文件中引导。

你可以用接下来的命令来关掉虚拟机。

$ VBoxManage controlvm Ubuntu16.04 poweroff

“controlvm” 命令用来控制虚拟机的状态,可选的选项有 pause / resume / reset / poweroff / savestate / acpipowerbutton / acpisleepbutton。controlvm 有很多选项,用下面这个命令来查看它支持的所有选项。

$VBoxManage controlvm

完结

从这篇文章中,我们了解了 Oracle Virtual Box 中一个十分实用的工具 VBoxManage,文章包含了 VBoxManage 的安装和在 Ubuntu 16.04 系统上的使用,包括通过 VBoxManage 中实用的命令来创建和管理虚拟机。希望这篇文章对你有帮助,另外别忘了分享你的评论或者建议。

参考或摘抄自:

(亲测可用)CentOS7安装virtualbox_hqk1997的博客-CSDN博客_centos7安装virtualbox

centos6.7 安装 virtualBox 再安装 centos 7 - 梅里之巅 - 博客园

错误记录:

VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

VBoxManage 命令行使用(设置)

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。

VBoxManage 命令操作,详细的网络设置命令

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 | 显示指定虚拟机的信息
[-details] 显示详细信息
[-statistics] 显示统计信息
[-machinereadable] 以清晰的格式显示虚拟机信息

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

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

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

VBoxManage modifyvm <uuid|name> 编辑指定的虚拟机的配置
[-name ] 修改虚拟机的名称
[-ostype ]修改虚拟机的操作系统类型
[-memory ] 修改虚拟机的内存大小
[-vram ] 修改虚拟机的显存大小
[-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 ] 设置显示器数目,VRDP多用户模式时
[-bioslogofadein on|off] 开启或关闭bioslogo渐显效果
[-bioslogofadeout on|off] 开启或关闭bioslogo渐隐效果
[-bioslogodisplaytime ]设置bioslogo显示时间(以毫秒为单位)
[-bioslogoimagepath ]设置bioslogo图像路径,用于自定义bioslogo
[-biosbootmenu disabled| 设置是否显示bios启动菜单 关闭
menuonly| 只菜单
messageandmenu] 信息和菜单
[-biossystemtimeoffset ] 设置bios系统时间补偿(以毫秒为单位)
[-biospxedebug on|off] 打开或关闭biospxe调试
[-boot<1-4> none|floppy|dvd|disk|net>] 设置启动顺序
[-hd<a|b|d> none||] 为虚拟机添加三个IDE设备之一(第2个主盘被vm保留作为光驱,不能占用)在三个IDE中,你可以指定(硬盘)的vdi文件名或者它的UUID
[-idecontroller PIIX3|PIIX4] 设置IDE控制器的类型
[-sata on|off] 开启或关闭SATA硬盘控制器
[-sataportcount <1-30>] 设置虚拟机最多支持的SATA控制器数目
[-sataport<1-30> none| 没有硬盘连接到SATA控制器
| 指定uuid的硬盘连接到SATA控制器
] 指定文件名的硬盘连接到SATA控制器
[-sataideemulation<1-4> <1-30>] 指定一个SATA设备工作在IDE兼容模式,IDE设备编号是1-4,SATA设备编号是1-30
[-dvd none| 不连接DVD光驱
| 指定UUID的DVD光驱连接
| 将指定的光盘映像文件挂接到DVD光驱
host:] 将宿主机的DVD光驱挂接到虚拟机的DVD光驱
[-dvdpassthrough on|off]打开|关闭虚拟机里光盘的刻录功能
[-floppy disabled| 不连接软驱
empty| 连接软驱但不插入软盘
| 指定UUID的软驱连接
| 将指定的软盘映像文件挂接到软驱驱
host:] 将宿主机的软驱驱挂接到虚拟机的软驱
[-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> ] 将网络流量追踪数据保存到文件
[-nicspeed<1-N> ] 设置网络连接的速度
[-hostifdev<1-N> none| 不连接到主机网络接口
] 桥接模式下连接到指定的主机接口
[-intnet<1-N> ] 内网模式下为虚拟机指定内部网络名称
[-natnet<1-N> | 配置NAT网络接口的地址
default] 默认NAT网络接口的地址是10.0.x.0/24
[-macaddress<1-N> auto| 自动生成虚拟网卡的MAC地址
] 指定虚拟网卡的MAC地址
[-uart<1-N> off| 不启用虚拟串口
<I/O base> ]启用虚拟串口,并设置虚拟串口的I/O参数和IRQ参数
[-uartmode<1-N> disconnected| 启用虚拟串口,但不连接到宿主机的串口
server | 在宿主机创建PIPE通道,并将虚拟机串口连接到这个通道
client | 不创建PIPE通道,而是将虚拟机串口连接到已存在的通道
] 将虚拟机串口连接到宿主机的串口
[-gueststatisticsinterval ] 配置虚拟机静态时间间隔
[-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
] 指定vrdp端口
[-vrdpaddress ] 指定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| 将系统快照保存到默认文件夹
] 将系统快照保存到指定文件夹

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

VBoxManage controlvm | 改变正在运行的虚拟机的状态
pause| 暂停,这时虚拟机窗口显示灰色
resume| 恢复暂停的虚拟机
reset| 复位
poweroff| 强行关闭
acpipowerbutton| 关机
acpisleepbutton| 使虚拟机处于睡眠状态
savestate| 保存状态然后关闭,相当于休眠
keyboardputscancode [ …] 键盘扫描码设置
setlinkstate<1-4> on|off 连接|断开网络连接
usbattach |

连接到指定UUDI|地址的USB设备
usbdetach |
断开指定UUDI|地址的USB设备
dvdattach none| 不连接虚拟DVD光驱
| 连接到指定UUID的DVD光驱
| 连接到指定名称的DVD映像文件
host: 连接到宿主机的DVD光驱
floppyattach none| 不连接虚拟软驱
| 连接到指定UUID的虚拟软驱
| 连接到指定名称的软盘映像文件
host: 连接到宿主机的软驱
setvideomodehint 设置虚拟机的屏幕分辨率 水平像素
垂直像素
颜色深度
[display] 刷新频率
setcredentials 指定VRDP自动连接参数 用户名
密码

[-allowlocallogon <yes|no>] 允许|禁止本地登陆
VBoxManage discardstate | 丢弃指定UUID|名称的虚拟机的保存状态

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

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

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

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

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

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

VBoxManage clonevdi | 克隆指定的VDI虚拟硬盘

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

VBoxManage命令详解(二)
VBoxManage addiscsidisk -server | 通过指定服务器名称|ip地址添加ISCSI硬盘
-target 指定对象名称字符串
[-port ] 指定ISCSI对象的服务端口号
[-lun ] 指定对象资源的逻辑单元编号
[-encodedlun ] 指定另一种格式的对象资源的逻辑单元编号
[-username ] 指定连接ISCSI对象的用户名
[-password ] 指定连接ISCSI对象所需的密码
[-comment ] 为这个连接添加一段描述性文字
比如:VBoxManage addiscsidisk -server 10.200.2.30 -target iqn.2000-12.com.acme:storage.lun0 -lun 0

VBoxManage createhostif 在宿主机添加一个指定名称的虚拟网络接口
VBoxManage removehostif | 从宿主机删除指定UUID|名称的虚拟网络接口

VBoxManage getextradata global| 获取全局设置信息
| 获取指定UUID的虚拟机的信息
获取指定名称的虚拟机的信息
| 获取与指定键值相关联的数据信息
enumerate 列举信息
比如:VBoxManage getextradata xp installdate 用于获取虚拟机XP的安装时间

VBoxManage setextradata global| 设置全局信息
| 设置指定UUID的虚拟机的信息
设置指定名称的虚拟机的信息
指定要添加信息的键
[] 给上面的键添加键值(必须指定键值)
比如:VBoxManage setextradata xp installdate 2006.01.01 设置虚拟机xp的安装时间为2006年1月1日

VBoxManage setproperty vdifolder default| 在全局设定里设置vdi目录为默认
| 在全局设定里设置指定vdi目录
machinefolder default| 在全局设定里设置虚拟机目录为默认
| 在全局设定里指定虚拟机目录
vrdpauthlibrary default| 在全局设定里设置VRDP证书为默认的证书
| 在全局设定里指定其他的VRDP证书
websrvauthlibrary default| 在全局设定里设置Web服务证书为默认的证书
null| 在全局设定里设置web服务证书为空
| 在全局设定里指定其他的Web服务证书
hwvirtexenabled yes|no 在全局设定里设置是|否支持硬件虚拟化
loghistorycount 在全局设定里设置日志数目,编号从0开始

VBoxManage usbfilter add <index,0-N> 添加usb筛选器并设置它在筛选器列表中的位置
-target | 添加usb筛选器到指定UUID的虚拟机
| 添加usb筛选器到指定名称的虚拟机
global 添加全局usb筛选器
-name 给usb筛选器指定名称
-action ignore| 不允许虚拟机连接到筛选器
hold 允许虚拟机连接到筛选器(全局筛选器时)
[-active yes|no] 筛选器是|否生效(默认是生效)
[-vendorid ] 给usb筛选器指定vendorid(厂商标志)
[-productid ] 给usb筛选器指定productid(产品标志号)
[-revision ] 给usb筛选器指定revision(修订版本号)
[-manufacturer ] 给usb筛选器指定manufacturer(制造商)
[-product ] 给usb筛选器指定product(产品标志)
[-remote yes|no] 指定usb筛选器是|否在远程登陆时有效
[-serialnumber ] 给usb筛选器指定serialnumber(序列号)
[-maskedinterfaces ]
VBoxManage usbfilter modify <index,0-N> 修改usb筛选器在列表中的顺序
-target | 修改指定UUID的虚拟机的usb筛选器
| 修改指定名称的虚拟机的usb筛选器
global 修改全局设置的usb筛选器
[-name ] 修改筛选器名称
[-action ignore| 不允许虚拟机连接到筛选器
hold] 允许虚拟机连接到筛选器(全局筛选器时)
[-active yes|no] 筛选器是|否生效(默认是生效)
[-vendorid |""] 给usb筛选器指定vendorid(厂商标志)
[-productid |""] 给usb筛选器指定productid(产品标志号)
[-revision |""] 给usb筛选器指定revision(修订版本号)
[-manufacturer |""] 给usb筛选器指定manufacturer(制造商)
[-product |""] 给usb筛选器指定product(产品标志)
[-remote yes|no] 指定usb筛选器是|否在远程登陆时有效
[-serialnumber |""] 给usb筛选器指定serialnumber(序列号)
[-maskedinterfaces |""]

VBoxManage usbfilter remove <index,0-N> 删除指定序号的usb筛选器
-target | 删除指定UUID的虚拟机的usb筛选器
| 删除指定名称的虚拟机的usb筛选器
global 删除全局usb筛选器

VBoxManage sharedfolder add | 添加共享文件夹到指定名称的虚拟机
添加共享文件夹到指定uuid的虚拟机
-name 指定共享文件夹名称
-hostpath 指定共享文件夹所在的主机路径
[-transient] 设置临时共享
[-readonly] 设置共享为只读

VBoxManage sharedfolder remove | 从指定名称的虚拟机删除共享文件夹
从指定UUID的虚拟机删除共享文件夹
-name 删除指定名称的共享文件夹
[-transient] 临时删除

VBoxManage vmstatistics | 统计指定名称的虚拟机的运行状态信息
统计指定UUID的虚拟机的运行状态信息
[-reset] 复位统计信息
[-pattern ] 设置信息的显示格式
[-descriptions] 在统计信息中显示描述信息

VBoxManage guestproperty get | 获取指定名称的虚拟机的预先设定的属性值
获取指定UUID的虚拟机的预先设定的属性值
获取指定属性的预先设定的值
[-verbose] 以冗长的格式显示

VBoxManage guestproperty set | 给指定名称的虚拟机设置属性值
给指定UUID的虚拟机设置属性值
要设定值的属性
[ 给属性设定的值
[-flags ]] 设置一个标志

VBoxManage guestproperty enumerate | 列举指定名称的虚拟机的属性值
列举指定UUID的虚拟机的属性值
[-patterns ] 列举属性值时采用的格式
VBoxManage metrics list [*| 显示性能计数器
收集的所有系统资源的监测数据
host| 显示性能计数器
收集的宿主机的系统资源的监测数据
显示性能计数器
收集的虚拟机的系统资源的监测数据
[<metric_list>]] 要显示的性能计数器列表

VBoxManage metrics setup 设置性能计数器
[-period ] 设置性能计数器的显示周期
[-samples ] 设置性能计数器抽样统计数
[*| 对所有资源设置设置性能计数器
host| 对宿主机资源设置设置性能计数器
对虚拟机资源设置设置性能计数器
[<metric_list>]] 性能计数器列表
例如:VBoxManage metrics setup -period 1 -samples 5 host CPU/Load,RAM/Usage

VBoxManage metrics query [*| 查找并显示所有资源当前的性能计数器
host| 查找并显示宿主机当前的资源的性能计数器
查找并显示虚拟机当前的资源的性能计数器
[<metric_list>]] 性能计数器列表
例如:VBoxManage query host CPU/Load/User,CPU/Load/Kernel

VBoxManage metrics collect 收集性能计数器信息
[-period ] 设置性能计数器信息显示的刷新周期
[-samples ] 设置性能计数器抽样统计数
[-list] 显示当前可以收集信息的性能计数器
[-detach]
[*| 收集所有系统资源的性能计数器信息
host| 收集宿主机资源的性能计数器信息
收集虚拟机资源的性能计数器信息
[<metric_list>]] 性能计数器列表

网络设置:
目录:

1.1 虚拟化网络硬件

1.2 网络模式介绍

1.3 Network Address Translation(NAT)

1.3.1 配置NAT端口转换

1.3.2 NAT模式的局限性

1.4 Network Address Translation Service

1.5 桥接网络(Bridged Networking)

1.6 内部网络(Internal networking)

1.7 仅主机模式(Host-only networking)

1.8 UDP通道网络(UDP Tunnel networking)

1.9 VDE networking

1.10 限制I/O网络的带宽

1.11 提高网络性能

VirtualBox为虚拟机提供8种虚拟PCI Ethernet 网卡。对于每一种网卡,都可以单独选择以下特性:
1)连同硬件一起虚拟化;
2)虚拟化模式的虚拟网卡将会运行在你的主机物理网络硬件上。(the virtualization mode that the virtual card will be operating in with respect to your physical networking hardware on the host.)

VirtualBox用户图形界面中可以配置四种模式的网卡,也可以在命令行通过VBoxManage modifyvm进行配置。VBoxManage modifyvm

1.1 虚拟网络硬件

对于每一种网卡,你都可以选择不同的硬件应用于虚拟机上。VirtualBox可以对以下六种网络硬件进行虚拟化。

AMD PCNet PCI II (Am79C970A);

AMD PCNet FAST III (Am79C973, the default);

Intel PRO/1000 MT Desktop (82540EM);

Intel PRO/1000 T Server (82543GC);

Intel PRO/1000 MT Server (82545EM);

Paravirtualized network adapter (virtio-net).

PCNet FAST III 是默认的,因为几乎所有的原始操作系统都支持这种网络硬件,GNU GRUB 启动管理器也是默认的。例外的是,被选作一些客户机操作系统的Intel PRO/1000系列适配器不再被PCNet网卡所支持,例如Windows Vista。

Intel PRO/1000 MT Desktop运行在Windows Vista及以后版本。没有安装附加驱动的Windows XP 客户机能够识别Intel PRO/1000 T Server网络硬件。而Intel PRO/1000 MT Server则引用自其他平台。

“Paravirtualized network adapter (virtio-net)” 网络硬件是特殊的,如果选择这一项,VirtualBox将不会虚拟一般网络硬件(即被一般客户机原始系统所支持)。然而VirtualBox提供了一个特殊的软件接口以实现客户机的虚拟化环境,从而避免了模仿网络硬件和提高网络性能的复杂性。从v3.1开始,VirtualBox提供了支持行业标准“为Virtio”的网络驱动,这个网络驱动是开源项目KVM的一部分。

“virtio”网络驱动可应用于以下客户机操作系统:

Linux内核版本2.6.25及其以后版本可以配置提供virtio支持,一些分布式也会将virtio移植到旧的内核版本中。
For Windows 2000,XP和Vista的virtio驱动可以在KVM项目的主页下载安装。
http://www.linux-kvm.org/page/WindowsGuestDrivers
假如您使用Intel虚拟化网卡和桥接网络的话,VirtualBox会有限支持所谓的巨型帧,即网络数据包超过1500字节的数据。换言之,AMD网络设备不支持巨型帧,在这样的情况下,巨型数据包将会在传输和接受方向上被丢弃。客户机操作系统试图通过这个特性来观察一个数据包的丢失,这将会导致客户机上的应用程序产生意外的行为。在其默认的配置情况下不会导致客户机操作系统出问题,只是巨型帧需要被明确的使用。

1.2 网络模式简介

八种网络适配器都可以分别配置以下的模式:

Not attached
在这种模式下,VirtualBox会告诉客户机有一个网卡的存在,但没有连接——就好像没有以 太网线缆插入该网卡。这种方式就像把虚拟以太网线缆拔出并破坏连接,这可以有效地告知客户机操作系统没有网络连接可用并强制重新配置。

NetworkAddress Translation(NAT)
如果你只是想要通过虚拟机浏览网页、下载文件和查阅邮件的话,那这个默认的模式应该可以满足你。但在使用Windows文件共享时会有一些限制,下文提及。

NAT Network
这是在VirtualBox4.3时引入的一种新的NAT类型模式。下文1.4将会提及。

Bridged networking
这是一种为了满足更高级的网络需求的模式,比如在客户机上进行网络模拟和运行服务器。启用之后,VirtualBox将会链接到你安装的网卡之一,并直接交换网络数据包,绕过你的物理机网络堆栈。

Internal networking
可用于创建不同的虚拟机之间的访问机制,但是不能够访问物理主机和外部网路中的机器。

Host-only networking
这是一种用于创建物理主机与虚拟机之间的访问机制的模式,不需要物理主机的网络接口。相反,在物理主机上创建了一个虚拟网络接口(类似于回环接口),提供物理主机与虚拟机之间的链接。

Generic networking
很少使用的模式,共享相同的通用网络接口,通过允许用户选择能被VirtualBox包含或者分布在一个扩展包里的驱动。
这种模式下有两种可用的子模式:
UDP Tunnel
这可以用于直接相互连接在不同的物理主机上运行的虚拟机,容易而且透明,覆盖现有的网络基础设施。

VDE(虚拟分布式以太网)networking
此选项可用于在Linux或FreeBSD的主机上连接虚拟分布式以太网交换机。目前,这需要从源代码编译的VirtualBox,因为Oracle包不包含它。

下面对这些网络模式进行详细的描述。

1.3 Network Address Translation(NAT)

NAT模式是虚拟机访问外网的最简单的方式。通常不需要对物理主机和虚拟机做任何配置。正因如此,NAT在VirtualBox中是默认的联网方式。

一台应用NAT模式的虚拟机就像一台通过路由器连入互联网的真机,在这里,VirtualBox的网络引擎充当路由器,在VirtualBox中,这台路由器放置在每一台虚拟机和物理主机之间。出于实现最大安全分离的考虑,默认情况下虚拟机之间不能够相互访问。

NAT模式的一个劣势是,像经过路由分配之后的私有网路一样,虚拟机不能访问外网,也不能被外网所访问。如此一来你便无法在虚拟机上运行一台服务器,除非你给虚拟机设置端口转发(下文1.3.1提及)。

虚拟机操作系统所发出的网络数据包将会被VirtualBox的NAT引擎以TCP/IP协议所接收,并通过主机操作系统再次发送出去。对于主机上的应用程序或是与主机处于同一网段的其他电脑来说,这就好像是主机上的VirtualBox应用程序通过主机的IP地址把数据包发了出去。VirtualBox将会监听对所发数据包的回复,然后重新打包并发送给私有网络上的虚拟机。

VirtualBox集成了DHCP服务器,虚拟机会接收在该服务器上的网络地址和私有网络配置。因此,分配到虚拟机上的IP地址通常和物理主机的网络完全不同。应用NAT模式是,虚拟机会配置多张网卡,第一张网卡用于与10.0.2.0私有网络连接,第二张网卡用于与10.0.3.0网络连接,诸如此类。如果你需要改变虚拟机分配的IP的排序,可以到这里:Section 9.11, “Fine-tuning the VirtualBox NAT engine”.

1.3.1 配置NAT端口转换

NAT模式下,虚拟机连接的是内部的私有网络,无法被物理主机访问,所以虚拟机的网络服务无法与物理主机或其他通过网段的外界主机相连。但VirtualBox可以像路由器一样通过端口转换来实现与外网相连。也就是说,VirtualBox会监听物理主机的端口并转发所有发送到虚拟机上的数据包,不论虚拟机的端口号相同与否。

对于网络上的物理主机或其他主机、虚拟机的应用程序,看似是被代理了服务,实际上是运行在物理主机上的。这也意味着你不能在同一个端口号同一台物理主机上运行相同的服务。但你仍然可以在虚拟机上运行该服务——例如,在物理主机或者其他虚拟机上不能得到许可的服务,能够在与物理主机不同的操作系统上运行。

你可以在VirtualBox用户界面的网络设置中进行端口转换的相关配置,也可以用命令行VBoxManage,详见:Section 8.8, “VBoxManage modifyvm”.

你需要知道虚拟机用的服务用的是哪些端口,以确定物理主机用哪些端口(通常情况下建议设置为同样的端口号)。你可以用任意在物理主机上没有被占用的端口。

例如,用以下命令设置传入NAT连接到虚拟机上的SSH服务:

C代码 收藏代码
VBoxManage modifyvm “虚拟机名称” --natpf1 “guestssh,tcp,2222,22”

以上例子中,所有发送到物理主机2222端口的TCP流量将被转发到虚拟机的22端口上。tcp是定义的用于转发的协议(也可以用udp)。guestssh纯粹是用于描述的,如果省略的话会自动赋值。-natpf后的数字用于指定网卡。
要移除转发规则,用以下命令:


VBoxManage modifyvm “虚拟机名称” --natpf1 delete “guestssh”

如果虚拟机需要使用静态分配的IP地址而不使用内置的DHCP服务,那就需要在注册转发规则时指定虚拟机的IP:


VBoxManage modifyvm “虚拟机名称” --natpf1 “guestssh,tcp,2222,10.0.2.19,22”

这个例子中的字段跟上个例子基本相同,差别在于,告知NAT引擎可以访问10.0.2.19的虚拟机。

需要把所有的传入流量从一个特定的主机接口转发到虚拟机,用以下命令指定主机接口IP:


VBoxManage modifyvm “虚拟机名称” --natpf1 “guestssh,tcp,2222,10.0.2.19,22”

通过端口2222将所有到达本地接口(127.0.0.1)的TCP流量转发到虚拟机的22端口

VBoxManage还可以在虚拟机运行时配置传入NAT连接:Section 8.13, “VBoxManage controlvm”

1.3.2 NAT模式的局限性

NAT模式下有四点局限性

ICMP协议局限:
一些常用的网络调试工具(例如 ping 或tracerouting)应用的是ICMP协议收发消息,从VirtualBox2.1之后提供了ICMP协议的支持(可以ping),其他调试工具还不能支持。
不能完全支持UDP广播的接收
虚拟机无法完全支持UDP广播的接收,出于节省资源的考虑,它只会监听从特定端口发出UDP数据包之后的一小段时间。因此,基于广播的NetBIOS名称解析并不总是起作用(但WINS始终起作用),一种解决方法是,你可以在\server\share标记中使用所需服务器的数字IP。
不支持类似于GRE的协议
NAT模式下不支持TCP和UDP以外的协议,意味着不能使用一些VPN工具(例如微软的PPTP)。只能使用应用TCP UDP协议的VPN。
不能应用<1024物理主机转发端口
在基于Unix的物理主机上(例如Linux,Solaris,Mac OS X)无法绑定<1024的端口号,应用程序无法被root.运行。如果你配置了这样的端口转发虚拟机将拒绝启动。
这些限制通常不会影响标准网络的使用,但是NAT模式下有可能会影响协议的正常使用。NFS就是其中的例子,服务器通常配置为拒绝非特权端口的连接(<1024)。

1.4 Network Address Translation Service

NAT service的工作原理和家用的路由器相似,系统群组在网络中应用这种模式来防止外部网络的直接访问,但能让系统内部通过TCP和UDP协议实现互访或访问系统外部网络。

NAT service模式附带了一个内部网络,虚拟机利用它可以连接到内部网络,创建NAT网络时即可设置内部网络的名字。创建NAT网络命令:


VBoxManage natnetwork add --netname natnet1 --network “192.168.15.0/24” --enable

其中的“natnet1”是被使用的内网名字,“192.168.15.0/24”是NAT service接口的网络地址和掩码。默认情况下这个静态网关将被分配地址192.168.15.1(跟随接口地址),但这可以被改变。添加DHCP服务到内部网络,我们可以作如下修改:


VBoxManage natnetwork add --netname natnet1 --network “192.168.15.0/24” --enable --dhcp on

或者是在创建之后加入DHCP服务


VBoxManage natnetwork modify --netname natnet1 --dhcp on

关闭该服务


VBoxManage natnetwork modify --netname natnet1 --dhcp off

DHCP服务器提供注册域名服务器列表,,但它不会从128/7网络进行服务器匹配(映射)。

启动NAT Service:


VBoxManage natnetwork start --netname natnet1

如果网络中附带了DCHP服务器,将会一并启动。


VBoxManage natnetwork stop --netname natnet1

关闭NAT service时也会一并关闭。

移除NAT service:


VBoxManage natnetwork remove --netname natnet1

如果DCHP服务器正在内部网络中使用的话,使用这个命令DCHP服务将不会被移除。

设置支持端口转换:(–port-forward-4 for IPv4 ;—port-forward-6 for IPv6)


VBoxManage natnetwork modify --netname natnet1 --port-forward-4 “ssh:tcp:[]:1022:[192.168.15.5]:22”

这条命令制定了端口转换规则,从物理主机的TCP1022端口到IP地址为192.168.15.5的虚拟机22端口。物理主机端口、虚拟机端口、虚拟机IP是必填参数。
删除该规则:


VBoxManage natnetwork modify --netname natnet1 --port-forward-4 delete ssh

可以绑定NAT Service到特定的接口:


VBoxManage setextradata global “NAT/win-nat-test-0/SourceIp4” 192.168.1.185

浏览注册的NAT 网络列表:


VBoxManage list natnetworks

目录:

1.1 虚拟化网络硬件

1.2 网络模式介绍

1.3 Network Address Translation(NAT)

  1.3.1   配置NAT端口转换

  1.3.2   NAT模式的局限性

1.4 Network Address Translation Service

1.5 桥接网络(Bridged Networking)

1.6 内部网络(Internal networking)

1.7 仅主机模式(Host-only networking)

1.8 UDP通道网络(UDP Tunnel networking)

1.9 VDE networking

1.10 限制I/O网络的带宽

1.11 提高网络性能

接上篇:VirtualBox 网络连接方式研究(一)

1.5  桥接网络(Bridged Networking)



在桥接网络模式下,VirtualBox在你的物理主机上启用了一个设备驱动,用以过滤从物理网络适配器中过来的数据。因此这个驱动被称为“网络过滤”设备。它允许VirtualBox拦截物理网络数据和注入数据有效地在软件中创建一个新的网络接口。当虚拟机在应用这个新的软件接口时,看起来就好像是虚拟机物理地连接到了网线上:物理主机可以通过这个接口与虚拟机进行数据的收发。这意味着你可以在虚拟机和网络之间设置路由和“桥梁”。

Note
桥接无线接口和桥接有线接口是完全不同的,因为大多数无线适配器不支持混合模式。所有通信必须使用主机的无线适配器的MAC地址,因此VirtualBox需要将传出包的以太网报头取代​​源MAC地址,以确保回复将发送到主机接口。当VirtualBox收到一个带有目标IP的传入包时,比对IP从属于虚拟机适配器,VirtualBox将会把以太网报头的目标MAC地址替换到虚拟机适配器的MAC地址中,并接收数据包。为了获取虚拟机的IP地址,VirtualBox会检查ARP和DHCP数据包。

桥接网络的局限性取决于你的物理主机操作系统:

Macintosh 主机。使用AirPort(Mac的无线网络)时功能受限。目前的VirtualBox只支持IPv4和IPv6的AirPort。如果要使用其他协议(比如IPX),你必须选择有线接口。

Linux主机。应用无线接口是功能受限,目前的VirtualBox只支持IPv4和IPv6的无线。如果要使用其他协议(比如IPX),你必须选择有线接口。
此外,Marvell Yukon II EC Ultra Ethernet NIC上的sky2提供的有线接口中把MTU设置为小于1500字节,将会导致丢包现象。
Linux 内核2.6.27版本不允许通过VLAN适配器实现虚拟机与外部网络之间的中继,Linux以外的操作系统亦然。

Solaris主机。不支持使用无线接口。因为Solaris子系统的技术限制,不能完全支持用IPFilter进行虚拟机通信过滤。这些问题将在未来的Solaris 11版本中得到解决。

从VirtualBox4.1开始,在Solaris11的物理主机上(build159及以上版本),无需任何配置就可以通过Solaris的Crossbow Virtual Network Interfaces (VNICs) 直接与VirtualBox相连,但VNIC需单独地与虚拟机网络接口对应。

从VirtualBox2.0.4开始到VirtualBox 4.0,VNIC可被使用,但具有以下注意事项:
1)将VNIC无法在多个虚拟机网络接口间共享,即每个虚拟机网络接口都必须有自己独有的VNIC
2) 使用VNIC虚拟网卡和虚拟机VNIC网络接口必须有相同的MAC地址。

使用VLAN接口与VirtualBox时,他们必须根据PPA-hack命名方案(如“e1000g513001”)来命名,否则虚拟机可能会以错误的格式接收数据包。

1.6 内部网络(Internal networking)



内部网络模式类似于桥接网络模式那样可以直接与“外部网络”通信。这里的“外部网络”是指连接在内网中的同一台物理主机上的其他虚拟机。

从技术层面上说,内部网络实现网络连接需求,桥接网络模式也可以实现。但是应用内部网络模式能够提高安全性。在桥接网络模式中,所有的数据通信都需要通过主机系统的物理接口。因此可以添加一个数据嗅探器(类似Wireshark)到主机接口和所有通过的数据的日志中。如果你想实现一台机器上的多台虚拟机之间的私下通信,并向物理主机和用户隐藏虚拟机的数据的话,桥接网络就不适合了。

在有需要的情况下,内部网络模式将会自动创建而不需要其他配置。每一个内部网路简单地一名称来区分。一旦多于一个有相同内网ID的网卡活动,VirtualBox的支持驱动会自动连接这些网卡并从当网络交换机的角色。VirtualBox支持驱动实现了一个完整的以太网交换机,并支持支持广播/多播帧和混杂模式。

为了把多台虚拟机的网卡连接成内网,将网络设置成内网模式,有以下两种方式:
1)通过图形界面进行设置,在网络设置对话框里选择一个存在的内网并输入新的名字。

2)命令行:


VBoxManage modifyvm “VM name” --nic intnet

可以指定网络名字:


VBoxManage modifyvm “虚拟机名称” --intnet "network name”

如果不指定网络名字,默认情况下网卡将会连接到intnet网络。

出于安全考虑,在默认情况下,Linux实现内部联网只允许在相同的用户ID运行的虚拟机建立一个内部网络。但是,可以建立一个共享的内部网络接口,通过用不同的UUID用户访问。

1.7   仅主机模式(Host-only networking)



仅主机模式是2.2版本之后加入的新的连网模式。可以将它视为桥接模式和内网模式的混合体:像桥接网络模式那样够通过物理以太网交换机与物理主机、其他主机相连。类似地,像内网模式一样,不需要存在物理网络接口,又因为它们没有连接到物理网络接口,所以虚拟机不能够与物理主机之外的外网连接。

在应用仅主机网络模式时,VirtualBox会在物理主机上创建一个新的软件接口。换言之,桥接模式下
一个现存的物理接口会被用于连接虚拟机,而仅主机网络模式下在主机上会创建一个新的“回环”接口,在内部网络模式下,虚拟机之间的通信数据是不可见的,但主机”回环“接口上的数据能够被截获。

在多台虚拟机装配到一起进行合作的情景下,对于预先配置的虚拟设备来说,仅主机网络模式十分的有用。例如,一台虚拟机可以包含一个web服务器和一个第二数据库,并且,由于他们主要用于相互访问,设备可以指示VirtualBox可以为这两台虚拟机创建一个仅主机网络模式,然后第二个虚拟机(桥接)网络将在Web服务器连接到外界提供数据,但外界无法连接到数据库。

将虚拟机的网络接口更改成仅主机网络模式:
* VirtualBox图形用户界面进行网络设置修改
* 命令行输入:


VBoxManage modifyvm “VM name” --nic hostonly
详见:Section 8.8, “VBoxManage modifyvm”

在能够添加仅主机网络模式到虚拟机之前,需要创建至少一个仅主机接口,用户界面:”File" → “Preferences” → “Network” → “Host-only network” → "(+)Add host-only network”。
命令行:


VBoxManage hostonlyif create
详见:Section 8.34, “VBoxManage hostonlyif”

仅主机网络模式像内部网络模式一样,你会发现VirtualBox内置的DCHP服务器非常的有用。它可以在仅主机网络模式下管理IP地址,否则你需要配置所有的静态IP。

在用户图形界面可以在网络设置中的仅主机选项中设置DCHP服务;
或者你也可以用命令行操作,详见:Section 8.35, “VBoxManage dhcpserver”
Note:在Linux和Mac OS X主机上,仅主机网络接口限制在128个。在Windows和Solaris主机上没有这样的限制。

1.8   UDP通道网络(UDP Tunnel networking)
1
这种组网方式允许在不同主机运行的虚拟机之间实现互联。

从技术实现上讲,这是把虚拟机网卡收发的以太网帧封装成UDP/IP的数据包,再通过可用网络将它发送给主机。

UDP 通道网络模式有以下三个字段属性:

Source UDP port
主机监听的端口。主机从该端口收到源地址来的数据包后,将会转发给接收端的虚拟机网卡
Destination address
传送数据的目标主机的IP地址
Destination UDP port
传输数据所用的端口号
当不同主机上的两台虚拟机互联时,必须交换他们的IP地址。在单一主机上,源UDP端口必须与目标UDP端口交换。

下例:主机1用10.0.0.1端口,主机2用10.0.0.2端口,配置UDP通道网络模式命令如下:


VBoxManage modifyvm “VM 01 on host 1” --nic generic
VBoxManage modifyvm “VM 01 on host 1” --nicgenericdrv UDPTunnel
VBoxManage modifyvm “VM 01 on host 1” --nicproperty dest=10.0.0.2
VBoxManage modifyvm “VM 01 on host 1” --nicproperty sport=10001
VBoxManage modifyvm “VM 01 on host 1” --nicproperty dport=10002

and


VBoxManage modifyvm “VM 02 on host 2” --nic generic
VBoxManage modifyvm “VM 02 on host 2” --nicgenericdrv UDPTunnel
VBoxManage modifyvm “VM 02 on host 2” --nicproperty dest=10.0.0.1
VBoxManage modifyvm “VM 02 on host 2” --nicproperty sport=10002
VBoxManage modifyvm “VM 02 on host 2” --nicproperty dport=10001

当然,你也可以设置成一台主机上的虚拟机互联,只要把目标地址(Destination port)都设置成127.0.0.1就好了。设置成一台主机时,这就类似于”内部网络“了,区别在于对于主机来说,虚拟机之间的数据通信是可见的,而一般的内部网络模式是不可见的。

NOTE:基于Unix的主机(例如Linux,Solaris,Mac OS X),不能绑定端口号<1024的应用程序,因为它无法被root.所运行。如果配置了这样的源UDP端口,虚拟机将不会启动。

1.9   VDE networking
1
分布式虚拟以太网(VDE)是灵活的,虚拟网络的基础设施系统以一种安全的方式跨越多台主机。
它允许L2 / L3交换,包括生成树协议,VLANs和WAN仿真。这是VirtualBox的可选部分,只包含在源代码中。

VirtualBox VDE只有一个参数.

VDE network
虚拟机将要连接的VDE交换机名称。
以下简单的例子演示如何把虚拟机连接到VDE交换机:
1、创建一个VDE交换机

de_switch -s /tmp/switch1

2、 用命令行做一下配置:


VBoxManage modifyvm “VM name” --nic generic
VBoxManage modifyvm “VM name” --nicgenericdrv VDE

连接到自动分配的交换机端口:


VBoxManage modifyvm “VM name” --nicproperty network=/tmp/switch1

连接到指定的switch端口:


VBoxManage modifyvm “VM name” --nicproperty network=/tmp/switch1[]

3、VDE交换机端口和VLAN之间的映射(可选):(从交换机CLI)


vde$ vlan/create
vde$ port/setvlan

VDE只能在Linux和FreeBSD主机上应用。只能在从VirtualSquare项目上安装了VDE软件和VDE插件类库的主机系统上运行。了解更多关于VDE网络模式,官方文档传送门:
http://wiki.virtualsquare.org/wiki/index.php/VDE_Basic_Networking

1.10  限制I/O网络的带宽
1
从4.2开始,VirtualBox允许对网络传输的最大带宽进行限制。一台虚拟机的多个网络适配器可以共享带宽群组限制,这样的限制可能会超过一个以上。

NOTE:VirtualBox只会对发送端的虚拟机数据进行延迟发送,不会对虚拟机接受的数据进行限制。

通过VBoxManage可以进行限制器的配置,以下示例创建了一个名为”Limit“的带宽群组,设置限制为20 Mbit/s 并将群组分配到虚拟机的第一第二个网络适配器中:


VBoxManage bandwidthctl “VM name” add Limit --type network --limit 20m
VBoxManage modifyvm “VM name” --nicbandwidthgroup1 Limit
VBoxManage modifyvm “VM name” --nicbandwidthgroup2 Limit

所有的群组中的适配器都会共享带宽限制,意味着以上例子中的两个适配器的带宽都不会超过 20 Mbit/s 。但是,如果其中一个适配器不需要带宽,那另一个将会占用它所在群组的剩余带宽。

在虚拟机运行时,都可以动态改变带宽群组的限制,即时生效。下例是将上例创建的带宽群组限制更改为 100 Kbit/s :


VBoxManage bandwidthctl “VM name” set Limit --limit 100k

要完全禁用虚拟机的第一个适配器,用以下命令:


VBoxManage modifyvm “VM name” --nicbandwidthgroup1 none

也可以在虚拟机运行时禁用所有分配到带宽群组中的适配器,通过将群组限制设为0,下例对名为”Limit“的带宽群组进行适配器禁用:


VBoxManage bandwidthctl “VM name” set Limit --limit 0

1.11   提高网络性能
1
VirtualBox中提供多种可以”附着“在主机网络上的虚拟网络适配器,可以通过多种方法进行配置。对于不同类型的适配器和所用的不同”附件“,网络性能也会不同。性能方面,Virtio网络适配器要优于Intel PRO / 1000仿真适配器,也优于PCNet系列适配器。Virtio和 Intel PRO/1000 适配器都得益于分段(segmentation)和卸载(offloading)校验。分段卸载是高性能的基础,因为它允许较少的内容交换,显著增加了虚拟机与主机之间传输的数据包大小限制。

NOTE:Virtio和Intel PRO/1000 for Windows XP驱动都不支持分段卸载,因此Windows XP系统上的虚拟永远无法达到与其他类型的虚拟同样的传输速率。请参考Microsoft知识库中其他信息,相应文章842264。

三种网络模式:内部网络、桥接网路和仅主机网络几乎具备相同的网络性能。因为内网模式下的数据包不经过主机网络堆栈,所以运行要更快更节省CPU的占用。NAT模式下,因为NAT提供网络地址解析,所以是最慢(也最安全)的模式。通用驱动附件是特殊的,不能替代其他类型的附件。

分配到虚拟机上的CPU数不能提高虚拟机的网络性能,在某些情况下还会有害于虚拟机,因为这增加了虚拟机的并发。

对于提高虚拟机的网络性能,有以下几点需要注意:
1、尽可能使用Virtio网络适配器,至少使用Intel/1000 适配器;
2、尽量使用桥接网络模式而不是NAT模式;
3、确定分段卸载在虚拟机操作系统上是否可用。一般默认情况下是可用的,你可以在Linux虚拟机上用ethtool命令行检查确认offloading设置;
4、要像第三方工具Wireshark那样在虚拟机网络适配器上对网络流量进行全面而细致的分析,需要在虚拟机的网络适配器上使用一个混合模式的规则(policy),并且只能在NAT网络、桥接网络适配器、内部网络和仅主机模式的适配器下使用。

设置混合模式规则( promiscuous mode policy)可以在用户界面的网络设置中配置,也可以用命令行工具VBoxManage配置,详见:Section 8.8, “VBoxManage modifyvm”

混杂模式规则是:

a)deny(默认设置),它可以隐藏不适合该虚拟机的网络适配器的流量。

b)allow-vms,它可以隐藏在这个虚拟机的网络适配器中的所有主机的流量,但允许它对来自其它虚拟机或发送到其他虚拟机的流量可见。

c)allow-all 删除所有限制——虚拟机的网络适配器能看到的所有通信流量。

创建host-only网络接口
VBoxManage hostonlyif create
会创建一个命为’vboxnet0’这样一个网口,前提为目前没有创建过,如果已经有一块这样的网口的话,将会以’vboxnet1’这样的方式来命名。它自动使用’192.168.56.1’这样的dhcp方式分配的ip地址,注意:创建了这样一个网口,但在宿主机上通过’ifconfig’不能看到,因为虚拟机没有使用到它,只有当它被使用时,才会在宿主机上看到。
你可以更改,之后就可以通过ifconfig看到了,而且宿主机有用到此网卡的地方也不会再报错:
VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.18.3 --netmask 255.255.255.224

网络方面的命令操作参考一下链接文章:
http://www.freeoa.net/osuport/sysadmin/using-vbox-com-operate-refer_1953.html
https://815222418.iteye.com/blog/2313338
https://815222418.iteye.com/blog/2313457
————————————————
版权声明:本文为CSDN博主「一定迟到逗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42651205/article/details/86503894

posted on 2022-10-04 01:22  bdy  阅读(192)  评论(0编辑  收藏  举报

导航