谷粒商城项目实现过程,P6: vagrant搭建虚拟机,安装完Oracle VM VirtualBox和vagrant,创建虚拟机之后不久,后续使用vagrant up启动虚拟机出现“No space left on devic”的问题,以下附安装过程,和解决方法。
- 初始化一个虚拟机,相当于先指定一个安装地址。
vagrant init centos/7
- 第一次使用vagrant up指令启动将从vagrant官方镜像仓库中自动下载、创建一个cenos/7虚拟机,,这是一个非常漫长的过程,大概需要十年。
#启动虚拟机,第一次时会创建,后续无需创建会直接启动。
vagrant up
- 安装完成后的界面:
- 注意看最后一行,
==> default: Rsyncing folder: /cygdrive/c/Users/iWooPomjay/ => /vagrant
这意味着,虚拟机将会在接下来的时间里,把C:\Users\iWooPomjay目录下的所有文件(iWooPomjay是我的用户名,类推找自己的,如下图)全部复制到虚拟机中的 /vagrant目录下中,后续会出现“No space left on devic”的问题。
- 如果你出现了内存爆满的问题,先
vagrant ssh
进入到虚拟机中df -h
查看磁盘状况,会看到以下情况,此时不要慌,有解决办法。 - 进入vagrant文件夹内,然后查看该文件夹内的文件。
vagrant ssh
cd /
ls
cd vagrant
ls
7. 你会发现,这里的文件和你的电脑中当前用户文件夹下的东西长得一样。
8. 把他们一一删除,删删删删删…或者直接删除vagrant文件夹
sudo rm -rf /vagrant
9. 彻底解决这个问题就需要修改vagrant所创建的这个虚拟机的配置文件:
#步骤1. 在C:\Users\iWooPomjay目录下创建一个空文件夹Empty;
#步骤2. 打开虚拟机的配置文件,我的路径为:
C:\Users\iWooPomjay\.vagrant.d\boxes\centos-VAGRANTSLASH-7\2004.01\virtualbox\Vagrantfile
#步骤3. 修改配置文件内容:
#修改前:
Vagrant.configure("2") do |config|
config.vm.base_mac = "5254004d77d3"
config.vm.synced_folder ".", "/vagrant", type: "rsync"
end
#修改后:
Vagrant.configure("2") do |config|
config.vm.base_mac = "5254004d77d3"
config.vm.synced_folder "./Empty", "/vagrant", type: "rsync"
end
解释:原本的"."
指的是该虚拟机的当前安装目录,改之后"./Empty"
是虚拟机的当前安装目录下的一个空文件夹。
#步骤4:重启虚拟机:
vagrant reload
可以发现,原本的最后一行同步内容发生变化,,查看vagrant目录下也不会自动增加东西了:
#修改前:
==> default: Rsyncing folder: /cygdrive/c/Users/iWooPomjay/ => /vagrant
#修改后:
==> default: Rsyncing folder: /cygdrive/c/Users/iWooPomjay/Empty/ => /vagrant
当然了,这里建议第一次vagtant up创建虚拟机后就直接先修改配置文件