Vagrantで起動する仮想マシンへのファイル共有を無効化したい


はじめに

この記事は以下のバージョンで設定した際の内容になります。

>vagrant version
Installed Version: 2.2.9
Latest Version: 2.2.9

VagrantをHyper-Vで立ち上げた際に、ホスト―仮想間でのSMBを用いたファイル共有するためにID/PWを入力するための応答が毎回返ってきます。

これはVagrantfileにフォルダ共有する要素を記述していなくても応答されるメッセージになります。

==> master: Preparing SMB shared folders...
    master: You will be asked for the username and password to use for the SMB
    master: folders shortly. Please use the proper username/password of your
    master: account.
    master:
    master: Username (user[@domain]): XXXXXX
    master: Password (will be hidden):

Vagrant requires administrator access to create SMB shares and
may request access to complete setup of configured shares.
==> master: Setting hostname...
==> master: Mounting SMB shared folders...
    master: D:/Vagrant => /vagrant

ID/PWの入力ミスをしても再入力が求められるわけでもなくエラーを吐いて、Vagrantとしての動作を終了する。

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t cifs -o vers=2.0,credentials=/etc/smb_creds_vgt-9638fd9441b3a216f378d2b7892d3142-6ad5fdbcbf2eaa93bd62f92333a2e6e5,uid=1000,gid=1000,mfsymlinks //XXX.XXX.XXX.XXX/vgt-9638fd9441b3a216f378d2b7892d3142-6ad5fdbcbf2eaa93bd62f92333a2e6e5 /vagrant

The error output from the last command was:

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

このエラーが吐かれても仮想マシンはファイル共有機能は設定されないまま起動するが、少々手を焼く。
たまに以下のように仮想マシン起動に用いられるruby.exeがプロセス終了せず、その後の動作が作動しない現象に直面することもしばしば。

>vagrant halt
An action 'read_state' was attempted on the machine 'master',
but another process is already executing an action on the machine.
Vagrant locks each machine for access by only one process at a time.
Please wait until the other Vagrant process finishes modifying this
machine, then try again.

If you believe this message is in error, please check the process
listing for any "ruby" or "vagrant" processes and kill them. Then
try again.

上記エラーに遭遇した場合、タスクマネージャーからruby.exeを強制的に終了させることで解決する。

毎回、ファイル共有が必要な場面も少なく、必要に応じてWinSCPなどを用いてファイルを取り出す環境に適応したいので、
このデフォルトで実装されているファイル共有を取り消すことにした。

ファイル共有の無効化設定の方法

Vagrantfileに以下の内容を追記することで無効化することできた。

config.vm.synced_folder ".", "/vagrant", disabled: true