Vagrant将更改保存在虚拟机的哪个位置?

103

我刚开始接触Vagrant,对于一些细节问题还有点困惑。我已经阅读了文档,但仍然缺少一个基本概念。当我想启动一个Vagrant box时,我运行:

vagrant up

这将“基于box构建虚拟机”。我知道boxes存储在 ~/.vagrant.d 中,实际上我已经从一个Ubuntu base box中打包了自己的box。但是,当我运行vagrant up并开始向vm添加文件时,vm的虚拟硬盘存储在哪里?例如,当我运行apt-get install apache2并修改根系统时,这个过程发生在哪里?

当我在当前目录上运行du时,我看不到任何更改。我也没有在~/.vagrant.d目录中看到任何更改。但是,我可以运行vagrant halt,重启本地机器,然后再次运行vagrant up,更改将在某个地方持久保存。

vagrant up也会报告:

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

有人能告诉我虚拟机是在哪里创建的,更改是在哪里进行的吗?

2个回答

114

Vagrant会导入位于~/.vagrant.d/boxes/的基本盒子,就像你所说的那样。 这是基本盒子所在的位置。它用于从干净状态启动虚拟机。导入虚拟机时,数据文件和虚拟机状态存储的责任取决于VirtualBox本身。这是一个可配置的位置,但通常在Mac OS X和Linux上默认为~/VirtualBox\ VMS。在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.

13
在 Windows 上也是 ~/VirtualBox VMS - Jason R. Coombs
我想知道@pyfunc和其他用户是否能够帮助我在现有的虚拟机上使用vagrant,而这个虚拟机并不是最初使用vagrant up创建的。https://dev59.com/u2Uq5IYBdhLWcg3wbv5Z - Kim Stacks
@kimsia:在进行一定的准备后,可以将您的虚拟机导出为可与vagrant一起使用的box文件。如果需要,可以查看我的博客笔记:http://pyfunc.blogspot.com/2011/11/creating-base-box-from-scratch-for.html - pyfunc
@pyfunc,感谢您的回复。您的博客文章给了我一些线索。我有更多的后续问题要问。如果我复制您的评论并将其粘贴为答案,并在那里进行对话,这样可以吗?或者您更喜欢自己将其作为答案放在我的问题上?这是我的问题https://dev59.com/u2Uq5IYBdhLWcg3wbv5Z - Kim Stacks
@pyfunc,看起来你的博客文章假定了Linux作为主机操作系统。我使用的是Mac OS X作为主机操作系统。既然我已经成功地将Ubuntu设置为虚拟机的客户操作系统,那么我可以从“简化在虚拟机上工作”的部分开始吗? - Kim Stacks
显示剩余3条评论

4

我经常更改Virtualbox默认使用的虚拟机目录。通常情况下,它会位于Windows中您的个人资料文件夹中。

我将其更改为类似"D:\VHDs\VBox\"的内容,然后在那里找到了我的vagrant测试虚拟机:"test01_1347456065"。它被称为test01,所以我猜测vagrant添加数字以保持唯一性。


2
Vagrant 将 UNIX 时间戳添加到文件夹名称中。 - kynan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接