Virtualbox

Virtualboxで共有フォルダー
Posted on 2013年5月16日 by Qsaku

最近仮想PCをやり始めたお方に質問されたことを
備忘録として書いておきます。

ホストとゲストが共有するフォルダを作成。
ホストOS→Windows7・ゲストOS→Ubuntu12.04LTS。

共有はいくつかの方法でできますが、Virtualboxの
設定画面にもある共有フォルダーです。
* Guest Additionsをインストール済みとします。

ホストOSのWindows7にフォルダーを作成。
今回はライブラリのドキュメント下に【VirtualShare】という
フォルダーを作成。(任意名)

設定の共有フォルダー設定画面の右にある【+】ボタンを押下。
フォルダーのパスで【その他】から作成したフォルダーを指定。
普通はそれでゲストOS側から覗きに行ける雰囲気なんだけど、
そぉ甘くはないんだな、これが。。。

次にゲストOSのUbuntu側にもフォルダーを作成。
今回は同名の【VirtualShare】をユーザー領域の下に作成。

$ mkdir -p /home/user/VirtualShare
$ chown 766 /home/user/VirtualShare

これにホストOSで作成したフォルダをマウント。

$ sudo mount -t vboxsf VirtualShare /home/user/VirtualShare

これではエラーが出るので

$ sudo mount.vboxsf VirtualShare /home/user/VirtualShare

でなきゃだめという情報も散見できるが、拙生の場合は両方とも
エラーは出ずに、どのマシーンにもちゃんとマウント。

両者でフォルダーやドキュメントを保存し、お互いに同期されることを確認。
うまくいきことが分かったら、起動するたびにいちいちコマンドを
打たなくてもよいように、rc.localにオマジナイを記述。

$ sudo gedit /etc/rc.local

mount -t vboxsf VirtualShare /home/user/VirtualShare
exit 0 より前に追記

コツ

1 UbuntuはWindowsのように拡張子に拘りません。
  たとえばゲストOSのUbuntu側でテキストを保存するときは、  
  別名で保存するときにxxx.txtのように、Windowsが認識できる
  拡張子を付けてやればよいでしょう。
  逆にWindows側でテキストファイルであるqqq.txtを保存しても
  Ubuntuはテキストと認識しないので、Wクリックで出現するダイアログの
  表示するを選択するか、右クリックメニューから開くアプリを選択します。

2 Ubuntuの共有フォルダーが開いていると、Windows側のフォルダーで
  ファイルを保存したり削除しても、表示に反映されません。
  そんな時は一度他のフォルダーに移動して戻ってみてください。 
  実はちゃんと同期していて、こんどは表示されます。
  ( Windows側のフォルダはすぐに反映します。)

2は言い忘れちゃいました。^^;;
ホストOSがUbuntuでゲストがWindowsはいらないのかな?(笑)

ちなみにWindows7のVirtualbox上で稼働させるXPは結構サクサクです。

Virtualbox共有フォルダー 続き
Posted on 2013年5月17日 by Qsaku

お教えした方から、ホストOSのWindowsで
保存したものはゲストOSのUbuntu側に反映するが、
Ubuntuの共有フォルダーには保存や新規作成ができない
とのお叱りが・・・

聞くところによると、マウントするとユーザーが
rootで555になっているとのことです。
読みと実行のみで書き込めないのは当然ですね。

Ubuntuで見えているフォルダーはWindows側の
パーミッションに左右されるので、面倒なので
Ubuntu側で強制的にユーザー所有および777に
してしまう方法をお教えしました。

やり方はmountコマンドにオプションを付けます。
オプションにはuid等が必要なので、あらかじめ調べておきます。

$ id

uid=1000(user) gid=1000(user)・・・だとしたら

# mount -t vboxsf -o uid=1000,gid=1000,dmode=0777 VirtualShare /home/user/VirtualShare (実際には1行)

以前はdir_modeだったように記憶していますが、 util-linux 2.20.1の
mountは valid optionsにdmask = umask of directories 
のように記載されています。

llまたはls-lコマンドでみると、
drwxrwxrwx  user:user になっているはずです。
これで書き込み権限が得られたので、どちらからも保存可能になります。
0777のゼヒは自身のセキュリティポリシーで決定してください。

前回書いたのはあくまで拙生の環境においてのお話です。
環境によっては異なる結果が出ることは往々にしてあることなので
お叱りは勘弁してくださいませ。(笑

HOME