正しい権限を持つVirtual Box VMで実行されているUbuntuとディレクトリを共有する正しい方法は何ですか?


23

VirtualBoxでは、OS XホストとUbuntuゲストの間でディレクトリを共有する最良の方法は何ですか?

  • ホスト:Mac OS X 10.7.3
  • ゲスト:Ubuntu 12.04
  • ゲストには、Access = FullおよびAuto-Mount = Yesの VirtualBox設定を介してマウントされた共有ディレクトリがあります 。

このセットアップの問題を以下に示します。共有ディレクトリでは、アクセス許可をまったく変更できません(アクセス許可拒否エラーではありませんが、有効になりません)。

Ubuntu 12.04(ゲスト):

% 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(ホスト):

$ 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

ゲストをchmodしても、何も変わりません:

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

ホストでchmodを実行すると、ホストでは変更されますが、ゲストでは変更されません。

$ 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

ああ、私はそれを理解しましたが、さらに8時間(十分なポイントではない)答えを投稿することができません。解決策はsudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src、umaskがumaskユーザーの値、uidとgidがfrom id <user>srcVBox共有の名前、および/meida/sf_src目的のマウントポイントであるdoです。
jmdeldin

回答:


23

私はそれを理解しました!

再現するには:

  1. VMをシャットダウンし、VBoxの設定に共有フォルダーを追加します(永続=はい、自動マウント=いいえ)
  2. VMを起動します
  3. ターミナルから、umask && id通常のユーザーとして実行して、次のようなものを取得します。

    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

srcディレクトリをテストとしてマウントするには:

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

ログイン時に自動的にマウントするに/etc/fstabは、次を編集して追加します。

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

これはまさに私が探していたものです!最終的に、apache2の共有ユーザーグループと、マウントされたフォルダーにアクセスできるユーザーを作成しました。 serverfault.com/questions/6895/…–
thesmart

ありがとう!/sbin/mount.vboxsfぶら下がっているシンボリックリンクであることを発見するまで、私は大きな問題を抱えていました!それを消去しln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsfて問題を解決しました!ゲスト追加インストールはおそらくシンボリックリンクできませんでした。私はこれを理解するのにあまりにも多くの時間を費やしました!
csl

2
...現在、唯一の問題はvboxsfがシンボリックリンクを処理しないことです!同様に、VMから共有フォルダーにシンボリックリンクを作成することはできません!(少なくともOSXでは、VirtualBox 4.3.10
csl

この手順は、確かにそこに到達する数少ない方法の1つです。しかし私の場合、共有ディレクトリに移動してlsコマンドを発行しようとすると、ターミナルがハングします
-demongolem

4

問題-OSX共有ドライブにアクセスするvbox / ubuntuの許可の問題

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

目標は、Mac環境とUbuntu環境の間でディレクトリを共有する簡単な方法です。残念ながら、これまで見てきた例は、実際に必要なものよりも少し複雑であるように思われ、解決する必要のある実際の問題を実際に説明していません。ここでは、これらの問題の両方を処理しようとします。

ここでの環境は、OSX 10.9.5を実行しているMacで、Virtual Box 4.3.16がゲスト拡張機能がインストールされたUbuntu-14.04.1を実行しています。2014年9月のもの。

ここでの全体の問題は、MacとUbuntuのディレクトリのuidが一致する必要があることだと思います—ユーザーとグループに割り当てられるデフォルトのgidはOSXとUbuntuで異なり、問題があります。

ファイルにアクセスするには、ファイルを所有するか、ファイルを所有するグループのメンバーである必要があります。また、アクセスは実際にはグループ名ではなくグループのID番号に基づいているため、ユーザーが属する両側に共通のグループ番号を作成するだけで済みます。

それがまさに以下のソリューションが行うことです。書かれている内容の長さに誤解しないでください。実際は非常に単純です。何が起こっているのか、たくさんの例があります。

ここでは、このドキュメント内でOSXVBOXコンソール(macとvirtual-box / ubuntu)を切り替えます。どのウィンドウにいるのかを確認してください。

最後の注意:以下に示すソリューションは、OSX環境とUbuntu環境の間で共通のグループIDを確立することに基づいているため、ファイルのアクセス許可が機能します。他の、より現代的なソリューションがあるかもしれません。これは本当にシンプルで理解しやすいものであり、基本的な素朴なインストールで実行されます。

OSX:—————

これは、標準の10.9.5 Macで行われ、企業ネットワークに接続されておらず、ストックソフトウェア以外は何も実行されていないことに注意してください。これは簡単です。

Macでデフォルトのインストールを行ったとき、joe_publicはadminユーザーであり、彼のuidは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)

uid501であることに注意してください-これはOSXのデフォルトの最初のアカウントIDです-特別なものはありません

Mac側で共有したいいくつかのディレクトリを作成しました—バックアップの理由でそれらを自分のユーザーディレクトリの下に置いていないことに注意してください。

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:——————

シンプルなデフォルトの仮想ボックスとubuntuのインストール-繰り返しますが、joe_publicはubuntuのインストール時に作成されたデフォルトの管理者です。

OSXとUbuntuの間の名前空間は完全に異なることに再度注意してください。ここでは、2つの名前の間にまったく関係はありません。

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)

Virtual Boxの設定->共有フォルダーGUI を使用して、3つのマウントポイントを作成しました。

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

注:これらすべてのマウントポイントを起動するには、実際にセッションを再起動する必要がありました。

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)

これらのgidは999であることに注意してください。これはvboxsfグループです。

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

これは、Virtual Boxバージョン4.3.16によって自動的に割り当てられました。vboxのドキュメントでは、コマンドラインから手動でパスをマウントする場合、これを変更する方法が示されていますが、それを覚えている人はいます-GUIが強制するデフォルトをそのまま使用してください。

しかし、それは機能しません(この時点で予想されます-それが私たちが解決しようとしているものです)

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

この時点で、joe_publicはそのvboxsfグループのメンバーではないことに注意してください。修正するまで、これは問題になるでしょう。参考:これらは、作成時にアカウントに割り当てられるデフォルトのグループです。

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

そのため、この時点で持っていること(まだ修正するために何もしていません)

•   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

どちらの側でもユーザーjoe_publicの gidを変更したくありません。これは、既にインストールされているシステムの問題であり、他のユーザーにとっては解決できないためです。最も簡単な解決策は、mac側で一致するグループID(vboxsf)を作成し、joe_publicが両側でそのメンバーであることを確認することです。

したがって、vbox / ubuntuで、joe_publicを 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

私は自分のアカウントからログアウトし、これを行った後に再びここに戻ったと思います。

OSX:—————

次に、mac上でvboxsfグループを作成する必要があります。ここで名前が実際に違いを生むとは思いません。重要なのは999グループIDです。ホストとVMオペレーティングシステムでは、ディレクトリシステムの名前空間(およびユーザー名)が異なることに注意してください。しかし、人生を正気にするために、私たちは皆、Mac でvboxsfと呼んでいます。joe_publicが両側でユーザー名として使用される理由と同じ理由。

OSXには、Linuxのような単純なグループの追加コマンドがありません。したがって、dsclコマンドを使用して複数のステップでこれを行います。詳細については、mac osのドキュメントを参照してください。vboxsfグループを作成し、ここでそのグループにjoe_publicを追加することに注意してください。

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

したがって、この時点で、

•   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

ここでの証拠は、それが機能するかどうかです。それが次のステップです

VBOX:——————

ディレクトリにcdしてファイルをタッチします

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

ファイルが正常に作成されたことを確認します。

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

すべて正常に動作しているようです。

VBOX:——————最終検証

ここで確認しているのは、このすべてがユーザーjoe_publicvboxsfグループのメンバーであることに依存していることです。最も簡単な方法は、グループからjoe_publicを単に削除することです

グループvboxsfからユーザーjoe_publicを削除する

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

ディレクトリにアクセスできるかどうかを確認します。アクセスできません。これはグループ許可の問題であることを証明しています。

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

ユーザーをvboxsfに戻す

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

再び動作します!

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:-もう1つの問題-vboxのシンボリックリンク-------

あなたが入る場合は/メディア/ sf_shared、あなたは共有ディレクトリ内のシンボリックリンクが単にない仕事をしていることがわかります。これは、共有ドライブ上で完全なLinux開発環境をセットアップしようとする場合、非常に大きな問題です。

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

既定では、シンボリックリンクは仮想ボックス共有でサポートされていません。説明については、以下を参照してください。基本的に私が理解しているように、シンボリックリンクは、4.1.8時間枠(2011)でサポートを無効にすることでVirtual Boxで「修正」されたセキュリティホールです。ここで4.3.16を実行しています...

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

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

幸いなことに、ホストのVBoxManageコマンドを使用して、再度有効にするバックドアがあります。いつものように、ここに開いているかもしれないセキュリティホールを理解してください。私はスタンドアロンの開発マシンにいるので、これは問題ではないようです。

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

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

注:Ubuntuは私のvmの名前であり、sharedは共有ディレクトリ名です。

次のようにvm名を取得できます。

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

そして、Virtual Box GUIを介した共有フォルダー名、または

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

ここで仮想ボックスシステム全体を再起動しましたが、必要な最小要件はわかりませんでした。

とにかく、これをテストするには、vboxウィンドウに戻ります

VBOX:---------

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

エラーなし-確認する

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:----------

そして、Mac側に戻ります-それがすべて動作することを証明するためだけに

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

OSXホストとUbuntu仮想ボックスクライアントでのみこれをテストしたことに注意してください。上記の参照は、Windowsベースのホストの実行に問題がある可能性を示しているようです。

学生のための左の運動———————

上記の方法の利点は、ネットワークアクセスなしでスタンドアロンのマシンで実行できることです。しかし、これについて考えると、この名前とIDの問題は、異種コンピューティング環境間で共通の問題にならなければなりません。

その問題の解決策が利用可能な場合、他にどのような解決策が利用可能ですか?— Active Directory(Microsoft製品)などがこれを解決できる可能性があります。これらのソリューションのコレクションを取得し、さまざまな機能とトレードオフを比較することは興味深いでしょう。


3

私にとって必要なことは、次のとおりです。

sudo adduser [username] vboxsf

共有フォルダにアクセスするにはこれで十分でした。フォルダーにはvboxsfのグループがあり、ユーザーはそのグループにのみアクセスしてアクセスする必要があります。より厳密なアクセスまたはより制御可能なアクセスを設定する必要がある場合は、正しいユーザーIDを使用して手動でマウントする手順を実行する必要があります。

私にとってfstabソリューションは機能せず、マシンが正しく起動しませんでした。


3

Virtualbox設定で共有フォルダーを作成すると、Ubuntuは次回システムを起動するときに自動的にマウントします(デスクトップにアイコンが表示されます)。

ここに画像の説明を入力してください

ただし、rootアカウントを使用していない場合は、アクセスする権限がありません。ユーザーアカウントを「vboxsf」というユーザーグループに追加する必要があります。

sudo usermod -G vboxsf -a $USER

その後、ログアウトして再度ログインします。これで共有フォルダにアクセスできます。


3

VirtualBox v4.0以降、これらの権限の問題は簡単に解決できます!あなたは心配する必要はありませんmkdirmountchmodumask(に表示されるあなたの自動マウント共有フォルダにアクセスするには、など/mediasf_、あなたがする必要が一つだけありますデフォルトではプレフィックス):にユーザー名を追加しますvboxsfを通じてグループsudo usermod -a -G vboxsf [username]

便宜上、フォルダー内の共有フォルダーへのシンボリックリンクを作成することもできhomeます(例:)ln -s /media/sf_Stuff ~/Stuff

ソース:http : //www.virtualbox.org/manual/ch04.html#sf_mount_auto


シンボリックリンクについての良い点。
ショーンディチコ16年

0

これを見つけてテストし、UbuntuとXubuntuで機能しました。自動マウント機能だけが機能しませんでした

I.ゲスト追加機能のインストール

まず、ホストシステムにVirtualBoxのゲスト追加機能をインストールする必要があります。

VitualBoxのメニューで次を選択します。デバイス->ゲスト追加機能のインストール…

ホストシステムの新しいISOをマウントします。Ubuntuに新しいCDが表示されます(またはマウントされます)。ターミナルウィンドウでVBoxLinuxAdditions-x86.runインストールスクリプトをルートとして実行します(IntelベースのMacであるため)。

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

おそらく、Ubuntuを再起動するように求められます。

Guest Additionsのインストールには、画面解像度(ウィンドウサイズはシステム解像度、つまりスクロールバーなし)、簡単なマウスモード(マウスカーソルを解放するために左のコマンドボタンを押す必要がない)、および探しているものなど、多くの利点があります共有フォルダー。

II。共有フォルダーを作成

目標は共有フォルダーにアクセスすることです。これはsshdやSambaを使用するよりも簡単な方法です。

VitualBoxのメニューで次を選択します:デバイス->共有フォルダ...

  • [新しい共有フォルダを追加]ボタンをクリックします。
  • フォルダパスを選択します-Macハードドライブ上のフォルダ、たとえば/ Users / ondrej / Pictures。
  • フォルダ名を選択します-Ubuntuで(ホストシステムとして)この共有フォルダを識別する名前(写真など)。
  • この共有フォルダー定義を永続化する場合は、「永続化する」を選択します。
  • OKをクリックします。
  • [OK]をクリックして、共有フォルダーのリストを閉じます。

III。共有フォルダーをマウント

作成した共有フォルダーを、ユーザーのアクセス許可を持つフォルダーにマウントします。Ubuntuでターミナルウィンドウを開き、次の操作を行います。

共有フォルダーをマウントするフォルダーを作成します。(このためのフォルダーが既にある場合は、このステップをスキップしてください。)

mkdir DIR

例(/ tmp内)

mkdir share

ユーザーuidを取得します。

id

結果は次のようになります。

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

ユーザーのuidは1000です。共有フォルダーSHARED_FOLDER_NAMEを、ルートuid USER_IDを持つユーザーの所有権を持つフォルダーMOUNTED_FOLDERにマウントします。

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

例えば

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

uidパラメーターを指定すると、ユーザーの共有フォルダーへの書き込みが可能になります。マウントされたフォルダーMOUNTED_FOLDER(例:/ tmp / share)には、Macハードドライブの共有フォルダーのファイルが含まれています。共有フォルダへの書き込みも可能です。オプションで、仮想マシンの起動時に共有フォルダーを自動的にマウントできます。/ etc / fstabファイルに次の行を追加します(ルートとして、たとえばsudo vim / etc / fstab):

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

例えば

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

uidおよびgidの値は、idコマンドの出力で確認できます(詳細な例については、手順2を参照してください)。共有フォルダーは、仮想マシンの再起動後も使用可能になります。

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


0

ホストOSmacOS
VM(ゲスト)OSUbuntu Server 16.04.5 LTS
VirtualBox v5.2.18
ホストOSとゲストOSの両方に同じユーザーが必要です(さらにテキスト:username)。

ステージ1:VirtualBox Guest Additionsのインストール:

1.1。VirtualBox Guest Additionsを見つけ、

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

1.2。VMを起動します

1.3。右下のタスクバーのCDアイコンをクリックします

1.4。[ディスクイメージの選択...]を選択し、VBoxGuestAdditions.isoを検索します

1.5。ゲストターミナルタイプ(ホストターミナルから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:共有フォルダーのセットアップ:

2.1。VMでルールを作成します。

  • VMを停止します
  • に行く Settings > Shared Folders
  • Add new port forwarding ruleウィンドウの右上にある緑色のボタンをクリックします。
  • 共有するフォルダーを検索して選択します(例:/ path / to / shared / host_folder
  • Auto-mountMake Permanentオプションを選択します
  • VMを起動します

2.2。共有フォルダーをマウント/optするには、shared_folder_dirサブフォルダーを作成し、適切なアクセス許可を設定する必要があります。

$ 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。ユーザー名vboxsfグループに追加します

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

2.4。VMを再起動して変更を適用します。

$ sudo reboot

ステージ3:自動マウントhost_folder/opt/shared_folder_dir

3.1。VMの/etc/rc.localを変更します。

$ sudo nano /etc/rc.local

そして、すぐ上に配置します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 >>>

注: VirtualBox Guest Additionsのsleep 5開始後にマウント操作を実行するために 追加しました。journalctl -bコマンドで確認できます。

3.2。VMを再起動して変更を適用します。

$ sudo reboot

こちらもご覧ください


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.