vagrant上で動くLinuxにマウントされたディレクトリ内でシンボリックリンクができない問題を回避する
vagrant上でLinuxを動かすとVagrantfileが存在するフォルダがLinux上で/vagrantというディレクトリとしてマウントされます。
ところがこのディレクトリ内でシンボリックリンクを作ろうとすると「プロトコルエラー」となり、シンボリックリンクが作成できません。
今回はこれを回避する方法。
ネットで調べると以下のようなコマンドを実行しろと出る。
> VBoxManage.exe setextradata 仮想マシン名 VBoxInternal2/SharedFoldersEnableSymlinksCreate/共有フォルダ名 1
うーん、いまいちvagrantっぽくないのでもうちょっと調べてみると、以下の方法でいけるみたい。
まず、Vagrantfileに以下を記述。
config.vm.provider :virtualbox do |vb| vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] end
次に管理者権限でコマンドプロンプトを実行し、以下のコマンドを実行する。
> fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
管理者権限で起動しているコマンドプロンプトからvagrantを起動する。
これでシンボリックリンクが張れるようにはなる。ただし、Windowsからリンク先の参照することができないので注意。