web-dev-qa-db-fra.com

VERR_ACCESS_DENIED lors de la tentative d'ajout d'un disque brut à la boîte virtuelle

J'ai créé un disque brut Virtualbox pointant vers un lecteur USB qui fonctionne, avec une petite distribution Linux dessus.

Sudo ./VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/MyTinyLinux/rawdiskonusb.vmdk -rawdisk /dev/disk2 -partitions 2

Quand j'essaye de l'ajouter à une VM de virtualbox, j'obtiens cette erreur:

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)

J'ai vu que le fichier vmdk du disque brut appartenait à root. Je l'ai montré à mon propre utilisateur.

Toujours la même erreur. Je soupçonne que cela fonctionnerait si j'exécutais virtualbox en tant que root, mais je ne veux vraiment pas le faire. Y a-t-il un moyen de faire fonctionner cela?

21
adapt-dev

L'utilisateur doit être dans un groupe disk pour accéder aux partitions brutes (comme Gilles l'a mentionné par dernière référence dans sa réponse).

Sudo usermod -a -G disk $USER
13
ASten

L'affiche utilisait linux sur la machine hôte. Si vous êtes venu ici et utilisez Windows comme hôte (comme moi), il existe une solution simple à cette erreur. Windows n'autorise pas l'accès au disque brut si vous ne le faites pas démarrez VirtualBox avec des privilèges d'administrateur.

11
Pascal

Vérifiez l'autorisation sur tous les fichiers impliqués, y compris les répertoires: ~/VirtualBox VMs, ~/VirtualBox VMs/MyTinyLinux, ~/VirtualBox VMs/MyTinyLinux/rawdiskonusb.vmdk, /dev/disk2. Les répertoires doivent être lisibles et traversables par votre utilisateur (chmod +rx) et le fichier image et le disque brut doivent être lisibles et inscriptibles (chmod +rw).

Vous devrez autoriser votre utilisateur à accéder au disque; depuis /dev est rempli automatiquement à chaque démarrage, vous devrez ajouter un udev pour ce faire. Voir Accorder des autorisations spécifiques à un utilisateur sur un appareil sans donner accès à d'autres utilisateurs

Selon la distribution, vous devrez peut-être ajouter votre nom d'utilisateur au groupe VirtualBox.

usermod -a -G vboxusers myusername

De plus, selon un Q & A similaire sur askubunt , vous pourriez avoir une image ISO corrompue. Dans votre cas, je suppose que cela signifie une conversion bâclée en disque brut. Essayez de chercher comment faire correctement cette procédure et répétez-la, au cas où la conversion serait bâclée d'une manière ou d'une autre pendant la première procédure.


Si ce n'est toujours pas une solution, suivez les conseils du Manuel VirtualBox et ajoutez le -relative option:

La création de l'image nécessite un accès en lecture/écriture pour le périphérique donné. Un accès en lecture/écriture est également nécessaire ultérieurement lors de l'utilisation de l'image à partir d'une machine virtuelle. Si cela n'est pas possible, il existe une variante spéciale pour l'accès brut aux partitions (actuellement uniquement disponible sur les hôtes Linux) qui évite d'avoir à donner à l'utilisateur actuel l'accès à l'intégralité du disque. Pour configurer une telle image, utilisez

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk/dev/sda -partitions 1,5 -relative

Lorsqu'elle est utilisée à partir d'une machine virtuelle, l'image se référera alors non pas à l'intégralité du disque, mais uniquement aux partitions individuelles (dans l'exemple/dev/sda1 et/dev/sda5). Par conséquent, l'accès en lecture/écriture n'est requis que pour les partitions affectées, pas pour le disque entier. Cependant, lors de la création, un accès en lecture seule à l'intégralité du disque est requis pour obtenir les informations de partitionnement.

3
ILMostro_7

Puisqu'il n'y a pas de réponse acceptée, je posterai ceci comme réponse pour le moment. En plus de vous assurer que vous êtes dans les bons groupes, comme d'autres l'ont indiqué ci-dessus:

Sudo usermod -a -G disk $USER
Sudo usermod -a -G vboxusers $USER

Si vous obtenez toujours le VERR_ACCESS_DENIED erreur, vous devez, selon le commentaire de @Cybex, déconnecter et reconnecter pour que les ajouts de groupe ci-dessus prennent effet.

2
gone

J'ai eu un problème similaire, mais le problème était que j'exécutais la commande Sudo alors que dans le Finder, j'étais dans mon volume d'origine, j'ai cded à Volume/Users/Owner où mon profil est appelé propriétaire et cela a parfaitement fonctionné.

0
Jesus Jones

Le problème (pour moi) était d'afficher uniquement le nom de fichier sans le chemin d'accès complet au répertoire. ... Seul le nom de fichier est nécessaire-

VBoxManage internalcommands createrawvmdk -filename rawdiskonusb.vmdk -rawdisk \.\PhysicalDrive #

a bien fonctionné.

0
Hariyanto Hariyanto