和vista一样,Windows7下的winsxs文件夹庞大的吓人。有些人就手痒了。
winsxs就是Windows Side-by-Side。这里保存Windows重要的链接库。包括C++运行库等。Win7的winsxs甚至包含了ntkrnlpa等至关重要的文件。如果你搜索过一些系统文件的话。会发现winsxs和SYSTEM32下都存在同一个一模一样的文件。
单纯把winsxs理解为windows的缓存是不对的。这里要引入Win7、Vista才产生的硬链接机制
硬链接(hard link, 也称链接)就是一个文件的一个或多个文件名。再说白点,所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。一个文件有几个文件名(用ln命令实现多个文件名),我们就说该文件的链接数为几。由定义可知,此链接数可以是1, 这表明该文件只有一个文件名。总之,硬链接就是让多个不在或者同在一个目录下的文件,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。
简单来说,硬链接是基于文件系统级别的快捷方式。Linux有Windows则在VISTA后引入
winsxs正是采用了这样的技术。将SYSTEM32下的文件与winsxs下的文件关联起来。不止是winsxs。C盘整个目录都大量采用了硬链接技术
这样做的好处显而易见:
1.节省硬盘空间。同样的文件,只需要维护硬连接关系,不需要进行多重的拷贝,这样可以节省硬盘空间。
2.重命名文件。重命名文件并不需要打开该文件,只需改动某个目录项的内容即可。
3.删除文件。删除文件只需将相应的目录项删除,该文件的链接数减1,如果删除目录项后该文件的链接数为零,这时系统才把真正的文件从磁盘上删除。
4.文件更新。如果涉及文件更新,只需要先在WinSxS目录里面下载好一个新版本,然后修改Windows\System32下面同名文件的硬连接关系,从旧版本的硬连接指向新版本的硬连接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度也会快不少。
5.卸载补丁。遇到需要补丁卸载的情况,只需要把硬连接指向改为旧版本就可以了,没有文件替换的问题。而且建立了硬连接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改。
这样说来,删除winsxs也就变得没有了意义。事实上,删除winsxs的后果非常可怕。会导致系统无法启动。并且是一种非常难以解决的错误。到那时大概只能有重装这一条道路。
附上小工具–搜索windows所有硬链接并显示windows实际占用空间的小工具
那么,清理winsxs可不可行呢?
网上已经有了牛人写了批处理,对winsxs的冗余过期文件进行清理。说得条条是道
本工具的设计思想就是删除所有的旧文件。所有满足如下全部条件的目录都会被移动到C:\Windows\winsxs_del目录中。
·存在比自身更新的版本
·本身不是最新版本
但在实际使用过程中[我很不辛的做了小白鼠]。发现清理后硬盘空间几乎没少[硬链接作怪]。并且自动更新所依赖的文件被清理掉了[查找日志给弄了回来]。据说还可能导致USB设备无法自动安装驱动。这都已经杯具到可以重装了。
大概除了等待SP2补丁包出来,就只有重装或者凑合着用这两个办法了。
评论
:cold 感觉不错啊,
额,我还没用上win7~ :zida
moper XP下删了也是一样的后果。。。。
这文件还不讨厌,,喵的 iTunes的备份才是烦人!
系统盘里除了系统无任何东西,不过一般也不动!
XP没有hard link为什么也不能删呢?
hx1997 XP的winsxs存有很重要的运行库。。。等东西…
优子=小白鼠
我也看到了,,幸好没动手!
xp也有硬连接的工具fsutil,但链接不能跨分区,win7不知咋样,估计一样囧
系统越来越庞大,有些运用,越来越麻烦;也许开始思考是好的。 :yun
看来,这个东西应该可以解答不少人关于winsxs的疑问呢,另外这个空间似乎做好以后就再也没有调试了么?
夏娜 目前是只能放着了