VBoxManage:错误:无法用作请求的设备

VBoxManage:错误:无法用作请求的设备

我使用了来自的解决方案这个线程但我总是得到

VirtualBox error: The medium 'lvol.vmdk' can't be used as the requested device type (0x80004005)

我已经尝试了所有 SATA、SCSI、IDE 和 SAS 控制器,但仍然无法正常工作。

主机SO:Ubuntu 12.04.1 amd64 VirtualBox 4.1

lvol.vmdk 是用以下命令创建的

vboxmanage internalcommands createrawvmdk -filename /VDK/lvlol.vmdk -rawdisk /dev/vg/lv

原始磁盘有:

1 primary ext3 156MB
2 primary swap 2147MB
3 primary ext3 4137MB

答案1

如果您正在运行与 Ubuntu 12.10 相当的系统,使用 udev,那么您必须指示 udev 为要分配给 Virtualbox 的逻辑卷分配适当的权限。

要检查逻辑卷的当前权限:

$ ls -lL /dev/mapper/vg_usbraid-vm_webserver
brw-rw---- 1 root disk      252,   8 Oct 26 09:26 vg-lv
id
uid=1000(username) gid=1000(groupid) groups=1000(groupid),4(adm),20(dialout),24(cdrom),46(plugdev),115(lpadmin),117(admin),122(sambashare)

并通过命令检查设备的组 ID 是否在组列表中列出id

上面示例中的问题是“root”和“disk”都不在id输出的列表中。虽然扩展用户的组列表很容易,但这实际上不是您想要的,因为将root或添加disk到您的用户帐户是一个主要的安全风险。您可以作为普通用户写入任何磁盘处于非常低的水平。下面解释更好的解决方案。

由于目前可用的信息有限,我无法详细介绍,但这就是我为实现在我自己的用户名下从逻辑卷运行的 Vbox 虚拟机所做的事情:

创建以下文件:/etc/udev/rules.d/65-vmdmsetup.rules 内容:

SUBSYSTEM!="block",                             GOTO="vm_device_mapper_end"
KERNEL!="dm-*",                                 GOTO="vm_device_mapper_end"
ACTION!="add|change",                           GOTO="vm_device_mapper_end"

# Obtain device status
IMPORT{program}="/sbin/dmsetup export -j%M -m%m"
ENV{DM_NAME}!="?*",                             GOTO="vm_device_mapper_end"

ENV{DM_NAME}=="vg_usbraid-vm_webserver",        GROUP="groupid"                                                

LABEL="vm_device_mapper_end"

在哪里:

  • vg_usbraid是卷组的名称
  • vm_webserver是逻辑卷的名称
  • groupid是您的用户名附带的组 ID。检查输出中的“gid=”id

当然,您需要重新加载 udev,但是在 udev 规则中输入错误可能会导致系统崩溃。因此,请确保关闭尽可能多的应用程序,并且可能只是运行 async将尽可能多的数据刷新到磁盘。考虑提高日志级别,这样万一它不起作用,至少您可以找到一些导致问题发生的原因。

$ udevadm control --log-priority=info
$ sudo udevadm control --reload

在 Ubuntu 上,日志记录被重定向到/var/log/syslog.

只有在设置了 udev 后,您才应该创建逻辑卷,否则 udev 将看不到事件。如果您的 LV 已经存在,请运行:

$ sudo udevadm trigger --subsystem-match=block

然后最后使用以下命令检查权限是否设置正确:

$ ls -lL vg_usbraid-vm_webserver
brw-rw---- 1 root groupid  252,   8 Oct 26 09:26 vg_usbraid-vm_webserver
                  ^^^^^^^

并将日志记录杆恢复为默认设置:

$ sudo udevadm control --log-priority=err

相关内容