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