Windows上でcoreos-vagrantとsynced_folder

Windows+VirtualBoxでCoreOSをVagrantを使って起動した際、ホスト側のフォルダを共有フォルダでゲスト側にリンクさせる。

config.rb.sampleをconfig.rbに変更し

#$share_home=false

$share_home=true

にしてvagrant upをすると、

> vagrant up
Bringing machine 'core-01' up with 'virtualbox' provider...
==> core-01: Importing base box 'coreos-alpha'...
==> core-01: Matching MAC address for NAT networking...
==> core-01: Checking if box 'coreos-alpha' is up to date...
==> core-01: Setting the name of the VM: coreos-vagrant_core-01_1425462114328_13396
No synced folder implementation is available for your synced folders!
Please consult the documentation to learn why this may be the case.
You may force a synced folder implementation by specifying a "type:"
option for the synced folders. Available synced folder implementations
are listed below.

docker, nfs, rsync, smb, virtualbox

となってしまい、CoreOSが起動しない。そこで、Windows上でNFSが扱えるvagrant-winnfsdプラグインをインストールする。

> vagrant plugin install vagrant-winnfsd
> vagrant up
Bringing machine 'core-01' up with 'virtualbox' provider...
==> core-01: Importing base box 'coreos-alpha'...
==> core-01: Matching MAC address for NAT networking...
==> core-01: Checking if box 'coreos-alpha' is up to date...
==> core-01: Setting the name of the VM: coreos-vagrant_core-01_1425462958797_25829
==> core-01: Clearing any previously set network interfaces...
==> core-01: Preparing network interfaces based on configuration...
    core-01: Adapter 1: nat
    core-01: Adapter 2: hostonly
==> core-01: Forwarding ports...
    core-01: 22 => 2222 (adapter 1)
==> core-01: Running 'pre-boot' VM customizations...
==> core-01: Booting VM...
==> core-01: Waiting for machine to boot. This may take a few minutes...
    core-01: SSH address: 127.0.0.1:2222
    core-01: SSH username: core
    core-01: SSH auth method: private key
    core-01: Warning: Connection timeout. Retrying...
==> core-01: Machine booted and ready!
==> core-01: Setting hostname...
==> core-01: Configuring and enabling network interfaces...
==> core-01: Exporting NFS shared folders...
==> core-01: Preparing to edit nfs mounting file.
[NFS] Status: halted
[NFS] Start: started
==> core-01: Mounting NFS shared folders...

CoreOSにログインすると

core@core-01 ~ $ ls
C:
core@core-01 ~ $ mount
:
:
172.17.8.1:/C/Users/XXXXX on /home/core/C:/Users/XXXXX type nfs (rw,relatime,vers=3,rsize=32768,wsize=4096,namlen=255,hard,nolock,proto=udp,timeo=11,retrans=3,sec=sys,mountaddr=172.17.8.1,mountvers=3,mountport=1058,mountproto=udp,local_lock=all,addr=172.17.8.1)

となり、ホームディレクトリ同士がリンクされています。どちらかでファイルを変更するともう片方に反映されます。あとは必要に応じて、config.rbの$shared_foldersに設定を追加していきます。
ただし、ゲストOS上で、シンボリックリンクやソケットファイルなどの特殊なファイルを作成しようとするとエラーになります。

core@core-01 ~/C:/Users/XXXXX $ touch aaa
core@core-01 ~/C:/Users/XXXXX $ ln -s aaa bbb
ln: failed to create symbolic link 'bbb': Input/output error

検証環境

VirtualBox
4.3.22
ホストOS
Windows 8.1 64ビット版
Vagrant
1.7.2
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中