LoginSignup
0
0

More than 3 years have passed since last update.

Vagrantのゲストマシンを再起動すると共有フォルダが同期されない

Last updated at Posted at 2019-07-24

記事の概要

Vagrantで立ち上げたゲストマシンをrebootあるいはshutdown -r nowで再起動すると、ホストマシンとゲストマシンの共有フォルダが同期されません。

vagrant reloadを使って再起動すると、同期されます。

Vagrantで立ち上げたゲストマシンを再起動する時は、vagrant reloadを用いましょう。ゲストマシンにゲストマシンの再起動をさせてはいけません。ホストマシンにゲストマシンを再起動させる必要があるのです。

再起動までのプロセスを自動化する方法については、『Vagrantのゲストマシンを自動で再起動する』をご覧下さい。

記事の詳細

実行環境

Windows 10 Home
Vagrant 2.2.4
ubuntu/bionic64 Official Ubuntu 18.04 LTS(Bionic Beaver)Daily Build

使用したVagrantfile

Vagrant.configure("2") do |config|
  # 利用するVagrantBox
  config.vm.box = "ubuntu/bionic64"
end

ゲストマシンを再起動する前の共有フォルダ

vagrant upでゲストマシンを起動します。

下記コマンドで、ゲストマシンの共有フォルダ/vagrantを確認します。
ホストマシンと同じファイルが存在するのが確認できます。
すなわち、共有フォルダが正しく同期されていることを示しています。

vagrant ssh
cd /vagrant
ls -a

rebootやshutdown -r nowで再起動した後の共有フォルダ

下記コマンドでゲストマシンを再起動します。

sudo reboot

先程と同じコマンドで、ゲストマシンの共有フォルダ/vagrantを確認します。
ゲストマシンの共有フォルダが空のフォルダになっています。
一方、ホストマシンの共有フォルダには再起動前と同じファイルが存在します。
すなわち、共有フォルダが同期されていないことを示しています。

下記のコマンドshutdown -r nowで再起動しても、rebootと同様の結果です。
すなわち、共有フォルダは同期されません。

sudo shutdown -r now

vagrant reloadで再起動した後の共有フォルダ

下記コマンドでゲストマシンを再起動します。

vagrant reload

同様に共有フォルダを確認します。
ゲストマシンの共有フォルダには、ホストマシンと同一のファイルが存在します。
すなわち、共有フォルダが正常に同期されていることを示しています。

したがって、Vagrantのゲストマシンを再起動する時はvagrant reloadを使用しましょう。

補足事項

Vagrantfileで共有フォルダを明示する場合

下記Vagrantfileのように、共有フォルダを明示的に定義しても、結果は変わりません。

Vagrant.configure("2") do |config|
  # 利用するVagrantBox
  config.vm.box = "ubuntu/bionic64"

  # 共有フォルダ
  config.vm.synced_folder "", "/vagrant_data"
end

rebootあるいはshutdown -r nowで再起動すれば同期されません。
vagrant reloadで再起動すれば同期されます。

ポートフォワード

下記Vagrantfileのように、ポートフォワードされたゲストマシンについて。

Vagrant.configure("2") do |config|
  # 利用するVagrantBox
  config.vm.box = "ubuntu/bionic64"

  # ポートフォワード
  config.vm.network "forwarded_port", guest: 80, host: 8080

  # プロビジョニング
  config.vm.provision "shell", inline: <<-SHELL
    apt update
    apt upgrade -y
    apt install -y apache2
  SHELL
end

rebootshutdown -r nowvagrant reloadのどのコマンドで再起動しても、http://127.0.0.1:8080/でapacheのデフォルトページを見ることが出来ます。

すなわち、ポートフォワードは再起動の方法の影響を受けなさそうです。

参考にした記事

0
0
0

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
0
0