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"
随机推荐
- 使用python发送邮件
最近需要做一个功能,统计bug的数量,然后发邮件给指定人,所有就先要了解一下使用python发送邮件 代码如下: #coding: utf-8 import smtplib from email.MI ...
- AtomEye的使用
网易博客粗略地在转载的基础上对AtomEye补充了概述: AtomEye: Atomistic configuration viewer developed by J. Li. This progra ...
- Linux配置Hadoop 常用的命令
uname -a 看主机位数 ip a 看IP地址 vi /etc/sysconfig/network 改主机的名字 vi /etc/hosts 改映射关系 vi /etc/sysconfig/net ...
- 【校招面试 之 C/C++】第13题 C++ 指针和引用的区别
1.指针和引用的定义和性质区别: (1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元:而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已.如: int ...
- python之递归锁【Rlock】
# 递归锁:就是一把锁中还有一把小锁,比如学校的大门口有一个大锁,学校里的 #每个教室也有一把小锁,以后所有的锁都用rlock就可以了,不要用lock,尤其是多层锁的时候,必须要用递归锁 import ...
- Collections.shuffle()源码分析
Java.util.Collections类下有一个静态的shuffle()方法,如下: 1)static void shuffle(List<?> list) 使用默认随机源对列表进行 ...
- JSP页面中的EL表达式介绍
1.什么是EL? Expression Language(表达式语言) 2.EL的功能 替代JSP页面中数据访问时的复杂编码. 3.EL的特点 自动转换类型 使用简单 4.EL表达式的语法 ${EL ...
- MySql中4种批量更新的方法
最近在完成MySql项目集成的情况下,需要增加批量更新的功能,根据网上的资料整理了一下,很好用,都测试过,可以直接使用. mysql 批量更新共有以下四种办法 1..replace into 批量更新 ...
- Mysql 查看表结构的命令
创建数据库create database abc; 显示数据库 show databases; 使用数据库 use 数据库名; 直接打开数据库 mysql -h localhost -u root - ...
- 设计神器 - 摹客设计系统上线了 | 晒出你的设计规范,赢iPad Pro!
在国内,设计规范也许还是个不太常用的概念,但是如果你正好有参与互联网公司的产品设计,你应该早就已经体会到设计规范的重要性了.UI设计师总是要花费大量的时间和精力向开发描述一大堆设计细节,但是产品最后呈 ...