22
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrantで共有フォルダの内容がリアルタイム同期されない件

Last updated at Posted at 2017-09-26

どうやら素の状態では仮想マシン起動時に rsync で同期するだけのようです。

リアルタイムで同期させるには、VitualBoxの仮想マシンに Guest Addtions が必要みたいです。
Guest Addtions のインストールで少々嵌ったのでメモを残しておきます。

環境

依存パッケージをインストール

インストールの前に CentOS の kernel を更新しておきます。

# yum update kernel -y

終了したら、依存パッケージをインストールします。

# yum install kernel-devel gcc -y

終了したら、必ず仮想マシンを停止させます。
停止しなかった場合、このあと実行する Guest Addtions のインストールが失敗します。

$ vagrant halt

Guest Addtionsのディスクイメージをマウント

停止したら、VirtualBoxマネージャから対象の仮想マシンに光学ドライブを追加します(空のままでOK)。

vbox_drive.png

ドライブを追加したら、仮想マシンを起動させます。

$ vagrant up

起動したら、VirtualBoxマネージャから対象の仮想マシンのコンソールを起動し、メニューバーのDevicesInsert Guest Addtions CD Image...を実行します。

実行後に特にメッセージなどは表示されないので、そのままCentOS にディスクイメージをマウントします。

# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom

Guest Addtionsのインストール

環境変数を設定して、インストールスクリプトを実行します(環境変数の内容はバージョンにより可変)。

# export KERN_DIR=/usr/src/kernels/3.10.0-693.2.2.el7.x86_64/
# /mnt/cdrom/VBoxLinuxAdditions.run 
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.28 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.

Could not find the X.Org or XFree86 Window System, skipping.

最後の Could not find the X.Org or XFree86 Window System, skipping. は無視して構わない感じです。

共有フォルダをマウント

ひとまず、仮想マシンを停止させます。

$ vagrant halt

Vagrantfile に共有フォルダ設定を追加します。

Vagrantfile
config.vm.synced_folder "../data", "/vagrant_data"

ちなみに共有フォルダ設定が追加されていない場合でも、Vagrantfile のあるフォルダが /vagrant にマウントされるようになっています。これはデフォルトで rsync で同期されるようです。
これをリアルタイム同期に変更したい場合は、Vagrantfile に下記の設定を追加します。

Vagrantfile
config.vm.synced_folder ".", "/vagrant", type:"virtualbox"

仮想マシンを起動させます。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...

(snip)

==> default: Rsyncing folder: /foo/bar/ => /vagrant
==> default: Mounting shared folders...
    default: /vagrant_data => /foo/bar/data
    
(snip)

$ ll / | grep vagrant
drwxr-xr-x.   2 vagrant vagrant   25 Sep 26 07:11 vagrant
drwxr-xr-x.   1 vagrant vagrant  102 Sep 26 08:17 vagrant_data

このようにしてマウントされた共有フォルダは、双方向の変更がリアルタイムで同期されます。

22
26
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?