私は次の解決策を使用しました。このスレッドしかし、私はいつも
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