web-dev-qa-db-fra.com

Quelle est la bonne façon de partager des répertoires avec Ubuntu s'exécutant dans une boîte virtuelle VM avec les autorisations appropriées?

Dans VirtualBox, quel est le meilleur moyen de partager un répertoire entre un hôte OS X et un invité Ubuntu?

  • Hôte: Mac OS X 10.7.3
  • Invité: Ubuntu 12.04
  • Guest a un répertoire partagé monté via les paramètres de VirtualBox avec Access = Full et Auto-Mount = Yes.

Le problème de cette configuration est illustré ci-dessous. Dans mon répertoire partagé, je ne peux pas du tout modifier les autorisations (il ne s'agit pas d'une erreur d'autorisation refusée, mais elles ne prennent tout simplement pas effet).

Ubuntu 12.04 (invité):

% ls -l
total 0
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 10
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 2
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 3
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 4
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 5
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 6
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 7
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 8
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 9

Mac OS X 10.7.3 (hôte):

$ ls -l
total 0
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 1
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 10
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 2
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 3
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 4
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 5
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 6
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 7
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 8
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 9

Si je chmod sur l'invité, rien ne change:

% chmod +x 1 | ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1

Si je chmod sur l'hôte, cela change sur l'hôte mais pas sur l'invité:

$ chmod +x 1 | ls -l 1 # Host
-rwxrwx--x  1 <my-mac-user>  staff  0 Apr 17 21:56 1

% ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
23
jmdeldin

Je l'ai compris!

Reproduire:

  1. Arrêtez la VM, ajoutez des dossiers partagés dans les paramètres de la VBox (Permanent = Yes, Auto-Mount = No)
  2. Démarrer la VM
  3. Depuis un terminal, lancez umask && id en tant qu'utilisateur normal pour obtenir quelque chose comme ceci:

    002 # this is your umask
    uid=1000(luser) gid=1000(luser) groups=1000(luser),4(adm),24(cdrom),27(Sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxsf)
    
  4. Sudo mkdir -p /media/sf_src # src is the shared directory

Pour monter le répertoire src à titre de test:

Sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src 
                           |   |        |        |   |-> where to mount
                           |   |        |        |       the file
                           |   |        |        |-> name of the shared dir
                           |   |        |            (in VBox settings)
                           |   |        |
                           \   |        /
                        from the `id` command

Pour le monter automatiquement lors de la connexion, éditez /etc/fstab et ajoutez ce qui suit:

src /media/sf_src vboxsf umask=002,gid=1000,uid=1000
22
jmdeldin

Le problème - problèmes d'autorisation dans vbox/ubuntu pour accéder à un lecteur partagé OSX

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

L'objectif est un moyen simple de partager des répertoires entre les environnements Mac et Ubuntu. Malheureusement, les exemples que j'ai vus jusqu'à présent semblent être un peu plus complexes que ce dont ils ont réellement besoin, et n'expliquent pas vraiment quel est le véritable problème à résoudre. Je vais essayer de gérer ces deux problèmes ici.

L'environnement ici est un Mac sous OSX 10.9.5, avec Virtual Box 4.3.16 exécutant Ubuntu-14.04.1 avec les extensions invité installées. Septembre 2014 trucs.

Je pense que tout le problème ici est que le id des répertoires sur le Mac et dans Ubuntu doit correspondre - Les gid par défaut attribués à l'utilisateur et aux groupes sont différents entre OSX et Ubuntu, et c'est là que le le problème réside.

Pour accéder à un fichier, il faut soit le posséder, soit être membre du groupe à qui il appartient. Et comme l’accès dépend en fait du numéro d’identification du groupe, et non du nom du groupe, il suffit de créer un numéro de groupe commun des deux côtés, auquel les utilisateurs appartiennent.

C’est exactement ce que fait la solution ci-dessous. Ne vous méprenez pas sur la longueur de ce qui est écrit, c’est en fait très simple. Il y a juste beaucoup d’exemples de ce qui se passe.

Je vais basculer entre les consoles OSX et VBOX ici (mac et virtual-box/ubuntu) dans ce document - assurez-vous de bien comprendre quelle fenêtre votre dans.

Remarque finale: La solution présentée ci-dessous repose sur l’établissement d’un identifiant de groupe commun entre les environnements OSX et Ubuntu, afin que les autorisations de fichiers fonctionnent. Il peut y avoir d'autres solutions plus modernes. Celui-ci est vraiment simple et compréhensible, et fonctionne sur des installations de base sans fioritures.

OSX: —————

Notez que cela a été fait sur un Mac 10.9.5 tout neuf, sans rien dessus, qui n’est pas connecté à un réseau d’entreprise, ni rien d’excellent à l’exécuter, à part un logiciel standard. C'est aussi simple que cela.

Lorsque j'ai effectué l'installation par défaut sur le Mac, joe_public est l'utilisateur administrateur et son uid a été défini sur 501.

Joes-MacBook-Pro:/ joe_public$ id
uid=501(joe_public) gid=20(staff) groups=20(staff),999(vboxsf),401(com.Apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),501(access_bpf),33(_appstore),100(_lpoperator),204(_developer),398(com.Apple.access_screensharing),399(com.Apple.access_ssh)

Notez que le id est 501 - il s'agit du premier identifiant de compte par défaut sur OSX - rien de spécial

J'ai créé quelques répertoires que je souhaite partager du côté Mac. Notez que je ne les ai pas placés dans mon répertoire utilisateur pour des raisons de sauvegarde.

Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/shared
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/public 
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/images

Joes-MacBook-Pro:vdisk joe_public$ ls -al
total 0
drwxr-xr-x   5 joe_public  admin   170 Oct  8 01:08 .
drwxrwxr-t  36 root        admin  1292 Oct  6 02:26 ..
drwxrwxrwx   2 joe_public  admin    68 Oct  6 01:08 images
drwxr-xr-x   3 joe_public  admin   102 Oct  8 01:07 public
drwxrwxrwx   4 joe_public  admin   136 Oct  8 00:45 shared

VBOX: ——————

Simple boîte virtuelle par défaut et installation d'ubuntu - encore une fois, joe_public est l'administrateur par défaut créé lors de l'installation d'ubuntu.

Notez encore une fois que l’espace de noms entre OSX et Ubuntu est complètement différent. Il n'y a absolument aucune relation entre les deux noms ici.

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ id
uid=1000(joe_public) gid=1000(joe_public)   groups=1000(joe_public),4(adm),24(cdrom),27(Sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)

Création de trois points de montage, en utilisant Virtual Box's Setting -> Shared Folders gui.

Name      Path              Auto-mount  Access
images    /vdisk/images     Yes         Full
public    /vdisk/pubic      Yes         Read-only
shared    /vdisk/shared     Yes         Full

REMARQUE: je devais en réalité redémarrer ma session pour que tous ces points de montage puissent apparaître.

joe_public@joe_public-ubuntu-VirtualBox:~$ mount | grep vboxsf
shared on /media/sf_shared type vboxsf (gid=999,rw)
public on /media/sf_public type vboxsf (gid=999,rw)
images on /media/sf_images type vboxsf (gid=999,rw)

Notez que le gid correspondant est 999 - il s’agit du groupe vboxsf.

joe_public@joe_public-ubuntu-VirtualBox:~$ grep 999 /etc/group
vboxsf:x:999

Ceci a été attribué automatiquement par Virtual Box version 4.3.16 pour nous. La documentation de vbox montre comment changer cela si vous montez le chemin manuellement à l'aide de la ligne de commande, mais qui s'en souviendra - prenez simplement les valeurs par défaut imposées par l'interface graphique.

Mais cela ne fonctionne pas (attendu à ce stade - c'est ce que nous essayons de résoudre)

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

Notez qu’à ce stade joe_public n’est pas membre de ce groupe vboxsf - et cela posera un problème tant que nous ne le réparerons pas. FYI: Ce sont les groupes par défaut affectés au compte lors de sa création.

joe_public@joe_public-ubuntu-VirtualBox:/media$ grep joe_public /etc/group
adm:x:4:syslog,joe_public
cdrom:x:24:joe_public
Sudo:x:27:joe_public
dip:x:30:joe_public
plugdev:x:46:joe_public
lpadmin:x:108:joe_public
joe_public:x:1000:
sambashare:x:124:joe_public

Donc, ce que nous avons à ce stade (nous n’avons encore rien fait pour le réparer)

•   On mac,   joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac,   vboxsf does not exist

Nous ne voulons pas changer le gid de l’utilisateur [joe_public de chaque côté, car c’est un problème pour les systèmes déjà installés, et cela ne résout pas le problème pour d’autres utilisateurs. La solution la plus simple consiste à créer un identifiant de groupe correspondant, vboxsf - du côté mac, et assurez-vous que joe_public en est membre des deux côtés.

Donc, toujours sur vbox/ubuntu, faites joe_public un membre du groupe 999 vboxsf

joe_public@joe_public-ubuntu-VirtualBox:/$ Sudo usermod -a -G vboxsf joe_public
joe_public@joe_public-ubuntu-VirtualBox:/$ grep 999 /etc/group
vboxsf:x:999:joe_public

Je pense que je me suis déconnecté de mon compte et que je suis revenu ici après que je l'ai fait.

OSX: —————

Nous devons maintenant créer un groupe vboxsf sur le mac. Je doute que le nom fasse réellement une différence ici - c’est l’identifiant du groupe 999 qui est important. Rappelez-vous que les espaces de noms de système de répertoire (ainsi que les noms d'utilisateur) sont différents entre l'hôte et les systèmes d'exploitation VM. Mais juste pour rendre la vie saine, nous l'appelons tous vboxsf sur le mac. Même raisonnement pour lequel joe_public utilise un nom d'utilisateur des deux côtés.

OSX n’a pas une simple commande add group comme Linux, alors utilisez la commande dscl pour le faire en plusieurs étapes. Veuillez consulter la documentation de Mac OS pour plus de détails à ce sujet. Notez que nous créons le groupe vboxsf et ajoutons joe_public à ce groupe ici.

Sudo dscl . -create /Groups/vboxsf
Sudo dscl . -create /Groups/vboxsf name vboxsf
Sudo dscl . -create /Groups/vboxsf passwd "*”
Sudo dscl . -create /Groups/vboxsf gid 999
Sudo dscl . -create /Groups/vboxsf GroupMembership joe_public

Donc, à ce stade, nous devrions avoir

•   On mac, joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac, vboxsf gid is 999
•   On linux, joe_public is member of vboxsf 
•   On mac, joe_public is member of vboxsf

La preuve, c’est que si cela fonctionne - c’est la prochaine étape

VBOX: ——————

cd dans notre répertoire et touchez un fichier

joe_public@joe_public-ubuntu-VirtualBox:/$ cd /media/sf_shared
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ touch foo

Vérifiez que nous avons créé un fichier avec succès.

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  102 Oct  8 00:44 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

OSX: —————

Joes-MacBook-Pro:shared joe_public$ cd /vdisk/shared
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  3 joe_public  vboxsf  102 Oct  8 00:44 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:44 foo

Joes-MacBook-Pro:shared joe_public$ touch bar
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  4 joe_public  vboxsf  136 Oct  8 00:45 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:45 bar

VBOX: ——————

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  136 Oct  8 00:45 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

Tout semble fonctionner ..

VBOX: —————— VÉRIFICATION FINALE

Ce que nous vérifions ici est que tout dépend de l'utilisateur joe_public étant membre du groupe vboxsf - et le moyen le plus simple consiste simplement à supprimer joe_public du groupe

Supprimer l'utilisateur joe_public du groupe vboxsf

joe_public@joe_public-ubuntu-VirtualBox:~$ Sudo gpasswd -d joe_public vboxsf
log out/in ubuntu

Voir si nous pouvons accéder à notre répertoire - et nous ne pouvons pas, et cela prouve qu'il s'agit d'un problème d'autorisation de groupe

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

Ajouter l'utilisateur dans vboxsf

joe_public@joe_public-ubuntu-VirtualBox:/$ Sudo usermod -a -G vboxsf joe_public
log out/in ubuntu

Ça marche encore!

joe_public@joe_public-ubuntu-VirtualBox:~$ ls -al /media/sf_shared
total 4
drwxrwx--- 1 root vboxsf  170 Oct  8 01:48 .
drwxr-xr-x 6 root root   4096 Oct  8 01:25 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

VBOX: - UN PLUS DE PROBLEME - liens symboliques dans vbox -------

Si vous entrez dans / media/sf_shared, vous constaterez que les liens symboliques dans les répertoires partagés ne fonctionnent tout simplement pas. C'est un très gros problème si vous essayez de configurer un environnement de développement Linux complet sur un lecteur partagé.

joe_public@joe_public-ubuntu-VirtualBox:/media$ cd sf_images
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ls
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ mkdir test
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2
ln: failed to create symbolic link ‘test2’: Read-only file system

Par défaut, les liens symboliques ne sont pas pris en charge sur les partages de boîte virtuelle. Voir ci-dessous pour des explications. D'après ce que j'ai compris, les liens symboliques constituent une faille de sécurité qui a été "corrigée" dans Virtual Box en désactivant leur prise en charge dans la période 4.1.8 (2011). Je cours 4.3.16 ici ...

https://www.virtualbox.org/ticket/10085

http://ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/

Heureusement, il existe une porte arrière pour le réactiver, via la commande VBoxManage de l'hôte. Comme toujours, veuillez comprendre les failles de sécurité que vous pouvez ouvrir. Je suis sur une machine de développement autonome, donc cela ne semble pas être un problème.

OSX: ------------

Joes-MacBook-Pro:shared pbradstr$ VBoxManage setextradata Ubuntu VBoxInternal2/SharedFoldersEnableSymlinksCreate/shared 1   

Remarque: bunt est le nom de mon ordinateur virtuel et shared est le nom du répertoire partagé.

Vous pouvez obtenir le nom de vm comme ceci:

Joes-MacBook-Pro:shared pbradstr$ VBoxManage list vms
"Ubuntu" {8461045a-1cee-4d44-8148-05920a47cee0}
Joes-MacBook-Pro:shared pbradstr$

Et le nom des dossiers partagés, soit via l'interface graphique de Virtual Box, soit

Joes-MacBook-Pro:shared pbradstr$ VBoxManage showvminfo Ubuntu | grep -A 5 "Shared folders"
Shared folders:  

Name: 'shared', Host path: '/vdisk/shared' (machine mapping), writable
Name: 'public', Host path: '/vdisk/public' (machine mapping), readonly
Name: 'images', Host path: '/vdisk/images' (machine mapping), writable

J'ai redémarré tout le système de boîte virtuelle ici, je n'ai pas compris la configuration minimale requise.

Quoi qu'il en soit, pour tester cela, retournez à votre fenêtre vbox

VBOX: ---------

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2

Pas d'erreur - et à vérifier

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -ald test*
drwxrwx--- 1 root vboxsf 102 Oct  8 11:33 test
lrwxrwx--- 1 root vboxsf   4 Oct  8 13:10 test2 -> test

OSX: ----------

Et retour sur le côté mac - juste pour prouver que tout fonctionne

Joes-MacBook-Pro:shared pbradstr$ ln -s test test3
Joes-MacBook-Pro:shared pbradstr$ ls -ald test*
drwxr-xr-x  4 joe_public  admin  136 Oct  8 13:20 test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:10 test2 -> test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:21 test3 -> test

Veuillez noter que je n'ai testé cela que sur un hôte OSX et un client de boîte virtuelle Ubuntu. Les références que j'ai énumérées ci-dessus semblaient indiquer qu'il pourrait y avoir un problème d'exécution d'un hôte Windows.

EXERCICE GAUCHE POUR L'ÉLÈVE ———————

L’avantage de la méthode indiquée ci-dessus est qu’elle peut s’exécuter sur une machine autonome, sans accès réseau. Mais si vous y réfléchissez, ce problème de nom-vers-id doit être commun à tous les environnements informatiques hétérogènes.

Quelles autres solutions sont disponibles là où des solutions à ce problème sont disponibles? - Des choses comme Active Directory (un produit Microsoft) et similaires pourraient peut-être résoudre ce problème. Il serait intéressant d’obtenir une collection de ces solutions et d’y comparer diverses caractéristiques et compromis.

4
pbradstr

Pour moi tout ce que je devais faire était:

Sudo adduser [username] vboxsf

Cela me suffisait pour accéder aux dossiers partagés. Le dossier contient un groupe de vboxsf, il suffit d’attribuer un utilisateur à ce groupe pour obtenir un accès. Si vous devez définir un accès plus strict ou un accès plus contrôlable, vous devrez peut-être suivre les étapes de son montage manuel avec le bon ID utilisateur-s.

Pour moi, la solution fstab ne fonctionnait pas et empêchait l'ordinateur de démarrer correctement.

3
Kris Avi

Après avoir créé un dossier partagé dans les paramètres de Virtualbox, Ubuntu le montera automatiquement pour vous lors du prochain démarrage du système (une icône apparaîtra sur votre bureau).

enter image description here

Mais si vous n'utilisez pas le compte root, vous ne serez pas autorisé à y accéder. Ce que vous devez faire est d'ajouter votre compte utilisateur à un groupe d'utilisateurs appelé "vboxsf":

Sudo usermod -G vboxsf -a $USER

Puis déconnectez-vous et reconnectez-vous. Vous pouvez accéder au dossier partagé maintenant.

3
realhu

OS hôte : macOS
OS (invité) OS : Ubuntu Server 16.04.5 LTS
VirtualBox v5.2.18
Le système d'exploitation hôte et le système d'exploitation invité doivent avoir le même utilisateur (plus loin dans le texte: nom d'utilisateur ).

Étape 1: Installation des ajouts d'invité VirtualBox :

1.1. Localisez les additions invité de VirtualBox,

$ cd /Applications/VirtualBox.app/Contents/MacOS/
$ cp VBoxGuestAdditions.iso ~/Downloads/

1.2. Démarrer la VM

1.3. Cliquez sur l'icône du CD dans la barre de tâches en bas à droite

1.4. Sélectionnez "Choisir une image disque ..." "et recherchez le fichier VBoxGuestAdditions.iso.

1.5 Dans le type de terminal invité (vous pouvez également le faire à partir du terminal hôte si vous y êtes en SSH):

$ Sudo su
$ apt update
$ apt upgrade
$ apt-get install dkms build-essential linux-headers-generic gcc make
$ mount /dev/cdrom /mnt
$ cd /mnt
$ sh ./VBoxLinuxAdditions.run
$ reboot

Étape 2: Configuration des dossiers partagés:

2.1. Créer des règles dans la VM:

  • Arrêtez la VM
  • Allez à Settings > Shared Folders
  • Cliquez sur le bouton vert Add new port forwarding rule en haut à droite de la fenêtre.
  • Recherchez et sélectionnez le dossier que vous souhaitez partager (par exemple: /chemin/vers/shared/dossier_hôte )
  • Sélectionnez les options Auto-mount et Make Permanent
  • Démarrer la VM

2.2. Pour monter un dossier partagé sur /opt, vous devez créer un sous-dossier shared_folder_dir et y définir les autorisations appropriées:

$ Sudo mkdir -p /opt/shared_folder_dir
$ Sudo chmod ug+w -Rv /opt/shared_folder_dir
$ Sudo chown username:username -Rv /opt/shared_folder_dir

2.3. Ajouter nom d'utilisateur au vboxsf groupe:

$ Sudo adduser username vboxsf
$ Sudo usermod -a -G vboxsf username

2.4. Redémarrez VM pour appliquer les modifications:

$ Sudo reboot

Étape 3: montage automatique Host_folder dans /opt/shared_folder_dir:

3.1. Modifiez le fichier /etc/rc.local de VM:

$ Sudo nano /etc/rc.local

et placez la ligne suivante juste au-dessus de exit 0:

# 'folder_name' = given in the shared folders configuration
# 'path/to/shared/folders' = guest path to access the shared folders from
# 'id' = prints uid/gid
# Sudo mount -t vboxsf -o uid={uid},gid={gid} {shared_folder_name} {path/to/shared/folder}
sleep 5
Sudo mount -t vboxsf -o uid=1000,gid=1000 Host_folder /opt/shared_folder_dir
exit 0
<<< EOF >>>

Remarque: J'ai ajouté sleep 5 pour exécuter l'opération de montage après Les ajouts d'invité VirtualBox ont commencé. Vous pouvez vérifier cela avec la commande journalctl -b.

3.2. Redémarrez VM pour appliquer les modifications:

$ Sudo reboot

Voir aussi

0
Ukr

J'ai trouvé cela, j'ai testé et cela a fonctionné dans Ubuntu et Xubuntu, juste la fonctionnalité de montage automatique n'a pas fonctionné pour moi

I. Installer des ajouts d'invité

Tout d’abord, il est nécessaire d’installer les additions invité de VirtualBox au système hôte:

Choisissez dans le menu de VitualBox: Devices -> Install Guest Additions…

Il monte une nouvelle image ISO pour le système hôte. Un nouveau CD apparaît dans Ubuntu (ou montez-le). Exécutez en tant que root le script d'installation VBoxLinuxAdditions-x86.run (car il s'agit d'un Mac basé sur Intel) dans une fenêtre de terminal:

cd /media/cdrom
Sudo VBoxLinuxAdditions-x86.run

Il vous sera probablement demandé de redémarrer Ubuntu.

L’installation de Guest Additions présente de nombreux avantages, tels que l’adoption de la résolution d’écran (la taille de la fenêtre correspond à la résolution du système, c’est-à-dire sans barres de défilement), le mode souris simple (il n’est pas nécessaire d’appuyer sur le bouton de commande gauche pour libérer le curseur de la souris) et ce que nous recherchons. pour, dossiers partagés.

II. Créer un dossier partagé

L'objectif est d'accéder à un dossier partagé, ce qui est un moyen plus facile que d'utiliser sshd ou Samba.

Choisissez dans le menu de VitualBox: Périphériques -> Dossiers partagés ...

  • Cliquez sur le bouton Ajouter un nouveau dossier partagé.
  • Choisissez un chemin de dossier - un dossier sur votre disque dur Mac, par exemple./Utilisateurs/ondrej/Pictures.
  • Choisissez un nom de dossier - un nom qui identifie ce dossier partagé dans Ubuntu (en tant que système hôte), par exemple. des photos.
  • Sélectionnez Rendre permanent - si vous souhaitez conserver cette définition de dossier partagé.
  • Cliquez sur OK.
  • Cliquez sur OK pour fermer la liste des dossiers partagés.

III. Monter un dossier partagé

Montez le dossier partagé créé dans un dossier avec des autorisations pour votre utilisateur. Ouvrons une fenêtre de terminal sur Ubuntu et:

Créez un dossier où sera monté le dossier partagé. (Ignorez cette étape si vous avez déjà un dossier pour cela.)

mkdir DIR

par exemple. (dans/tmp)

mkdir share

Obtenez votre uid d'utilisateur:

id

Le résultat sera quelque chose comme:

uid=1000(ondrej)gid=1000(ondrej)groups=4(adm),20(dialout),24(cdrom),
46(plugdev),112(lpadmin),119(admin),120(sambashare),1000(ondrej)

l'UID de mon utilisateur est donc 1000. Montez le dossier partagé SHARED_FOLDER_NAME dans le dossier MOUNTED_FOLDER avec la propriété de l'utilisateur avec l'ID utilisateur USER_ID en tant que root:

Sudo mount -t vboxsf -o uid=USER_ID SHARED_FOLDER_NAME MOUNTED_FOLDER

par exemple.

Sudo mount -t vboxsf -o uid=1000 pictures /tmp/share

La spécification du paramètre uid permet d'écrire dans le dossier partagé pour votre utilisateur. Le dossier monté MOUNTED_FOLDER (par exemple,/tmp/share) contient les fichiers du dossier partagé sur votre disque dur Mac. Il est également possible d'écrire dans le dossier partagé. Éventuellement, un dossier partagé peut être monté automatiquement au démarrage de la machine virtuelle. Ajoutez la ligne suivante au fichier/etc/fstab (en tant que racine, par exemple Sudo vim/etc/fstab):

SHARED_FOLDER_NAME /PATH/TO/MOUNTED/FOLDER vboxsf uid=1000,gid=1000 0 0

par exemple.

pictures /tmp/share vboxsf uid=1000,gid=1000 0 0

où les valeurs uid et gid peuvent être trouvées dans le résultat de la commande id (voir l'étape 2 pour un exemple détaillé). Le dossier partagé sera également disponible après un redémarrage de la machine virtuelle.

Source: http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-shared-folders/

0
Jesus