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

udevを使用してUbuntu 12.10と同等のシステムを実行している場合は、Virtualboxに割り当てる論理ボリュームに適切な権限を割り当てるようにudevに指示する必要があります。

論理ボリュームの現在の権限を確認するには:

$ 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ルールに間違いがあるとシステムがクラッシュする可能性があります。したがって、できるだけ多くのアプリケーションを閉じて、syncできるだけ多くのデータをディスクにフラッシュするプログラムを実行します。機能しない場合に備えて、少なくとも問題が発生する理由を見つけるためにログレベルを上げることをお勧めします。

$ 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

関連情報