FAQ:VirtualBox
跳到导航
跳到搜索
UUID
uuid有虚拟机uuid和介质uuid(HardDisks、DVDImages等)的区别!
虚拟机uuid
- 注册虚拟机的uuid可以从C:\Documents and Settings\用户名\.VirtualBox文件夹下的VirtualBox.xml文件中查看。如:
<MachineRegistry> <MachineEntry uuid="{6f74cba0-b3ab-45ef-9e71-e1e69ae897df}" src="D:\Documents\Virtual Box\CentOS7\CentOS7.vbox"/> <MachineEntry uuid="{1dedf8c9-c77a-4d04-a98f-99f535711463}" src="D:\Documents\Virtual Box\Debian\Debian.vbox"/> </MachineRegistry>
- 也可在虚拟机配置文件(.vbox文件)中查看,见下节“介质uuid”。
- cmd命令"VBoxManage list vms":列出当前注册到Oracle VM VirtualBox的所有虚拟机。默认显示包含每个虚拟机名称和UUID的紧凑列表。如果指定了--long或--l参数,将显示和showvminfo命令一样的详细列表。
Microsoft Windows [版本 10.0.18363.1016] (c) 2019 Microsoft Corporation。保留所有权利。 C:\Users\eijux>d: D:\>cd D:\Program Files\Oracle\VirtualBox D:\Program Files\Oracle\VirtualBox>VBoxManage list vms "CentOS7" {6f74cba0-b3ab-45ef-9e71-e1e69ae897df} "Debian" {1dedf8c9-c77a-4d04-a98f-99f535711463}
介质uuid
- 介质的uuid,可以在具体的虚拟机配置文件(.vbox文件)中查看,如:
配置文件:“D:\Documents\Virtual Box\CentOS7\CentOS7.vbox” <Machine uuid="{6f74cba0-b3ab-45ef-9e71-e1e69ae897df}" name="CentOS7" OSType="RedHat_64" snapshotFolder="Snapshots" lastStateChange="2019-09-07T16:05:07Z"> <MediaRegistry> <HardDisks> <HardDisk uuid="{863486bc-ce7d-4145-a669-03cb36729f5f}" location="CentOS7.vdi" format="VDI" type="Normal"/> </HardDisks> <DVDImages> <Image uuid="{c9d02f1a-5ac8-4dce-9aa2-2261b14863ad}" location="E:/Downloads/IDM/CentOS-7-x86_64-DVD-1810.iso"/> </DVDImages> </MediaRegistry> ... </Machine> 配置文件:“D:\Documents\Virtual Box\Debian\Debian.vbox” <Machine uuid="{1dedf8c9-c77a-4d04-a98f-99f535711463}" name="Debian" OSType="Debian_64" snapshotFolder="Snapshots" lastStateChange="2019-10-07T05:57:18Z"> <MediaRegistry> <HardDisks> <HardDisk uuid="{910ae991-a039-47e6-b5f6-7a8e8d6b5e18}" location="Debian.vdi" format="VDI" type="Normal"/> </HardDisks> <DVDImages> <Image uuid="{a16463a6-a15b-4a6c-beca-829d6e42e5b1}" location="D:/Program Files/Oracle/VirtualBox/VBoxGuestAdditions.iso"/> <Image uuid="{f6126c05-d11d-4a5e-bfcc-0f0eb203a6ac}" location="E:/Downloads/IDM/debian-10.0.0-amd64-DVD-1.iso"/> </DVDImages> </MediaRegistry> ... </Machine>
- 其中<Machine uuid="...">为虚拟机uuid,<HardDisk uuid="...">为硬盘uuid(.vdi的uuid),<Image uuid="...">为镜像uuid。
- cmd命令"VBoxManage list hdds":显示有关Oracle VM VirtualBox当前使用的虚拟磁盘映像的信息,包括其所有设置、Oracle VM VirtualBox与它们关联的唯一标识符(UUID)以及与它们关联的所有文件。这是相当于虚拟介质管理器的命令行。
Microsoft Windows [版本 10.0.18363.1016] (c) 2019 Microsoft Corporation。保留所有权利。 C:\Users\eijux>cd D:\Program Files\Oracle\VirtualBox C:\Users\eijux>d: D:\Program Files\Oracle\VirtualBox>vboxmanage list hdds UUID: 863486bc-ce7d-4145-a669-03cb36729f5f Parent UUID: base State: created Type: normal (base) Location: D:\Documents\Virtual Box\CentOS7\CentOS7.vdi Storage format: VDI Capacity: 51200 MBytes Encryption: disabled UUID: 910ae991-a039-47e6-b5f6-7a8e8d6b5e18 Parent UUID: base State: created Type: normal (base) Location: D:\Documents\Virtual Box\Debian\Debian.vdi Storage format: VDI Capacity: 51200 MBytes Encryption: disabled
调整硬盘大小
使用modifymedium命令(调整存储介质),可以在磁盘映像创建后更改其特性。
With the modifymedium command, you can change the characteristics of a disk image after it has been created. VBoxManage modifymedium [disk|dvd|floppy] <uuid|filename> [--type normal|writethrough|immutable|shareable| readonly|multiattach] [--autoreset on|off] [--property <name=[value]>] [--compact] [--resize <megabytes>|--resizebyte <bytes>] [--move <path>] [--setlocation <path>]
Note For compatibility with earlier versions of Oracle VM VirtualBox, the modifyvdi and modifyhd commands are also supported and mapped internally to the modifymedium command. (为了与早期版本的Oracle VM VirtualBox兼容,modifyvdi和modifyhd命令也受支持,并在内部映射到modifymedium命令。)
The disk image to modify must be specified either by its UUID, if the medium is registered, or by its filename. Registered images can be listed using VBoxManage list hdds. A filename must be specified as a valid path, either as an absolute path or as a relative path starting from the current directory. 要修改的磁盘映像必须通过其UUID(如果介质已注册)或其文件名指定。可使用“VBoxManage list hdd”列出已注册的映像。文件名必须指定为有效路径,可以是绝对路径,也可以是从当前目录开始的相对路径。
- modifyhd、modifyvdi与modifymedium等效;
- 如:"VBoxManage modifyhd <uuid>|<filename> --resize 40960"。(40960 单位M)
- "VBoxManage modifyvdi <uuid>|<filename> --compact"
- <filename> 为.vdi文件名,用绝对路径或当前路径的相对路径;
- uuid为.vdi文件的注册id(存储介质的注册id,区别于虚拟机的注册id),可用"VBoxManage list hdds"命令查看(而非"VBoxManage list vms");
- 使用.vdi文件名可能不成功,可改用uuid。
- 在调整硬盘之前,一定要先关闭该虚拟机。
- Windows Server虚拟机扩容后,需要在磁盘管理分配新磁盘;
- Windows Server虚拟机压缩磁盘前,可先在虚拟机中用SDelete进行磁盘优化(“sdelete -z c:”)。
虚拟网卡消失问题
Virtual Box 一般安装时会在本地新建一个VirtualBox Host-Only Network的虚拟网卡,本机可以通过这个网卡和虚拟机通信。
然而Windows在升级时有可能会丢失掉这个网卡(比如: Windows8升级到Windows10) , 而且升级后原来的网卡还有残留配置,导致VirtualBox再新建一个网卡名字会变成VirtualBox Host-Only Network #2,并且在设置原来的地址时会报地址重复占用的提示:
解决:(“Problem after updating to Windows 10 1703”相关的讨论)
- 关闭 Virtual Box;
- 下载RunAsTI(注册表编辑工具Github:RunAsTI,此工具可以看到注册表被保护的内容);
- 运行RunAsTI64打开cmd, 输入regedit打开注册表(被WindowsDefender拦截时,右键管理员启动);
- 查找“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkSetup2\Interfaces\”下残留Virtualbox Host-Only Network Adapter信息项,并将其删除;
- 重启电脑;
安装 MacOS X 遇到的问题
在 VirtualBox 中安装 MacOS X 会遇到几个问题,总结如下。
注意事项:
- dmg 格式的系统镜像不能直接使用;
- 对于虚拟机错误:“
Unresolved (unknown) host platform error. (VERR_UNRESOLVED_ERROR).
”,其原因:VirtualBox_v6.1.32以及后续版本不再能安装 MacOS;如果您正在寻找最新的 VirtualBox 6.0 软件包,请参阅 VirtualBox 6.0 版本。如果您需要使用软件虚拟化运行虚拟机,请使用 6.0 版,因为这已在 6.1 版中停止。版本 6.0 将一直支持到 2020 年 7 月。 如果您正在寻找最新的 VirtualBox 5.2 软件包,请参阅 VirtualBox 5.2 版本。如果您仍然需要对 32 位主机的支持,请使用 5.2 版,因为这在 6.0 中已经停止。版本 5.2 将一直支持到 2020 年 7 月。
- 实测 VirtualBox_v6.0.4 可用。
- 对于虚拟机错误:“
Failed to query SMC value from the host (VERR_INVALID_HANDLE).
”,其原因:MacOS的机器信息验证?未通过,需要修改虚拟机信息;- 修改虚拟机信息(安装BigsSur):
cd "C:\Program Files\Oracle\VirtualBox\" # 修改虚拟机信息 VBoxManage.exe modifyvm "<虚拟机名字>" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac19,1" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Mac-AA95B1DDAB278B95" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 # VirtualBox调整虚拟机分辨率 VBoxManage setextradata "<虚拟机名字>" VBoxInternal2/EfiGraphicsResolution 1920x1080
- 修改虚拟机信息(Catalina):
cd "D:\Program Files\Oracle\VirtualBox\" # 修改虚拟机信息 VBoxManage.exe modifyvm "<虚拟机名字>" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1 # VirtualBox调整虚拟机分辨率 VBoxManage setextradata "<虚拟机名字>" VBoxInternal2/EfiGraphicsResolution 1920x1080
- 修改虚拟机信息(安装BigsSur):
- 对于虚拟机错误:“
Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED)
”,其原因:Hyper-v 不能与 vbox 和 vm 共存;Hyper-v 的虚拟方式不一样,开启 Hyper-v 后会将用户的桌面系统给虚拟化,用户的桌面系统就会成为 Hyper-v 的虚拟系统,而 Hyper-v 的虚拟系统是不允许再开虚拟机的,因此开启 Hyper-v 后 VM 和 Vbox 就不能运行。 ???但是使用 VMware 直接(安装 Unlocker 之后)就安装了 Bigsur,并没有遇到类似问题。???
- 共存问题解决:
## Hyper-v与Vbox 共存,方法二选一(VM 暂时还没有和 Hyper-v 共存,好像也没遇到) #指定vbox下的虚拟系统开启这个功能 VBoxManage setextradata "<虚拟机名字>" "VBoxInternal/NEM/UseRing0Runloop" 0 #或指定vbox所有虚拟系统开启 VBoxManage setextradata global "VBoxInternal/NEM/UseRing0Runloop" 0