2015/09/13

VirtualBox で Raw disk vmdk を作ろうとした時に VERR_ACCESS_DENIED が出る時の対処方法 on Ubuntu 14.04

VirtualBox で Raw disk にアクセスできるようにするには、vmdk ファイルを作るのが一般的のようです。
しかし、普通に作成しようとすると、以下のように VERR_ACCESS_DENIED が出てしまいます。
VBoxManage internalcommands createrawvmdk -filename ~/text.vmdk -rawdisk /dev/sda
VBoxManage: error: Cannot open the raw disk '/dev/sda': VERR_ACCESS_DENIED
VBoxManage: error: The raw disk vmdk file was not created

アクセス権の問題なので、sudo を使えば回避できるのですが、その場合、virtualbox 自体もスーパーユーザー権限で起動しないといけません。 そうしないと、以下のようなエラーが発生してしまいます。
Failed to open the hard disk file /home/yusuke/text.vmdk.

Permission problem accessing the file for the medium '/home/yusuke/text.vmdk' (VERR_ACCESS_DENIED).

Result Code: VBOX_E_FILE_ERROR (0x80BB0004)
Component: Medium
Interface: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}
Callee: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

しかし、せっかくの仮想環境をスーパーユーザー権限で起動するのはセキュリティ的にも問題があります。

自分を disk グループに追加するだけで良い

実は、これには簡単な回避方法があります。
以下のように自分を disk グループに追加してやるのです。(追加したあとは、再起動が必要です)

$ sudo gpasswd -a YOUR_USERNAME disk

すると、vmdk の作成も、virtualbox の起動も、先のユーザで問題なく実行できるようになります。

グループを調べる

Ubuntu 14.04 であれば、disk グループで間違いないと思いますが、こういうのは時々変わったりするので書いておきます。
以下のように、 デバイスファイルのグループ名とグループアクセス権を確認可能です。
% ls -al /dev/sd*
brw-rw---- 1 root disk 8,  0  9月 13 14:17 /dev/sda
brw-rw---- 1 root disk 8,  1  9月 13 11:36 /dev/sda1
brw-rw---- 1 root disk 8,  2  9月 13 11:36 /dev/sda2
brw-rw---- 1 root disk 8,  3  9月 13 11:36 /dev/sda3
brw-rw---- 1 root disk 8, 16  9月 13 11:36 /dev/sdb
brw-rw---- 1 root disk 8, 17  9月 13 11:36 /dev/sdb1
brw-rw---- 1 root disk 8, 32  9月 13 11:36 /dev/sdc
brw-rw---- 1 root disk 8, 33  9月 13 11:36 /dev/sdc1
brw-rw---- 1 root disk 8, 48  9月 13 11:36 /dev/sdd

0 件のコメント: