Oracle VM VirtualBox - 添加原始磁盘/物理磁盘(或避免“VERR_ACCESS_DENIED”错误)

Oracle VM VirtualBox - 添加原始磁盘/物理磁盘(或避免“VERR_ACCESS_DENIED”错误)

我在 Linux Mint 上运行 Virtual Box,当尝试将原始磁盘添加.vmdk到我的虚拟机时,出现以下错误。

访问介质“/home/stephen/VirtualBox VMs/Windows10/test.vmdk”的文件时出现权限问题 (VERR_ACCESS_DENIED)。

结果代码:
VBOX_E_FILE_ERROR (0x80BB0004)
组件:MediumWrap
接口:IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}
被叫方:IVirtualBox {d0a0163f-e254-4e5b-a1f2-011cf991c38d}
被叫方 RC: _E_OBJECT_NOT_FOUND (0x80BB0001)

我使用我读过的两种不同方法创建了原始 VMDK,每次我都会遇到相同的错误。他们来了

sudo VBoxManage internalcommands createrawvmdk -filename "/home/stephen/VirtualBox VMs/Windows10/test.vmdk" -rawdisk /dev/sda -partitions 3 -relative

和这个

sudo VBoxManage internalcommands createrawvmdk -filename "/home/stephen/VirtualBox VMs/Windows10/Windows10_2.vmdk" -rawdisk /dev/sda3

我知道它们几乎是相同的,但我读到添加分区和相关选项使一些人能够修复该错误。

我不知道这是否会改变很多,但我尝试使用的原始磁盘是sda3并且盒子正在运行sda2

另外,我已将我的用户添加到磁盘组,因为这是建议修复此错误的另一个选项。我对任何事情都持开放态度。

答案1

用于原始磁盘访问的 .vmdk 需要使用常规用户访问创建 ->不是根

不好,不安全,但至少一个可行的解决方案是更改您将使用此 .vmdk 访问的块设备的权限。 IE。sudo chmod 777 /dev/sdXX

然后,您可以使用以下 VirtualBox 命令轻松创建用于 RawDisk 访问的 vmdk 文件:

VBoxManage createmedium disk --filename /path-to-file.vmdk --format=VMDK --variant RawDisk --property RawDrive=/dev/sdXX

我想根据您的硬件配置,重新启动之间可能会出现一些问题。

测试于:

乌班图22.04

虚拟盒7.04

答案2

您不必使用它们sudo来创建上述文件 - 现在它们由 root 用户拥有,自然 VBox 无法使用它们,因为它们是模式 644。

如果您不想重新创建它们,您可以简单地:

sudo chown myuser:myuser /path/file.vmdk

答案3

Oracle VM VirtualBox - 添加原始磁盘/物理磁盘(或避免“VERR_ACCESS_DENIED”错误)

为了避免“VERR_ACCESS_DENIED”错误,您需要将设备“/dev/sdX”(用正确的字母替换 X)置于您的用户(“$USER”)的所有权和许可之下,如“/dev/sdX”最初属于“root”用户的所有权。

笔记:Oracle VM VirtualBox 由您的用户运行,因此您的用户必须拥有对设备“/dev/sdX”的必要访问权限。

将原始磁盘/物理磁盘添加到 Oracle VM VirtualBox

模型

sudo chown $USER "/dev/sdX"
sudo chown :$USER "/dev/sdX"
sudo chmod 700 "/dev/sdX"
VBoxManage createmedium disk --filename "<PATH_TO_VMDK>/dev_sdX_vmdk.vmdk" --format=VMDK --variant RawDisk --property RawDrive="/dev/sdX"

谢谢!

相关内容