Dans VirtualBox, quel est le meilleur moyen de partager un répertoire entre un hôte OS X et un invité Ubuntu?
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
Je l'ai compris!
Reproduire:
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)
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
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.
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.
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).
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.
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 ).
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
2.1. Créer des règles dans la VM:
Settings > Shared Folders
Add new port forwarding rule
en haut à droite de la fenêtre.Auto-mount
et Make Permanent
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
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 commandejournalctl -b
.
3.2. Redémarrez VM pour appliquer les modifications:
$ Sudo reboot
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 ...
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.