yongheneng yongheneng
关注数: 4 粉丝数: 0 发帖数: 120 关注贴吧数: 1
windows 7 中winsxs与HARDLINK的关系 在Windows家族发展史,各种各样的新技术一直层出不穷,自从winxp开始,微软就采用了一种文件存储新技术。 这种新技术其实最早是在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://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschinagl.priv.at%2Fnt%2Fhardlinkshellext%2FHardLinkShellExt_win32.exe&urlrefer=35e04574d548f5918198a288ed686460 Vista/win7 64: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschinagl.priv.at%2Fnt%2Fhardlinkshellext%2FHardLinkShellExt_X64.exe&urlrefer=2bbd3a389a4de5074f233b21d6bed92e
windows 7 中winsxs与HARDLINK的关系 看完你就对所谓的系统优化精简彻底失望 在Windows家族发展史,各种各样的新技术一直层出不穷,自从winxp开始,微软就采用了一种文件存储新技术。 这种新技术其实最早是在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://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschinagl.priv.at%2Fnt%2Fhardlinkshellext%2FHardLinkShellExt_win32.exe&urlrefer=35e04574d548f5918198a288ed686460 Vista/win7 64: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fschinagl.priv.at%2Fnt%2Fhardlinkshellext%2FHardLinkShellExt_X64.exe&urlrefer=2bbd3a389a4de5074f233b21d6bed92e
win7 无法运行魔兽争霸-冰封王座,导入注册表 问题出在直接拷贝的魔兽争霸,安装的不会发生无法运行的情况. 请最好自行将里面所有的路径改为自己冰封王座真实的存放目录 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Blizzard Entertainment] [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III] "InstallPath"="F:\\游戏\\Warcraft III" "Program"="F:\\游戏\\Warcraft III\\Warcraft III.exe" "War3CD"="K:\\" "InstallPathX"="F:\\游戏\\Warcraft III" "ProgramX"="F:\\游戏\\Warcraft III\\Frozen Throne.exe" "War3XCD"="K:\\" [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\DelOpt0] "Path0"="F:\\游戏\\Warcraft III\\save" "File0"="w3z" "Path1"="F:\\游戏\\Warcraft III\\save" "File1"="w3v" "Path2"="F:\\游戏\\Warcraft III\\save" "File2"="w3p" [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\DelOpt1] "Path0"="F:\\游戏\\Warcraft III\\replay" "File0"="w3g" [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\DelOpt2] "Path0"="F:\\游戏\\Warcraft III\\Logs" "File0"="log" "Path1"="F:\\游戏\\Warcraft III\\Logs" "File1"="txt" "Path2"="F:\\游戏\\Warcraft III\\Logs" "File2"="w3g" "Path3"="F:\\游戏\\Warcraft III\\Logs" "File3"="j" [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\DelOpt3] "Path0"="F:\\游戏\\Warcraft III\\Errors" "File0"="txt" [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\Gameplay] "gamespeed"=dword:00000003 "mousescroll"=dword:00000032 "mousescrolldisable"=dword:00000000 "keyscroll"=dword:00000032 "tooltips"=dword:00000001 "healthbars"=dword:00000001 "formations"=dword:00000001 "formationtoggle"=dword:00000001 "herobar"=dword:00000001 "netgameport"=dword:000017e0 "inputsprocket"=dword:00000000 "ammtype"=dword:00000000 "ammstyles"="" "ammmapprefs"="" "ammmaphashes"="" "ammrace"=dword:00000020 "customfilter"=dword:00000000 "custommask"=dword:00000000 "allyFilter"=dword:00000002 "creepFilter"=dword:00000001 "terrainFilter"=dword:00000001 "subgrouporder"=dword:00000000
磁盘阵列0-5 1. 什么是磁盘阵列(Disk Array)?    磁盘阵列(Disk Array)是由一个硬盘控制器来控制多个硬盘的相互连接,使多个硬盘的读写同步,减少错误,增加效率和可靠度的技术。  2.什么是RAID?    RAID是Redundant Array of Inexpensive Disk的缩写,意为廉价冗余磁盘阵列,是磁盘阵列在技术上实现的理论标准,其目的在于减少错误、提高存储系统的性能与可靠度。常用的等级有1、3、5级等。  3.什么是RAID Level 0?    RAID Level 0是Data Striping(数据分割)技术的实现,它将所有硬盘构成一个磁盘阵列,可以同时对多个硬盘做读写动作,但是不具备备份及容错能力,它价格便宜,硬盘使用效率最佳,但是可靠度是最差的。    以一个由两个硬盘组成的RAID Level 0磁盘阵列为例,它把数据的第1和2位写入第一个硬盘,第三和第四位写入第二个硬盘……以此类推,所以叫“数据分割",因为各盘数据的写入动作是同时做的,所以它的存储速度可以比单个硬盘快几倍。    但是,这样一来,万一磁盘阵列上有一个硬盘坏了,由于它把数据拆开分别存到了不同的硬盘上,坏了一颗等于中断了数据的完整性,如果没有整个磁盘阵列的备份磁带的话,所有的数据是无法挽回的。因此,尽管它的效率很高,但是很少有人冒着数据丢失的危险采用这项技术。  4.什么是RAID Level 1?    RAID Level 1使用的是Disk Mirror(磁盘映射)技术,就是把一个硬盘的内容同步备份复制到另一个硬盘里,所以具备了备份和容错能力,这样做的使用效率不高,但是可靠性高。  5.什么是RAID Level 3?    RAID Level 3采用Byte-interleaving(数据交错存储)技术,硬盘在SCSI控制卡下同时动作,并将用于奇偶校验的数据储存到特定硬盘机中,它具备了容错能力,硬盘的使用效率是安装几个就减掉一个,它的可靠度较佳。  6.什么是RAID Level 5?    RAID Level 5使用的是Disk Striping(硬盘分割)技术,与Level 3的不同之处在于它把奇偶校验数据存放到各个硬盘里,各个硬盘在SCSI控制卡的控制下平行动作,有容错能力,跟Level 3一样,它的使用效率也是安装几个再减掉一个。  7.什么是热插拔硬盘?    热插拔硬盘英文名为Hot-Swappable Disk,在磁盘阵列中,如果使用支持热插拔技术的硬盘,在有一个硬盘坏掉的情况下,服务器可以不用关机,直接抽出坏掉的硬盘,换上新的硬盘。一般的商用磁盘阵列在硬盘坏掉的时候,会自动鸣叫提示管理员更换硬盘。  磁盘阵列(Disk array)原理  为什么需要磁盘阵列? 如何增加磁盘的存取(acces)速度,如何防止数据因磁盘的故障而失落及如 何有效的利用磁盘空间,一直是电脑专业人员和用户的困忧;而大容量磁盘的价 格非常昂贵,对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。  过去十年来,CPU的处理速度几乎是几何级数的跃升,内存(memory)的 存取速度亦大幅增加,而数据储存装置——它要是磁盘(hard disk)——的存取 速度相较之下。较为缓慢。整个I/0吞吐量不能和系统匹配,形成电脑系统的瓶 颈,降低了电脑系统的整体性能(throughout)若不能有效的提升磁盘的存取速 度,CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费。  目前改进磁盘存取速度的方式主要有两种。一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cache memory)中以减少磁 盘存取的次数。数据的读写都在cache内存中进行,大幅增加存取的速度,如要读 取的数据不在cache内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方 式在单工期环境(Single—tasking envioronment)如DOS之下。对大量数据的 存取有很好的性能(量小且频繁的存取则不然)。但在多工(multi—tasking)环 境之下(因为要不停的作数据交换(swapping)的动作)或数据库(database) 的存取(因每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。 
部分 Phoenix BIOS 笔记本机型带原生SLIC的BIOS解密(HP,ACER等部分 同HP的一样,BIOS文件MOD_5100.ROM里有判断加密代码, 下面代码会把SLIC表的C0起B6长内容清0。 只要把MOD_5100.ROM里的“SLIC”改成其它“SLIA”即可。 如果要ROM文件,把WPH文件100000h起内容删除即可, 未测慎用,风险自担。 :0000204A 8BF7                    mov esi, edi :0000204C 26037704             add esi, dword ptr es:[edi+04] :00002050 268B5F24             mov ebx, dword ptr es:[edi+24] :00002054 26813B534C4943       cmp dword ptr es:[ebx], 43494C53   //判断是否"SLIC"表 :0000205B 7409                    je 00002066 :0000205D 83C704                add edi, 00000004 :00002060 3BFE                    cmp edi, esi :00002062 76EC                    jbe 00002050 :00002064 EB1B                    jmp 00002081 :00002066 8BFB                    mov edi, ebx :00002068 BBC0000000              mov ebx, 000000C0 :0000206D B9B6000000              mov ecx, 000000B6 :00002072 26C6043B00              mov byte ptr es:[ebx+edi], 00   //SLIC后半部分清零 :00002077 43                   inc ebx :00002078 E2F8                    loop 00002072 备注:各个模块的寻找 在Phoenix BIOS Editor打开ROM文件后,会生成一个TEMP目录,各个模块就在该目录里 用UltraEdit等16/2进制编辑器打开就可以编辑 编辑完Phoenix BIOS Editor重新building一下,就可以得到修改的BIOS.  
SLIC表的构成 1,SLIC表的头部(0~23,24h): 0~3----表名:SLIC,用“everest”检测时显示文本:SLIC; 4~7----表长:76010000,用“everest”检测时显示10进制值:374; 8----- SLIC版本,目前全是01; 9----- SLIC表的校验,这个位置修正整个SLIC表校验和=0; A~F--- SLIC表的 OEM ID ,用“everest”检测时显示文本; 10~17-- SLIC表的 OEM Table ID ,用“everest”检测时显示文本; 18~1B-- SLIC表的 OEM Revision ,用“everest”检测时显示16进制值,                  比如这里如果是08080820,检测出来就是20080808; 1C~1F-- SLIC表的 Creator ID ,用“everest”检测时显示文本; 20~23-- SLIC表的 Creator Revision ,用“everest”检测时显示16进制值,                  显示方式跟 OEM Revision 相似。 2,SLIC表的SLP PubKey(24~BF,9Ch): 同一品牌的SLIC表的PubKey绝大多数是一样的,有个别品牌的不一样!(貌似东芝的SLIC有这情况) 3,SLIC表的SLP Marker (C0~175,B6h): 不同的SLIC表,SLPMarker都不一样,也是区别SLIC表异同的唯一地方! 位于CC~D9,Eh 字节的内容,必须跟SLIC表的OEM ID 、OEM Table ID 一样! 不同类型的BIOS,不同的厂家会根据自己的情况,或者喜好修改OEM Revision 、Creator ID 、Creator Revision : 比如AMIBIOS,OEM Revision 一般是时间(年、月、日),Creator ID 都是MSFT,Creator Revision 大多是00000097; AWARDBIOS的也有一定规律,OEM Revision 一般是312E3042(1.0B),Creator ID 一般是AWRD或者NVDA,技嘉的这里是GBTU,Creator Revision 就是什么都有! 对于phoenix BIOS,就更混乱了,由于大品牌使用phoenix BIOS比较多,OEM Revision 、Creator Revision 没什么规律,Creator ID 也是多种多样,大多数是204C5450( LTP),ASL (DELL),FUJ (Fujitsu),HPQ (HP)等等! 我们也可以根据自己的喜好,用WINHEX修改OEM Revision 、Creator ID 、Creator Revision , 修改完先把SLIC的位于9处(校验)改为00,然后“全选-工具-计算哈希-8位校验和”,用16进制计算器把这个值取负数,把得出的最后两位写在SLIC表的9处,在计算一下8位校验和是否=0!图中红线就是修正SLIC表的地方!
1 下一页