Vagrantで共有フォルダをマウントできなかった

2016年5月21日Mac,NAS,netatalk,WordPress

Vagrant上のVCCWを使って、WordPressのテスト環境に使っています。

[amazonjs asin="B00M939Y0I" locale="JP"]

MacBook Pro Retina 13 (Early 2015)本体のドライブ容量不足のため、vccw環境データとVirtualBox VMsフォルダを、NAS(FreeBSD+Netatalk)に移しました。VirtualBox VMsのの方は、本体ドライブのホームディレクトリから、シンボリックリンクを張っています。

$ cd
$ ln -s /Volumes/oichinokata-home/VirtualBox\ VMs

vagrant upで、WordPressを起動しようとしましたが、立ち上がりません。VM自体は立ち上がっているようなのですが、共有フォルダがマウントされていないようです。

原因は、次のファイルのpermissionが0600になっていなかったためです0660になっていました。

$ ls -l /Volumes/oichinokata-home/vccw/.vagrant/machines/vccw.dev/virtualbox/private_key
-rw-rw----  1 oichinokata  staff  1675  6 18  2015 /Volumes/oichinokata-home/vccw/.vagrant/machines/vccw.dev/virtualbox/private_key

この状態で起動しようとすると、次のようになっていました。

$ vagrant up
Bringing machine 'vccw.dev' up with 'virtualbox' provider...
==> vccw.dev: Clearing any previously set forwarded ports...
==> vccw.dev: Clearing any previously set network interfaces...
==> vccw.dev: Preparing network interfaces based on configuration...
    vccw.dev: Adapter 1: nat
    vccw.dev: Adapter 2: hostonly
==> vccw.dev: Forwarding ports...
    vccw.dev: 22 (guest) => 2222 (host) (adapter 1)
==> vccw.dev: Running 'pre-boot' VM customizations...
==> vccw.dev: Booting VM...
==> vccw.dev: Waiting for machine to boot. This may take a few minutes...
The private key to connect to this box via SSH has invalid permissions
set on it. The permissions of the private key should be set to 0600, otherwise SSH will
ignore the key. Vagrant tried to do this automatically for you but failed. Please set the
permissions on the following file to 0600 and then try running this command again:
/Volumes/oichinokata-home/vccw/.vagrant/machines/vccw.dev/virtualbox/private_key
Note that this error occurs after Vagrant automatically tries to
do this for you. The likely cause of this error is a lack of filesystem
permissions or even filesystem functionality. For example, if your
Vagrant data is on a USB stick, a common case is that chmod is
not supported. The key will need to be moved to a filesystem that
supports chmod.

これを修正すると、Vagrantがこの先に進み、無事に共有フォルダをマウントしてくれるようになりました

==> vccw.dev: Mounting shared folders...
vccw.dev: /vagrant => /Volumes/oichinokata-home/vccw
vccw.dev: /var/www/wordpress => /Volumes/oichinokata-home/vccw/www/wordpress
vccw.dev: /tmp/vagrant-chef/1c29077ca6e2aea8b01d1164a5fc880b/cookbooks => /Volumes/oichinokata-home/vccw/provision/cookbooks
vccw.dev: /tmp/vagrant-chef/f09ae49e32d90c27749b1867c4f1c299/cookbooks => /Volumes/oichinokata-home/vccw/provision/site-cookbooks

VCCW mounted

共有フォルダをマウントできない問題を解決するために、いろいろ検索したのですが、有効な方法を見つけられませんでした。結局、Vagrantが出すメッセージの意味を考えたら、エラーの原因を解決することが正しい道のりでした。

ファイルのパーミッションを変更するために、/usr/local/etc/afp.confの[Homes]セクションに"file perm = 0600″を追加して、netatalkを再起動しています。

;
; Netatalk 3.x configuration file
;

[Global]
    mac charset = MAC_JAPANESE
    afpstats = yes
    log file = /var/log/netatalk.log
    vol dbpath = /export/netatalk/CNID
    vol preset = my_default_values

[my_default_values]
    file perm = 0660
    directory perm = 0770

[Homes]
    basedir regex = /usr/home
    home name = $u-home
    spotlight = yes
    file perm = 0600

Posted by お市のかた