谷粒商城实战笔记-vagrant避坑指南

文章目录

一,虚拟机磁盘空间不足

使用vagrant管理虚拟机的过程中遇到了一个问题,虚拟机安装完成后,很快磁盘dev/sda1就满了,40G的空间,瞬间就不够了,非常奇怪。

问题原因

输入指令vagrant up开启虚拟机的过程中,控制台有很多日志,最后一条日志是这样的:

dart 复制代码
 default: Rsyncing folder: c/Users/Lenovo/ => /vagrant

这个日志记录了vagrant启动虚拟机后完成了一项工作,把C盘下的Lenovo用户文件夹下的所有文件同步到虚拟机的根目录下的vagrant文件夹中。

这行日志表示的是 Vagrant 正在同步文件夹的过程。理解这行日志的内容:

  1. default:: 这表示是默认的 Vagrant 机器实例。如果你在一个 Vagrantfile 中配置了多个虚拟机,那么每个虚拟机都会有自己的标签。在这里,"default"是指默认的虚拟机实例。

  2. Rsyncing folder:: 这是 Vagrant 正在执行的操作,即使用 rsync 工具来同步文件夹。rsync 是一个高效的文件同步工具,常用于文件夹的增量备份和同步。

  3. c/Users/Lenovo/ => /vagrant : 这部分指出了 rsync 正在同步的具体路径。这里是从宿主机(通常是你的开发电脑)的一个文件夹 c:\Users\Lenovo 同步到虚拟机内的 /vagrant 文件夹。

这种同步通常会在 Vagrant up 或者 vagrant reload 之后自动发生,以便确保虚拟机内部的文件与宿主机上的文件保持一致。

这就是问题所在,会把C盘上的文件夹内容同步到虚拟机,而这些文件夹内容对虚拟机来说是没有用的。

解决方案

这个同步的机制,在 Vagrant 和其他虚拟化环境中是非常重要的功能,主要用于在宿主机(host machine)和虚拟机(guest machine)之间共享文件。

但我们并没有需要共享的文件,多余的复制反而导致虚拟机磁盘空间浪费。

为了避免无用的文件复制,可以新建一个空的文件夹,指定为vagrant的工作文件夹。就不会有大量的无用文件的复制,这就是解决问题的思路。

删除根目录下的vagrant文件夹及以下目录。

dart 复制代码
sudo rm -rf /vagrant

使用命令查看磁盘空间。

df -h

可以看到,失去的空间,回来了。

关闭虚拟机,找到C盘C:\Users\用户名目录下的Vagrantfile文件。

打开这个配置文件,加上如下配置。

dart 复制代码
config.vm.synced_folder "./vagrantbackup", "/vagrant", type: "rsync"

C/Users/用户名目录下新建vagrantbackup文件夹。

关闭虚拟机,cmd终端执行命令。

dart 复制代码
vagrant reload

这个命令会重新加载配置文件。

执行命令启动虚拟机。

dart 复制代码
vagrant up

执行命令验证磁盘空间使用情况。

dart 复制代码
df -h

结果如下,仅占用15%,还有大量可用空间。

二,虚拟机导致C盘空间不足

参考文献

相关推荐
半桔4 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
绵绵细雨中的乡音4 小时前
深入理解 ET 与 LT 模式及其在 Reactor 模型中的应用
服务器·网络·php
HABuo4 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7774 小时前
关于Linux服务器的协作问题
linux·运维·服务器
Gain_chance5 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
yunfuuwqi6 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
Gain_chance6 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习
代码游侠6 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
你真是饿了6 小时前
6.库制作与原理
linux·服务器
肖永威7 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos