私は、小さなLinuxディストリビューションを搭載したUSBドライブを起動して、機能していることを示すvirtualbox rawディスクを作成しました。
Sudo ./VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/MyTinyLinux/rawdiskonusb.vmdk -rawdisk /dev/disk2 -partitions 2
Virtualbox VMに追加しようとすると、次のエラーが発生します。
Failed to open the disk image file ~/VirtualBox VMs/MyTinyLinux/rawdiskonusb.vmdk.
Permission problem accessing the file for the medium '~/VirtualBox VMs/MyTinyLinux/rawdiskonusb.vmdk' (VERR_ACCESS_DENIED).
Result Code: VBOX_E_FILE_ERROR (0x80BB0004)
Component: MediumWrap
Interface: IMedium {4afe423b-43e0-e9d0-82e8-ceb307940dda}
Callee: IVirtualBox {0169423f-46b4-cde9-91af-1e9d5b6cd945}
Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
Rawディスクのvmdkファイルはrootが所有していることがわかりました。私は自分のユーザーにそれを取りました。
それでも同じエラーが発生します。 virtualboxをrootで実行すればうまくいくと思いますが、本当にしたくないのです。とにかくこれを機能させる方法はありますか?
Rawパーティションにアクセスするには、ユーザーはdisk
グループに属している必要があります(Gillesが回答の最後の参照で述べたように)。
Sudo usermod -a -G disk $USER
ポスターはホストマシンでLinuxを使用しました。ここに来てWindowsをホストとして(私のように)使用すると、このエラーの簡単な解決策があります。 VirtualBoxを管理者権限で起動しない場合、Windowsはrawディスクアクセスを許可しません。
ディレクトリを含む、関連するファイルallの権限を確認します:~/VirtualBox VMs
、~/VirtualBox VMs/MyTinyLinux
、~/VirtualBox VMs/MyTinyLinux/rawdiskonusb.vmdk
、/dev/disk2
。ディレクトリは、ユーザーが読み取りおよび通過できる必要があります(chmod +rx
)およびイメージファイルとrawディスクは読み取りと書き込みが可能である必要があります(chmod +rw
)。
ユーザーがディスクにアクセスできるようにする必要があります。 /dev
はブートごとに自動的に入力されます。これを行うには、udevを追加する必要があります。参照 他のユーザーにアクセス権を与えずに、デバイスに特定のユーザー権限を与える
ディストリビューションによっては、VirtualBoxグループにユーザー名を追加する必要がある場合があります。
usermod -a -G vboxusers myusername
さらに、 askubunt に関する同様のQ&Aによると、ISOが破損している可能性があります。あなたの場合、私はそれが生のディスクへの失敗した変換を意味していると思います。最初の手順で変換がなんらかの形で失敗した場合に備えて、その手順を正しく実行する方法を検索して繰り返してください。
stillが解決策でない場合は、 VirtualBox Manual のアドバイスに従い、-relative
オプションを追加します。
イメージを作成するには、指定されたデバイスの読み取り/書き込みアクセスが必要です。読み取り/書き込みアクセスは、仮想マシンのイメージを使用するときにも必要になります。これが不可能な場合は、rawパーティションアクセス用の特別なバリアント(現在はLinuxホストでのみ利用可能)があり、現在のユーザーにディスク全体へのアクセス権を与える必要がありません。このような画像を設定するには、
VBoxManage内部コマンドcreaterawvmdk -filename /path/to/file.vmdk -rawdisk/dev/sda -partitions 1,5 -relative
仮想マシンから使用する場合、イメージはディスク全体ではなく、個々のパーティション(例では/ dev/sda1および/ dev/sda5)のみを参照します。その結果、読み取り/書き込みアクセスは、ディスク全体ではなく、影響を受けるパーティションにのみ必要です。ただし、作成中、パーティション情報を取得するには、ディスク全体への読み取り専用アクセスが必要です。
受け入れられた回答がないので、とりあえず回答として掲載します。他の人が上に投稿したように、あなたが正しいグループにいることを確認することに加えて:
Sudo usermod -a -G disk $USER
Sudo usermod -a -G vboxusers $USER
それでもVERR_ACCESS_DENIED
エラーが発生する場合は、@ Cybexによるコメントに従って、上記のグループの追加を有効にするためにlogout and log backを実行する必要があります。
同様の問題がありましたが、FinderでホームボリュームにいるときにSudoコマンドを実行していて、ボリュームがUser/Ownerにcdされました。
問題(私にとって)は、ディレクトリパス全体ではなくファイル名のみを表示することでした。 ...ファイル名のみが必要です-
VBoxManage内部コマンドcreaterawvmdk -filename rawdiskonusb.vmdk -rawdisk \。\ PhysicalDrive#
うまくいきました。