转自:http://blog.163.com/yuan_haoliang/blog/static/81198320097178431691/

从WINDOWS 98用到现在的7,自VISTA开始就出现了个莫名的winsxs文件夹,既不知道有什么用,也不能删除,想必很多坛友有此疑问吧,那我说说啥是winsxs。

谈到winsxs,就要从微软效仿linux而引进的一种新的文件储存方式,链接式(英文叫HARDLINK,不知汉语怎么翻译)。就是说比如我有一个文件,通常我要复制它,就要用到复制粘贴,储存空间加倍。但是用HARDLINK,通俗点讲,复制的仅仅只是一个索引而已,就是说有两个文件,但是共用一个储存空间。你删除其中任意一个,另一个都可以正常使用,而且只占用一份的空间。你改变其中任意一个,另一个随之改变。你粘贴时选择覆盖,另一个内容随之覆盖。

但是注意,如果你查看文件或者文件夹的属性,他们都会占空间。但是你查看磁盘的空间,你会发现不管HARDLINK多少次,都只占用一份空间,这也就是说连操作系统都无法分清是HARDLINK,还是真实的单独文件。比如你D盘10G文件,用hardlink把这10G的文件又做了一份,你查看磁盘属性,占用空间为10G,但是全选里面所有的文件,显示为20G。所以你装完Win7查看系统盘属性和全选系统文件后看属性他们显示的空间占用是不一致的

是不是很方便?

在VISTA/7下,可以用MKLINK这个命令创建这种HARDLINK,具体用法,你可以参考系统自带的MKLINK提示。

当然现在也有一个方便的可供批量使用的HARDLINK工具,集成在了右键菜单中,我放到附件里了,感兴趣的可以自己去下载。

安装了这个工具后,你再打开windows目录,看看有什么不一样?好多的系统文件左下角多了个红色的小箭头(快捷方式是蓝色的),用以标记被hardlink过的文件。你再看看他的属性,多了一项吧?

上面写着他的另一个副本在哪里呢!天哪,原来都在winsxs文件夹里。明白了吧!系统部署的时候,其实在install.wim里只有winsxs占用空间,其他都只是hardlink(原来是否奇怪过imagex的压缩比怎么这么大?),部署时先复制winsxs,然后将所需的系统文件用hardlink的方式部署到确定路径,一来达到统一管理的目的,二来方便误操作删除了系统文件后的自动恢复。

如果你升级系统补丁,他是先将文件放进winsxs,然后再部署到相应路径。在你使用“关闭windows的功能”时,也只是移除了系统文件的副本而已,系统文件本身还在winsxs中,并没有省空间。

在回头看看winsxs文件夹,好多人删除它了发现没有问题,呵呵,那是因为hardlink删除任意一个都不影响另一个。但当你安装新硬件的时候系统想从winsxs里部署驱动程序,于是他傻了!没有了winsxs自然也就不能自动更新了,总之一切的莫名的问题都来了。

现在清楚winsxs的作用了吧?

那么hardlink能为我们所用吗?答案是肯定的

应用举例一

列举一个hardlink的日常用法。比如玩魔兽争霸的朋友清楚,切换版本最麻烦了。但是用hardlink却可以很方便的解决这一问题,一劳永逸。先安装1.20版,将文件夹命名为1.20(最好删除那些无用的垃圾文件,不删除也无所谓,就是图个眼睛干净)。在别处(最好和1.20放在同一个文件夹里)建立4个文件夹,命名为1.21,1.22,1.23,1.24。然后安装附件中的工具,右键拖动1.20里所有的文件到1.21,松开右键,选择hardlink clone

然后就出现了魔兽争霸所有文件的hardlink,其中的文件夹是真实的,其他的文件都是hardlink。然后删除game.dll  ijl15.dll  storm.dll  war3.exe   War3Patch.mpq   worldedit.exe 这7个文件(因为版本的不同就取决与这7个文件)。下载1.21补丁,把其中的这7个文件拷到1.21文件夹中,OK,1.21的做好了,如法炮制,制作1.22,1.23,1.24,然后只需要运行各个目录下的魔兽就是所需版本了。如果你记下原来磁盘的空间,你会发现只占用了一个1.20的空间,添加了其他4个版本只多了那些不同的文件的空间,嘻嘻。(还有个技巧,删除其中4个MAPS文件夹,然后依次用右键中的JUNCTION复制MAPS到刚刚删除的4个目录中,这样就是对文件夹做了LINK,而不是文件,达到了所有版本的地图都一样的效果。神奇吧!

应用举例二

很多人都在苦恼不断增长的系统盘,可随着使用,系统盘增长是不可避免的,于是动起了USERS文件夹的注意。如果能把users文件夹移到其他盘,既方便了管理,也将这个日益增大的负担移除了系统盘。注意在资源管理器中是看不到users文件夹的,他的名字被映射成了“用户”,你用cmd的dir命令就可以看到他的真实名称。

先假设系统装在C盘,然后其他的文件放在了D盘,先用WIN7的光盘引导进PE(在PE里移动系统文件不会破坏他的权限),打开CMD(这个就不一步步的说了)然后随便运行一个程序,比如regedit,选择文件-导入。这里并不是要动注册表,只是利用了他的资源管理器而已。找到那个c:/users文件夹,右键移动到D盘,确保C盘已经没有users文件夹了。然后在CMD里输入mklink c:/users d:/users /j,这就为那个d:/USERS在C:/USERS创建了一个junction link,此后虽然在C盘由一个users文件夹,但是其内容的空间确实占在了D盘,呵呵

Vista/win7 32:

http://schinagl.priv.at/nt/hardlinkshellext/HardLinkShellExt_win32.exe

Vista/win7 64:

http://schinagl.priv.at/nt/hardlinkshellext/HardLinkShellExt_X64.exe

什么是WINSXS文件夹相关推荐

  1. win10系统winsxs文件夹该如何删除

    管理员身份运行powershell: dism.exe /Online /Cleanup-Image /AnalyzeComponentStore 如果想要清理Winsxs文件夹的话,我们直接输入命令 ...

  2. WinSxS文件夹瘦身

    WinSxS文件夹瘦身2014-5-8 18:03:32来源:IT之家作者:阿象责编:阿象 评论:27 刚刚,我们分享了如何用DISM管理工具查看Win8.1 WinSxS文件夹实际大小.对于WinS ...

  3. 服务器winsxs文件夹怎么清理工具,winsxs,教您winsxs文件夹清理方法

    小伙伴们,小编今天给你带来了一个非常劲爆的消息,那就是如何清理winsxs文件夹这问题的解决方法,说到这里你们一定都特别的想要知道清理winsxs文件夹到的方法了吧.那么小编今天就把清理winsxs文 ...

  4. 压缩winsxs文件夹的正确姿势

    如果你已经用完这篇Windows系统盘无痛瘦身提到的所有方法还需要进一步释放系统盘容量,那么winsxs文件夹就是最后的希望了. 首先这个文件夹是绝对不能删不能删不能删的,然后除了MS给的补丁能通过磁 ...

  5. Win7 瘦身 winsxs文件夹

    在Vista和Windows7系统盘的Windows目录下,有一个名为winsxs的文件夹,对于整个Windows目录来说,这个文件夹就占用了其一半多的体积(近3GB)不但如此,随着系统使用时间的不断 ...

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

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

  7. 如何清理windows server 2008 R2 中winsxs文件夹

    最近发现公司的一台服务器C盘只剩5G左右的空间,经过仔细查看发现C:\windows\winsxs 目录占了20多G的容量.此文件夹是更新系统补丁产生的不能直接删除,所以只能通过cleanmgr.ex ...

  8. 压缩WinSxS文件夹

    1. 关闭其它在运行的程序,以管理员权限运行cmd,按顺序输入以下指令 2. 停止并禁用Windows Installer和Windows Module Installer服务 sc stop msi ...

  9. Win10 DISM 清理 C盘的 WinSXS 文件夹

    安装软件 Dism++ 可以帮忙清理,其实 Dism++ 只是一个辅助工具,它使用的其实是系统自带的 Dism 命令行. 管理员权限下运行cmd运行如下命令 Dism /online /Cleanup ...

最新文章

  1. [JS]格式化Date和分析格式化Date字符串的JS代码
  2. 初步了解Linux创建文件系统命令
  3. 再见,再见,5 * 60 * 1000 //五分钟,再见,再见
  4. python学习day26 封装 property 类方法 静态方法 反射
  5. nginx的请求接收流程(一)
  6. 服务器后还有一系列留后门,服务器留隐蔽后门
  7. wpf 执行mysql命令_WPF(.net 3.5)使用MySql.Data.dll进行mysql数据库操作
  8. 软件教程给MyEclipse 10增加SVN功能
  9. VMware安装linux系统镜像教程
  10. WTL for MFC Programmers, Part V - Advanced Dialog UI Classes
  11. 努力无用论?我不信。。。
  12. SDUT—Python程序设计实验78(函数)
  13. 省计算机软件评审活动网站,2012年广东省计算机教育软件评审活动.doc
  14. AVL树(动图详解)
  15. PHP使用QQ邮箱发送邮件无需SMTP服务器
  16. Android 下使用 FFmpeg 命令行工具与问题排查
  17. android intent.action time tick,Intent.ACTION_TIME_TICK的正确用法
  18. 二分类:评价指标(TPR、Recall、Precision、Accuracy、AUROC、AUPR)
  19. 扫描服务器端口 PortScan Stuff
  20. 信号与系统 学习笔记 Signals and Systems with Python

热门文章

  1. tpc ds mysql_TPC-DS 数据仓库查询性能测试
  2. 基于JAVA面相高校学生的图书共享平台计算机毕业设计源码+数据库+lw文档+系统+部署
  3. python实现共轭梯度算法
  4. 在C语言中为什么c1出现错误,我在用C语言编程时,编译后总出现Error:spawning C1.exe的错误,看不懂,是什么意思啊??快快快,谢谢!...
  5. 区块链技术与应用-BTC
  6. 手把手教你如何用PS抠白底图教程
  7. DTC品牌如何冷启动?
  8. PHP微信扫码关注登录实例
  9. 编程初学者为什么要选择python语言,哪些人群适合使用python
  10. A new deep transfer learning network based on convolutional auto-encoder for mechanical fault diagno