我正在尝试从物理磁盘运行 VirtualBox 机器。
我读到我必须跑步
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename C:\PhysicalDrive2.vmdk -rawdisk \\.\PHYSICALDRIVE2
这曾经有效,但后来我必须更换磁盘(例如 \\.\PhysicalDrive1),但在运行上述命令(将 PhysicalDrive2 更改为 PhysicalDrive1)后,我得到了如下结果:
The 'createrawvdk' subcommand is deprecated. The equivalent functionality is
available using the 'VBoxManage createmedium' command and should be used
instead. See 'VBoxManage help createmedium' for details.
0%...VBOX_E_FILE_ERROR
VBoxManage.exe: error: Failed to create medium
VBoxManage.exe: error: Could not create the medium storage unit 'C:\PhysicalDrive1.vmdk'.
VBoxManage.exe: error: VMDK: Image path: 'C:\PhysicalDrive1.vmdk'. Failed to open the raw drive '\\.\PHYSICALDRIVE1' for reading (VERR_ACCESS_DENIED) (VERR_ACCESS_DENIED).
VBoxManage.exe: error: VMDK: could not create raw descriptor for 'C:\PhysicalDrive1.vmdk' (VERR_ACCESS_DENIED)
VBoxManage.exe: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component MediumWrap, interface IMedium
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleCreateMedium(struct HandlerArg *)" at line 634 of file VBoxManageDisk.cpp
关于“子命令已弃用”的事情:我尝试使用该createmedium
命令,但还没有找到让它与物理驱动器一起工作的方法。
注 1:在使用 PhysicalDrive1 时出现该错误后,我尝试使用 PhysicalDrive2 创建另一个介质(我想我可以以某种方式切换磁盘号,也许可以以不同的顺序插入设备)但现在它也不起作用。
注2:我已经尝试在 Admin 中运行命令cmd.exe
。
编辑1:我发现某物(它似乎是 VirtualBox 手册上的更新版本),但没有提及“访问物理磁盘”...
编辑2:我相信这可能与 Windows Insiders 有关。使用不稳定的 Windows 版本时,我遇到了与虚拟化相关的其他问题。
答案1
TLDR:您需要确保VboxSVC.exe
以管理员身份运行 - 找到此文件并设置兼容性选项 - run as administrator
。
详细的:
在 VirtualBox 中,任何与已注册的虚拟机相关的工作都VBoxSVC.exe
可以通过命令行界面VboxManage.exe
或图形用户界面来执行VirtualBox.exe
。
VboxSVC.exe
即使以VirtualBox.exe
提升权限启动图形用户界面 ( ),它也会以普通、非提升权限的用户身份启动as administrator
。
任何其他操作直接在相关应用程序中运行 -VBoxManage createmedium
命令直接通过运行VboxManage.exe
。
这就导致了一个可笑的情况,你可以很好地创建VMDK
具有提升权限的物理驱动器VboxManage
,但无法通过相同的提升权限VboxManage
或甚至通过提升权限的 GUI 将其连接到虚拟机,因为磁盘附件是通过非提升权限处理的VboxSVC.exe
。
因此,您需要确保VboxSVC.exe
以管理员身份运行:
- 默认找到
VBoxSVC.exe
文件(“%PROGRAMFILES%\Oracle\VirtualBox\VBoxSVC.exe”)。 - 右键点击它。
- 点击
Properties
。 - 单击
Compatibility
选项卡。 - 在打开的窗口中勾选
Run this program as administrator
或单击Change settings for all users
。Run this program as administrator
- 点击
OK
。
答案2
我在使用命令时遇到了同样的问题createmedium
(createrawvmdk
已贬值,因此请避免使用它)。我使用的是 USB 闪存驱动器,命令仅在第一次起作用。在进行故障排除和反复尝试时,我盲目猜测设备可能正在使用中并被锁定。
事实证明这只是一个幸运的猜测。我从 Windows 资源管理器的上下文菜单中弹出闪存驱动器,然后删除了闪存驱动器。睡了几分钟后,我醒来并再次插入闪存驱动器,运行我第一次使用的命令,它成功了!
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium disk --filename=slax-pendrive.vmdk --format=VMDK --variant RawDisk --property RawDrive=\\.\PHYSICALDRIVE2
不知道它是否有帮助,但在故障排除期间,我还删除了旧的 vmdk 文件和 Virtual Box 中的链接(从 VM 设置 > 存储和工具 > 硬盘)。
更新:创建 VMDK 时,它仍然损坏。但这是另一个问题。我仍在尝试修复它。
更新:我再次遇到此问题,弹出也不起作用。所以这次我在任务管理器中检查了正在运行的 Virtual Box 实例。
我结束了这两个任务,即 VirtualBox 接口和 VirtualBox 全局接口。之后,再次尝试运行该命令。这次该命令没有弹出就起作用了,而且我也能够通过以管理员身份运行 Virtual Box 来附加和使用磁盘文件。
答案3
如果有人仍然遇到此问题,请确保您的虚拟机以及 Virtual Box 软件已关闭。这解决了我面临的权限问题。