Hyper-V启动虚拟机,消耗C盘大量磁盘空间
问题描述
经常使用Hyper-V虚拟机的朋友,可能会碰到这样的现象,当启动某些虚拟机的是否,发现C盘的空间突然减少,减少的空间与虚拟机的内存一样大少。
通过分析C盘空间的磁盘文件,发现在Hyper-V的虚拟目录机(C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines)中自动生成了一个与虚拟机内存一样大小的VMRS文件。
例如下图中,我启动了一个10GB内存的虚拟机,磁盘中自动生成了一个以VMRS为扩展名的10GB文件。如何避免这种巨型文件消耗C盘空间?

Figure 1 – C盘中的VMRS文件
解决方案
VMRS文件是Hyper-V用来存储虚拟机状态的文件。在虚拟机运行过程中,Hyper-V自动将虚拟机的状态保存在这个文件中,当物理机异常关机,再次启动后,我们任然可以获得虚拟机中当时的状态,不会出现数据丢失的情况。
这种设计对于Hyper-V服务器保存数据非常有效,但是对于我们经常在自己的笔记本或者PC上使用Hyper-V,主要用途是实验目的的用户来说,保存实时数据的紧迫性没有特别高,但是对于电脑的磁盘空间却非常重要。
下面介绍两种方案来避免这种巨型文件消耗磁盘空间的问题。
方案一:移除VMRS文件
我们可以设置Hyper-V的“自动停止操作”来移除VMRS文件。将虚拟机的选项设置为“关闭来宾操作系统”,则系统不会自动生成VMRS文件。
关闭需要修改设置的虚拟机,并参考下面的截图修改虚拟机:

Figure 2 - 修改虚拟机设置
方案二:转移VMRS的位置
在系统默认设置中,系统会自动将VMRS文件创建在这个目录中:C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
但是往往我们的C盘空间不会太大,我们可以通过导出虚拟机,再次导入虚拟机的方式,将VMRS文件转移到其他的磁盘中。导出虚拟机的方法如下图。

Figure 3 - 导出虚拟机
微软ALM MVP 张洪君 http://www.cnblogs.com/danzhang
--End--
Hyper-V启动虚拟机,消耗C盘大量磁盘空间的更多相关文章
- windows server 2008 r2 企业版 hyper v做虚拟化的相关问题处理
windows server 2008 r2 企业版 hyper v做虚拟化的相关问题处理 今天在dell r710 上用windows server 2008 r2企业版hyper v 做虚拟化,添 ...
- Hyper V NAT 网络设置 固定IP / DHCP
Hyper V 默认的Default Switch同时支持了NAT网络以及DHCP,虚拟机能够访问外网. 但使用过程中发现这个IP网段经常变化,而且Hyper V没有提供管理其NAT网络与DHCP的图 ...
- VirtualBox启动虚拟机报错0x80004005
Unable to load R3 module C:\Program Files\Oracle\VirtualBox/VBoxDD.DLL (VBoxDD): GetLastError=1790 ( ...
- 如何使用虚拟机在U盘上安装linux
如何使用虚拟机在U盘上安装linux 将linux安装到U盘的方法有很多,我觉得用虚拟机还是很方便的,直接上干货 创建虚拟机 我用的vbox,vmware也一样.配置随意一点就好,配置高安装的也快. ...
- vmware 命令行启动虚拟机
在redhat enterprise 5.3安装了vmware workstation,如何用vmware 命令行启动指定虚拟机?/usr/bin/vmware[root@node0 ~]# /usr ...
- vm启动时通过U盘安装的方法
vm启动时通过U盘安装的方法 增加一个以U盘为硬盘的方法,通过boot中设置该硬盘启动后重新ghost或者安装win10X64位. 在虚拟机中增加一个硬盘,第二部设置为物理硬盘,选在对 ...
- Nova 启动虚拟机流程解析
目录 文章目录 目录 前言 从请求说起 nova-api service 阶段 前言 Nova 启动虚拟机的东西太多,持续更新- 从请求说起 无论是通过 Dashboard 还是 CLI 启动一个虚拟 ...
- VMware Workstation 16 启动虚拟机失败(vmmon 版本问题)
问题简述 在 Manjora Linux 下,之前更新过系统,这次启动虚拟机居然就是失败了. 报错信息如下: Version mismatch with vmmon module: expecting ...
- 设置Hyper V
1.打开服务器管理器 2.添加角色和功能 3.安装类型 -> 基于角色或基于功能的安装 4.服务器选择 -> 下一步 5.服务器角色 勾选"Hyper V"
随机推荐
- linux的文件类型和权限
Linux下使用ll或ls -l查看文件的信息 (ll和ls-l的区别:ll会显示出当前目录下的隐藏文件,而ls -l不会) 文件信息分为:文件类型.权限.链接数.所属用户.所属用户组.文件大小. ...
- __init__和__new__,以及self
__new__: 每次实例化类的时候会默认先执行__new__,进行实例化类. 如果想改变默认__new__行为,可以对它进行自定义,必须有返回实例. __init__: 对实例化的类进行初始化, ...
- PIE结对项目编程
一.题目描述 构造程序并测试,分别是: 1.不能触发Fault. 2.触发Fault,但是不能触发Error. 3.触发Error,但是不能产生Failure. 二.结对对象 ...
- [leetcode]199. Binary Tree Right Side View二叉树右侧视角
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod ...
- CentOS 7安装Samba 4.6 版本步骤及错误解决方法
首先通过这次教训,让我养成一个好习惯:备份 备份 备份 不管做什么配置或者更改什么东西之前先做好备份! 还有我本身的一个坏毛病:眼高手低! 工厂有一台服务器,由以前的运维装的Samba ...
- php的反射
我们可以在PHP运行时,通过PHP的反射动态的获取类的方法.属性.参数等详细信息. 用途:插件的设计,文档的自动生成,扩充PHP语言. <?php class Person { const ...
- 使用jdbc编程实现对数据库的操作以及jdbc问题总结
1.创建数据库名为mybatis. 2. 在数据库中建立两张表,user与orders表: (1)user表: (2)orders表: 3.创建工程 * 开发环境: * eclipse mars * ...
- MVC仓储使用join
代码: var result = from mpc in this.Context.Set<Domain.S_MENU_PURVIEWCODE>() join menu in this.C ...
- MVC4升级到MVC5未能加载文件或程序集System.Web.WebPages.Razor, Version=3.0.0.0
首先,我并没有升级他,头一天还是好好的,用的都是2.0.0.0版本的,今天来打开就出现了这个错误: 未能加载文件或程序集“System.Web.WebPages.Razor, Version=3.0. ...
- Cairo编程
一.简介 cairo 是一个免费的矢量绘图软件库,它可以绘制多种输出格式.cairo 支持许多平台,包括 Linux.BSD.Microsoft® Windows® 和 OSX(BeOS 和 OS2 ...