![Oracle VM VirtualBox - 添加原始磁盘/物理磁盘(或避免“VERR_ACCESS_DENIED”错误)](https://linux22.com/image/190807/Oracle%20VM%20VirtualBox%20-%20%E6%B7%BB%E5%8A%A0%E5%8E%9F%E5%A7%8B%E7%A3%81%E7%9B%98%2F%E7%89%A9%E7%90%86%E7%A3%81%E7%9B%98%EF%BC%88%E6%88%96%E9%81%BF%E5%85%8D%E2%80%9CVERR_ACCESS_DENIED%E2%80%9D%E9%94%99%E8%AF%AF%EF%BC%89.png)
我在 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"
谢谢!