Где Vagrant сохраняет изменения в виртуальной машине?

103

Я только начинаю с Vagrant, и у меня возникли небольшие проблемы с пониманием некоторых деталей. Я прочитал документы, но все еще не понимаю базовой концепции. Когда я хочу запустить Vagrant box, я запускаю:

vagrant up

Это «построит виртуальную машину на основе коробки». Я понимаю, что коробки хранятся в ~ / .vagrant.d, и на самом деле я собрал свой собственный ящик из базовой коробки Ubuntu. Однако, когда я запускаю vagrant и начинаю добавлять файлы в виртуальную машину, где хранится виртуальный жесткий диск для виртуальной машины? Например, когда я запускаю apt-get install apache2 и изменяется корневая система, где это изменяется?

Когда я делаю du в своем текущем каталоге, я не вижу никаких изменений. Я тоже не вижу изменений в каталоге ~ / .vagrant.d. Однако я могу сделать бродячую остановку, перезагрузить локальную машину, а затем снова запустить бродягу, и изменения где-то сохранятся.

бродяга также сообщает

[default] VM already created. Booting if its not already running...

Может кто подскажет, где создается виртуальная машина и где вносятся изменения?

Дерево
источник

Ответы:

113

Vagrant импортирует базовый блок, который ~/.vagrant.d/boxes/, как вы сказали, находится в. Здесь хранятся базовые ящики. Он использует его для запуска виртуальной машины из чистого состояния. При импорте виртуальной машины ответственность за то, где хранить файлы данных и состояние виртуальной машины, лежит на самом VirtualBox. Это настраиваемое расположение, но обычно оно используется по умолчанию ~/VirtualBox\ VMSдля Mac OS X и Linux. В Windows ящики хранятся в%userprofile%\.vagrant.d\boxes

Легко найти место, где они создаются, независимо от того, какую платформу вы используете.

1. Start VirtualBox. 
2. Go to the VM that shows as running instance. 
3. Check out the Settings ->Storage. 
4. You can find the path to location where VMs are created and stored in your file system.
pyfunc
источник
Спасибо за ваш ответ. Вы хорошо объяснили, как это работает.
Tree
12
Это тоже ~/VirtualBox VMSв Windows.
Джейсон Р. Кумбс
Мне было интересно, могут ли @pyfunc и другие пользователи здесь помочь мне с использованием vagrant на существующей виртуальной машине, которая изначально не была создана с использованием vagrant up. stackoverflow.com/q/14503932/80353
Ким Стэкс
@kimsia: После определенной подготовки виртуальную машину можно экспортировать в виде коробочного файла, который можно использовать с бродягой. См. Мою заметку в блоге, если это может помочь: pyfunc.blogspot.com/2011/11/…
pyfunc
@pyfunc, спасибо за ответ. Ваш блог дал мне несколько подсказок. У меня есть еще вопросы, которые нужно задать. Было бы хорошо, если бы я скопировал ваш комментарий и вставил его в качестве ответа на свой вопрос и перешел к разговору с ним? Или вы предпочитаете сами ответить на мой вопрос? Это мой вопрос stackoverflow.com/q/14503932/80353
Kim Stacks
4

Я всегда меняю каталог, который Virtualbox использует по умолчанию для виртуальных машин. Обычно он находится в папке вашего профиля в Windows.

Я меняю его на что-то вроде "D: \ VHDs \ VBox \" и там я нашел свой vagrant test vm: "test01_1347456065". Он назывался test01, поэтому я думаю, что бродяга добавляет числа, чтобы сохранить уникальность.

Кристофер Торьюссен
источник
2
Vagrant добавляет метку времени UNIX к имени папки.
kynan 04