现象: 
用了几天vagrant后,发现docker 里的 Mysql5.7 服务无法启动,用docker ps 命令,发现mysql一直在反复重启, 查看mysql log 发现说磁盘空间不够, 导致mysql无法启动。
觉得很奇怪, docker里只安装了redis和mysql两个image, 也没用几天mysql, 怎么会40G的空间都满了?
 
于是一通百度查找, 都说是mysql日志过多,但是一个一个目录的用df -sh * 和 df -h 查看, 发现日志log并不大。 进一步查找发现是/var/lib/docker/overlay2下面的子目录里有文件过大,于是
开始陷入了坑里, 一直怀疑是docker的问题, 但是网上的办法都说是log文件占用空间,使用 cat /dev/null > *-json.log 删除, 结果发现毫无卵用。
实在无法解决,忍痛将docker的images全部删掉看看, 结果发现还是没用。。。
 
 
转机:
经过几个小时的死磕,终于发现了一个文件夹: /vagrant/AppData, 这个文件夹居然有32G? 再一细看不得了, 这个/vagrant下除了AppData文件夹,怎么还有一堆文件感觉跟我的PC电脑
里的 user文件夹里的东西一模一样? 比如有 download ,  有document, 有music , 还有OneDrive, 虚拟机上怎么可能有微软的OneDrive? 于是突然灵光一现,难道vagrant把我电脑里的
文件都复制到虚拟机里了? 顺着这个思路百度,果然柳暗花明又一村,彻底找到了问题所在,那就是:
 
vagrant提供了将本机目录挂载到虚拟机目录下的功能,默认是将vagrant配置文件所在目录挂载到虚拟机/vagrant目录下。
 
即: c:\user\nioth(这里是我电脑的用户名,你可以改成你的)\Vagrantfile  所在的目录  与 虚拟机 /vagrant目录进行同步, 
 
因此, 会将本机大量文件复制到虚拟机, 导致虚拟机空间爆满。 并不似docker的问题啊, 可怜我把docker里的image都删掉了,回头又得重装mysql,配置一堆数据库,郁闷啊~~~
 
 
 
解决办法:
 
一开始找到的是 C:\Users\nioth\Vagrantfile 文件里有一行配置(默认是注释掉的):
  #config.vm.synced_folder ".", "/vagrant_data"
 
于是修改这个文件,改成下面(MyVagrantSyncFolder是自己新建得文件夹,空的,放在C:\Users\nioth\下面):
 
  config.vm.synced_folder "./MyVagrantSyncFolder", "/vagrant_data"
 
再用vagrant reload 重启, 发现没有用,心里一紧,不会吧, 再用Everything软件搜一遍,发现另外还有一个地方有一个vagrant配置文件:
 
C:\Users\nioth\.vagrant.d\boxes\centos-VAGRANTSLASH-7\2004.01\virtualbox\Vagrantfile
 
 打开发现有如下配置:
 
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 "./MyVagrantSyncFolder", "/vagrant", type: "rsync"
end
 
 
 
(原来那个文件里的配置还给它注释掉,恢复原样。)
 
保存文件,再用vagrant reload, 大功告成!
控制台显示:
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/c/Users/nioth/MyVagrantSyncFolder/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
 
现在是 ./MyVagrantSyncFolder 文件夹与 虚拟机中的/vagrant文件夹进行映射, 这样就不会将大量主机文件复制到虚拟机了。
 
 
 
 
 
 
 

使用Vagrant 后发现虚拟机磁盘空间爆满的血泪填坑记的更多相关文章

  1. Linux磁盘空间爆满,MySQL无法启动

    OS: Cent OS 6.3 DB: 5.5.14 看到一个帖子,在服务器上安装了oracle和mysql数据库,mysql数据库忘记开启innodb_file_per_table,导致插入测试数据 ...

  2. VMware:虚拟机磁盘空间不足怎么办

    前言: 虚拟机里一般我们用的虚拟磁盘,在电脑上是一个或多个文件,随着软件和数据的增多,有时也会提示磁盘空间不足. 那么,虚拟机磁盘空间不足如何处理呢?   一:调整磁盘分区大小; 若只是提示相应磁盘分 ...

  3. VMware vSphere Client下增加虚拟机磁盘空间的方法

    随着系统运维时间的增长,磁盘就日益的损耗,如果遇到虚拟机报磁盘空间不足怎么办?还好,我们可以通过磁盘阵列增加磁盘空间,然后扩容到虚拟机中去. 对于linux虚拟机磁盘扩容的方案有两种,一种就是原有的实 ...

  4. VirtualBox 虚拟机磁盘空间不够用,增大空间方法(这里以MAC为例)

    开始在Virtualbox 上,安装MAC系统的时候只分配了20G的空间,随着Xcode 开发软件安装的东西多了,比如:IOS 的Simulator 的各种版本,4.3,5.0,6.0 加起来要到少要 ...

  5. linux 删除文件后 df 查看磁盘空间并没有释放

    1.错误现象 Linux 磁盘空间总是报警,查到到大文件,删除之后,df看到磁盘空间并没有释放. 用du -sh ./* | sort -nr (查看当前目录下文件的大小)通过查找了下发现文件被mys ...

  6. Jenkins服务器磁盘空间爆满问题解决

    现象: 从根目录开始,使用du -h -x --max-depth=1  查看哪个目录占用过高,打算对于过高目录中的内容适当删减腾出一些空间 通过追踪查询,发现是jenkins的构建纪录未清理,而且最 ...

  7. Linux 误删catlina.out导致磁盘空间爆满,无法查询到大文件解决办法

    大概是前俩天吧,发现公司的网站不定时的出现接口调不通的情况,便让手下小弟去服务器上查看一下,小弟告我磁盘空间满了,于是我让他处理一下.结果没想到他直接把 catlina.out 给干掉了.后果可想而知 ...

  8. [bug] VMvare 虚拟机磁盘空间耗尽

    问题 VMvare虚拟机文件默认创建在C盘,装大程序的时,空间用尽就会报错,此时补救的办法是把虚拟机文件复制到空间足够的盘,再重新打开 最好一开始就选再有足够空间的盘里创建虚拟机 参考 https:/ ...

  9. kvm虚拟机扩展磁盘空间

    kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致.原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用. raw磁盘格式扩展思路如下 (1) 新添加一块raw格式的磁盘加入到 ...

随机推荐

  1. apicloud版人人商城app打包教程

    一.APP环境搭建和配置编译1.登录APICLOUD后台新建应用 步骤一 .注册账号注册apicloud 账号并登录APICLOUD控制台 注册apicloud 账号:https://www.apic ...

  2. Python入门看这些,最详细学习书籍推荐

    随着人工智能以及脚本开发火热,Python已经被推上一个非常火热的巅峰! 那么,想要学习Python却又不知道从哪里开始的朋友,看这里呀~ Python在整个编程语言来说,是比较容易上手,而且“见效” ...

  3. 一张图理清 Python3 所有知识点

    如果你前几天一直有关注 GitHub Trending,那你应该会留意到「Python3 in one pic」这个开源项目. 很多人学习python,不知道从何学起.很多人学习python,掌握了基 ...

  4. ECS7天实践进阶训练营Day5:使用ECS自建云端下载服务器

    一.概述 CCAA是服务器离线下载解决方案包,其组件中包含了Aria2提供了离线下载功能,能支持HTTP/HTTPS/FTP/BT/磁力链下载等常用离线下载模式及断点续传等功能.ccaa_web支撑于 ...

  5. Take C# 8.0 for a spin

    本文章为机器翻译.https://blogs.msdn.microsoft.com/dotnet/2018/12/05/take-c-8-0-for-a-spin/ 以C # 8兜风 我们昨天宣布Vi ...

  6. CSDN新版Markdown编辑器(Alpha 2.0版)

    Markdown编辑器 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建 ...

  7. 详解Java线程池的ctl(线程池控制状态)【源码分析】

    0.综述 ctl 是线程池源码中常常用到的一个变量. 它的主要作用是记录线程池的生命周期状态和当前工作的线程数. 作者通过巧妙的设计,将一个整型变量按二进制位分成两部分,分别表示两个信息. 1.声明与 ...

  8. 听说同学你搞不懂Java的LinkedHashMap,可笑

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个有颜值却假装靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题 ...

  9. JS的赋值与深浅拷贝实例

    赋值 基本类型: 传值,在栈内存中的数据发生数据变化的时候,系统会自动为新的变量分配一个新的之值在栈内存中,两个变量相互独立,互不影响的 引用类型: 传址,只改变指针的指向,指向同一个对象,两个变量相 ...

  10. gtk.Builder.AddFromFile SIGSEGV.

    可能是由于GTK没有初始化的缘故,在程序开头加上gtk.Init(nil)进行初始化 或者参考我这篇博客就不会出错了