注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

不会飞的鸟博客

【2群331400739】【3群 54376650】

 
 
 

日志

 
 

公布手工极限精简Windows的方法,所有版本通用  

2016-04-07 06:10:24|  分类: 装机软件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
用了几年内存操作系统,一直偷懒,没有认真研究系统的精简,可是发现新的的操作系统体积庞大,又没有出现让人感兴趣的新功能,一直感叹主持微软操作系统开发的带头人一代不如一代!
想一直坚持用老的系统,可是因为商业规则的限制,老的系统,没有人提供新的硬件驱动开发,逼迫用户强行升级,无奈呀!也许以后,我会不得不使用Linux之类的可定制系统...

好了,闲话不说,看到论坛上面没有人公布精简Windows的方法,我来提供一个方法:
1. 跟踪系统启动引导过程,定制极致小的引导文件清单,这个简单.
2.跟踪使用功能,定制极致小的功能文件清单,这会是个很耗费时间的过程.


原理分析:
因为微软的操作系统是闭源的,所以没有办法通过源代码来分析系统引导流程,只能通过外部监视来反推,这就需要一个有力的监视软件来捕捉这个流程!
这里推荐一个工具: Process Monitor, 又是一个被有钱的微软收购的.
我们会使用到其中的 enable boot logging 功能,中文的意思就是"启用引导日志",我们看看截图: 公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
 
公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
  
不用选择监视线程,我们现在关注的是文件,直接ok启用该功能,Process Monitor会在系统注入一个文件名为 PROCMON23.SYS 的驱动文件,用来监视系统下次启动过程的内容。
这里要提示的是,在这个驱动加载之前的内容是监视不到的,所以,我后面会补充几个启动必须的文件.

精简步骤(我用VPC2007虚拟机安装三烦精简的239m的Win7,一个是VPC2007软件体积小,另外一个主要是虚拟硬盘格式为VHD文件,Win7可以直接挂载操作):
  • 虚拟机里面安装好系统,Process Monitor 设置好boot logging以后,重启系统。C:\Windows\System32\Drivers\PROCMON23.SYS 就会不停的监视系统,把日志写到
    C:\Windows\Procmon.pmb 日志文件里面,所以为了避免监视太多无关的内容,造成日志文件过大,进入系统,直接点击关机或重启,不要等待,也不要操作其他动作。

  • 因为 PROCMON23.SYS 关机前会自动删除自身,以及清理相关注册表内容,所以再次进入系统,就不会继续监视系统了,
    再次打开 Process Monitor 会提示保存日志文件为新的pml格式的日志文件,看看截图:公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
      

  • 关闭虚拟机,主机Win7挂载VHD文件,在主机里面运行 Process Monitor 打开虚拟机里保存的pml格式日志文件,默认配置会看不到Boot阶段的日志,要设置一下,看截图: 公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
      
    为了生产精简的文件清单,我们还要设置过滤条件,过滤一些与精简文件目的无关的内容。过滤条件为:文件路径以 C:\Windows\ 开头, 排除和 Process Monitor相关的
    两个文件:C:\Windows\Procmon.pmb, C:\Windows\System32\Drivers\PROCMON23.SYS, 以及排除所有带 "*"的文件路径。继续看截图:公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
      

  • 保存文件列表清单,因为有很多重复的文件名,所以我们点击 count occurrences 菜单合并文件路径,看截图:公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
     
    公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
      
    Column:选择Path,再点Count合并计数,最后保存路径清单。

  • 上一步里保存的路径清单里面除了文件还包括目录,所以,我们要执行一个 cmd 命令排除这些目录,得到真正的Windows目录下面的文件清单。
    我们先假设刚才保存的路径清单文件名为: z:\paths.csv ,虚拟机的vhd硬盘文件挂载盘符为: E: ,生产新的文件列表清单文件名为: z:\files.txt ,具体cmd命令为:
    1. (for /f "usebackq skip=1 delims=," %I in ("z:\paths.csv") do @for /f "tokens=2 delims=:" %J in (%I) do @for /f %K in ("E:%J") do @if exist %K echo %~aK|findstr "^d" >nul||echo %J)>z:\files.txt
    复制代码

    打开新的文件列表清单文件: z:\files.txt ,添加没有监视到的启动相关文件,以及最精简的用户文件:
    1. \windows\fonts\vgaoem.fon

    2. \windows\inf\errata.inf

    3. \windows\system32\c_936.nls

    4. \windows\system32\l_intl.nls

    5. \windows\system32\winload.exe

    6. \programdata\microsoft\user account pictures\user.bmp

    7. \users\administrator\ntuser.dat

    8. \users\administrator\appdata\local\microsoft\windows\usrclass.dat

    9.  
    复制代码

  • 现在我们可以做试验了,看看效果如何,先把原系统的四个目录:Windows, Users, ProgramData, Program Files 剪切到新目录下,假设为: E:\0 , 执行新的 cmd 命令:
    1. for /f "usebackq delims=" %I in ("z:\files.txt") do @(echo f|xcopy "E:\0%I" "E:%I" /h) >nul
    复制代码

    看看截图: 公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
     公布手工极限精简Windows的方法,所有版本通用 b,系统爱好者
      
    没有错误的话就可以卸载vhd虚拟硬盘文件,启动虚拟机了。
     


当然,前面制作的步骤,启动的是个最小化的Windows, 没有更多的图形操作功能  因为我们在虚拟机里操作的原因,除了模拟administratorm关机没有进行任何操作,所以监视的内容比较少,
大家可以多模拟一下,比如点击计算机图标等等其他操作,可以多监视一些文件!
最后祝大家精简的开心!
也希望大家总结,把每个功能模块需要的文件清单,提炼出来,最后形成一个个真正组件定制化的Windows系统!
  评论这张
 
阅读(480)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016