系统恢复之系统文件篇 最近做winre才发现,windows功能的实现主要靠两大组件支持:系统文件与系统配置。因此系统如出现故障,也大都是此二者的问题造成的,只要从此入手,问题很好解决,而不必整个系统的恢复或是重装系统。 系统文件主要是system32目录下的dll等,System32\drivers目录下sys与inf,这些文件系统都是有相应备份的,在winsxs里。这种“备份”,其实是通过硬连接(hard link)实现的。 下引度娘百科: “硬连接就是记录了文件的地址,你在文件管理器中看到的每个文件都是磁盘里文件的“硬连接”。当一个文件的所有硬连接都被删除的时候,该文件占用的空间才可以被新加入的数据覆盖。“ 在安装windows时先复制winsxs,然后在将所需的系统文件用硬连接部署到确定路径。如果误删除了某dll,如system32\X.dll,只需重新建立硬连接即可,cmd管理员下: mklink /h %windir%\system32\X.dll %windir%\winsxs\相应的文件夹\X.dll 值得一提的是,假如1GB的硬盘分区里有文件夹a里有0.9GB的文件file,给file做一个硬连接到a后,文件a就显示为1.8GB。尽管explorer显示占了额外的空间,但文件经多次硬连接后实际上仍然只占一份空间,只要学过指针就会意识到这一点。而某些优化教程的作者却未必都有这种意识,主张并指导删除整个winsxs这块“赘肉”以增加硬盘空间。结果增加的空间远不及预期,同时以经常发生不认识U盘等悲剧为代价。 但若不幸用了优化,也只能从安装光盘恢复了。 在原版的windows系统光盘(仅指vista,sever2008,7,sever2008R2)中sources目录下,找到install.wim,用7-zip打开(可惜imageX.exe不能单独提取指定文件),以win7为例,其中的1,2,3,4文件夹分别对应HB,HP,PRO,ULT四个版本,打开相应版本,把windows文件夹中相应文件解压出来放到系统相应位置即可。 当然也可整个system32文件夹恢复,把system32解压到某处,如d:\ ,再用xcopy命令即可,cmd管理员下: xcopy d:\system32\* c:\windows\system32\ /y /h /s /d /d表示只复制那些源时间比目标时间新的文件,可以缩短恢复时间,但可能恢复不彻底。若无/d参数,则完全覆盖复制,但时间较长。 附注 1.其实硬连接源自linux,虽然在xp中已经支持,但由于绝大多数人用Ghost xp,绝大多数Ghost xp的系统分区文件系统为fat32,而fat32不支持硬连接(只有NTFS支持),故鲜有人提。 2.至于为什么大多数Ghost xp的系统分区格式化fat32,这是因为ghost只能在dos下运行,而dos不认识ntfs。若windows下c盘为ntfs,d盘恰好为fat32,那么在dos下format c:命令会把d盘格掉。而且关键是ghost还原后数据是很难恢复的。 3.系统优化,必须在充分了解优化内容和优化后果的前提下进行,否则会造成optimization failure(优化失灵)。我的使用经验是:原版系统是最好的系统,不优化是最好的优化。 |