Windows 目录到底占了多少硬盘空间?WINSXS为啥这么大?

转载 2009年09月13日 07:10:00


[转]Windows 目录到底占了多少硬盘空间?WINSXS为啥这么大?
--------------转自goodbeta.cn,原始文章
WIN7一直在测试,和vista一样,win7下的winsxs文件夹庞大的吓人,有些人就装X说WIN7占空间了。其实呢?呵呵,不懂就不要装懂。
看到标题这个问题,我想绝大部分的人都会说:用资源管理器右键点击Windows目录,看看属性不就知道了吗?还要问吗?
但是,本博应该不会有那么傻的把一个低级的问题翻出来吧?既然提出了这个话题,就有我的道理!请各位耐住性子往下看,看看WINSXS为啥那么大捏~呵呵。
关于最近的新的微软安全,稳定著称的操作系统
我们知道,查看一个目录有多大的最快捷的方法就是看看资源管理器文件夹的属性,但是我今天要说的是:如果你用这个方法去看 Windows Vista / Windows 7 系统的目录,你会被你的眼睛所欺骗,因为,Microsoft 同学在 Windows Vista/ Windows 7 里面大量使用了NTFS文件系统的特性之一的:硬连接(Hard Link)来实现WinSxS机制!
用过的人都知道,要安装 Windows Vista / Windows 7系统,那么系统分区必须是NTFS文件系统。原因有以下一些:
系统文件保护所需
各种安全保护机制,如MIC所需
WinSxS 所需
……
关于最后一点的 WinSxS 所需,所以NTFS这是Windows Vista / Windows 7 系统需要的一个条件,因为只有在 NTFS 文件系统上面,才能实现硬连接机制,也才能达到优化Windows目录占用磁盘空间的目的。
关于微软系统的硬链接
硬链接是什么呢?简单的说,就是一种针对文件的特殊快捷方式,只不过这种快捷方式的实现和一般的快捷方式不一样。
硬连接是NTFS文件系统特有的属性之一,在Linux下面,也有类似的机制。硬连接适用于在同一个卷的文件级别,硬连接是不能跨卷的。
硬链接,系统属性测试
Windows Vista / Windows 7 自带了创建硬连接的命令:mklink.exe,利用这个命令,我们可以给指定的文件创建硬连接:
下面的命令将在link.txt和source.txt之间建立硬连接关系
C:/Users/hoii/Desktop>mklink /h link.txt gb.txt
为 link.txt <<===>> gb.txt 创建了硬链接
注意上面的例子:link.txt本是一个不存在的文件,但是当执行完mklink命令以后,link.txt文件也就被创建了。其实,link.txt是一个虚假的文件,它是在文件系统层面上对gb.txt文件的一个映射,而link.txt是不占硬盘空间的。
关于硬盘空间的占用问题,可以这样测试:
1、给硬盘划分一个新分区,空间只有2GB
2、在这个分区的test目录里面新建了一个1.9GB大小的文件,此时剩余空间是0.1GB
3、用mklink命令给这个1.9GB大小的文件建立了一个硬连接
4、检查这个分区的剩余空间,还是0.1GB,但是如果用资源管理器看test目录的属性,会发现有2个文件,总大小是3.8GB(整个分区才2GB,能够容纳3.8GB大小的文件吗?显然不可能了)
还是针对上述的例子,如果我们把原始的文件 gb.txt 删除以后,link.txt文件还是会继续存在的,且内容就是source.txt的文件内容。也就是说,我们删除gb.txt,实际上删除的仅仅是这种连接关系,文件本身还是没有被操作的。
关于硬连接,最后一个需要介绍的内容是:当硬连接建立以后,硬连接双方任何一个对象被修改,都会造成对应的连接对象被修改。例如上面的例子:如果修改了link.txt,那么gb.txt文件也会同步被修改,反之亦然。这一点和SHELL层面的快捷方式不同,SHELL层面的快捷方式文件LNK仅仅是一个指示关系,修改LNK文件并不影响LNK文件指向的对象,修改LNK文件指向的对象也不会影响LNK文件。
WIN新系统下的硬链接情况和使用这种技术的原因
好了,基本知识介绍完了,我们来实际看看Windows目录里面对于硬连接的使用情况吧。
经常看到有人抱怨,Windows/WinSxS目录占用了太多的空间,里面经常发现有同名的文件,而且这些同名的文件在 Windows/System32 目录下面也有存在,这是为啥呢?其实这就是硬连接导致的。
Microsoft为啥这么麻烦搞这个呢?其实这样对系统的稳定性的增加非常有好处
同样的文件,只需要维护硬连接关系,不需要进行多重的拷贝,这样可以节省硬盘空间
如果涉及文件更新,只需要先在WinSxS 目录里面下载好一个新版本,然后修改 Windows/System32 下面同名文件的硬连接关系,从旧版本的硬连接指向新版本的硬连接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度也会快不少
补丁卸载也是一样的,只需要把硬连接指向改为旧版本就可以了,没有文件替换的问题。而且建立了硬连接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改
真相大白
说了这么多,那么如何知道 Windows 目录的真实大小呢?有很多小工具可以使用,也可以在DOS下的第三方工具来测试,有兴趣的童鞋就自己测试吧,我的测试结果如下:
对于纯净的系统测试结果如下,共有文件65088个,其中,真实的文件有48022个,其他17066个文件都是硬连接文件。真实的文件占用了14981682 KB的硬盘空间,而如果你用资源管理器看的话,那么会提示说占用了 18244902 KB的硬盘空间。其实呢?, Windows/system32 目录下的大多数文件都和 WinSxS 目录建立了硬连接关系~~都多算了一次。
结束语
所以呢。不要怕winsxs那么多空间占着。其实没那么多。那不过是文件同步映射导致的结果
本文转载于: http://www.goodbeta.cn/29.htm

为Windows 7的winsxs文件夹瘦身,慎重。

刚使用Win7 系统不久,前段时间在清理系统垃圾时发现,win7系统的windows目录下的winsxs 目录占用空间非常大,想清理之,却提示无权限无法清理。随即在网上查了个究竟,原来winsxs是一...
  • heng_2679
  • heng_2679
  • 2010年11月11日 10:45
  • 202286

win8、server 2012 清除winsxs文件夹

使用系统自带的文件清理工具
  • wem520
  • wem520
  • 2014年04月11日 11:10
  • 5890

Windows 7目录到底占用了多少真实硬盘空间

看到这个问题,我想99%的人都会说:用资源管理器右键点击Windows目录,看看属性不就知道了吗?何必故弄玄虚呢!   但是,我会有那么傻的把一个大家都知道的问题重新翻出来吗?既然提出这个...
  • yhxf_sdn
  • yhxf_sdn
  • 2014年05月19日 22:43
  • 1117

在windows server 2008 R2上运行disk cleanup

通常情况下可以在开始-〉Accessories->system tools 里直接找到Disk cleanup 但是在windows server 2008 R2里, 找不到。 为了可以使...
  • a33b33C33
  • a33b33C33
  • 2015年07月24日 02:17
  • 2691

windows平台一个程序究竟占用多少内存?

http://blog.csdn.net/jaminwm/article/details/1394993
  • pizi0475
  • pizi0475
  • 2014年10月20日 15:33
  • 1404

[W001]Windows 超大文件夹winsxs 目录压缩方法(适用于 7,2008,vista)

问题描述: 由于win2008占用空间过大,磁盘空间已经满,所以要压缩 空间大户  c:\windows\winsxs.如图 目标:压缩winsxs 难点: winsxs ...
  • w497629433
  • w497629433
  • 2014年04月13日 03:06
  • 5409

C:\WINDOWS\WinSxS目录介绍,来自百度词条

C:\WINDOWS\WinSxS目录介绍,来自百度词条来源:重庆沙坪坝区网吧联盟    发表时间:2010-08-16 03:22    查看:9次      WinSxS是Windows目录下一个...
  • jiftlixu
  • jiftlixu
  • 2011年07月15日 11:34
  • 896

VC2010建立C++解决方案 工程 文件夹占用太大

使用VC2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量。...
  • zhangheyong
  • zhangheyong
  • 2011年08月04日 15:44
  • 2033

win10 windows文件夹就占用40G

我很长一段时间C盘的可用空间一直只剩几个G,我可是什么软件都不会往c盘装的,今天我终于下决心去清理一下了。 Windows文件夹查看的话有40G,但是里面能看到的大小只有16G,其余的都是系...
  • qq_31404055
  • qq_31404055
  • 2017年08月27日 14:18
  • 2697

什么是WinSxS(续 )

终于找到了微软的官方文档“Isolated Applications and Side-by-side Assemblies”,原来是推出XP时就有了的技术。以前只是大概听说,从来没有细琢磨过,原来这...
  • optman
  • optman
  • 2007年09月21日 00:27
  • 2712
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows 目录到底占了多少硬盘空间?WINSXS为啥这么大?
举报原因:
原因补充:

(最多只允许输入30个字)