在U盘上制作嵌入式Win7操作系统

8月6日提示:本文U盘安装win7存在技术缺陷,博文已不具备实用价值,请朋友改用WES7在VMware下选U盘安装。

用过了华硕研发的express gate快速启动操作系统(基于linux的deviceVM),感觉不是很满意,它除了上网、聊天、听歌外就没啥用处,它集成的qq采用的是2005的协议,早被TX禁掉了,它最大的优点是启动很快——7秒启动。笔者很想制作一款实用的小型操作系统,要求很简单,在U盘系统运行,可以阅读文档、聊天、浏览网页,类似于“system-on-chip”概念的产品。笔者曾经尝试过采用linux嵌入到U盘上,发现linux对于本人华硕UL30VT的笔记本电脑,支持不是很完美,最大的问题是驱动。由于该型号的笔记本电脑是双显卡,在linux下无法自动关闭独显的电源,非常耗电,无法对长时间阅读的支持。节电的驱动最完美的支持还是基于win7。但是win7刚出道的时候,其庞大的体积足以难倒U盘

介绍本人制作U盘版win7的全过程

  1. 下载WIN7 LITE 7.626精简版,317M,exe文件,把笔记本电脑的C盘格式化后,在PE下把exe解压到C盘,带有wim格式的文件。重启进入C盘后自动安装,激活,打上intel AHCI硬盘驱动后,就重新打包一个GHO文件,463M,ghost纯净版!打上最新的sata驱动是为了扩大兼容性,方便他人安装,避免蓝屏问题。这个精简版带有win7旗舰版的aero特效。
  2. 制作带笔记本电脑全部驱动的版本。驱动光盘的自动安装程序无法识别这个是win7,自动退出,因此只能靠手动逐一打驱动。凭本人对驱动光盘的内容非常熟悉,按照比较严格的顺序打驱动,有些顺序倒转了会造成双显卡无法切换。最后打好了驱动,发现与自动安装相比,无法开启turbo33的超频模式。想想也没关系,这个U盘版主要用来节能,开启turbo33非常耗电,如果真要win7全功能,大可把完整版装到移动硬盘。移动硬盘够空间。

优化后台服务,关闭虚拟内存。server也关闭,如果需要用caj viewer请开启它;主题服务也关闭了,笔者为了加快启动速度,能省的都省了,剩下一个win2k的素颜界面,桌面底色采用灰白色,最节省LCD的电力。

装好驱动后,再打上一些实用的软件。播放器采用potplayer,体积最小启动最快的全能播放器,界面采用wmp12皮肤,也很漂亮;Office生产力套件,笔者采用了金山WPS,因为个人版是免费的,不存在法律问题,而且深度兼容MS Office 07;PDF阅读器采SamutraPDF,这个目前是最快,缩放操作又跟浏览器相似,非常好用;集成微软的“影子系统”——safe defender1.1,使U盘只读,禁止系统向U盘写入临时文件,这样可以加快开机和关机的速度,当然,安装后好暂时关闭它的保护功能;集成了VC2005运行库,方便需要安装qq的用户,为什么笔者不装了?因为它耗内存,运行时间一长就可能因因内存不足而崩溃。

3、 破解启动电源。Win7的优先启动电源为硬盘,usb的电源启动次之,因此需要修改相关驱动文件才可以把usb优先作为启动电源。xp和win7系统都又相关的文章讲解修改的技术,可是笔者不想弄得那么复杂,win7有现成的工具——PWBoot,适用于winnt6.0以上的内核,即vista也可以了,执行一下它就搞定。现在基本可以移植到U盘上了!目前系统占用了2.0GB的空间。

4、把U盘以NTFS格式化,簇采用4096。调出ghost软件,采用partition-partition的模式(分区对分区)。为什么不直接把主硬盘的C盘直接拷贝到U盘上呢?因为C盘的文件格式是NTFS,对关键的文件夹有保护,连访问都有权限限制,不可能让用户直接拷贝。直接拷贝这一招只能用在xp上,win7系统是基于且只能基于NTFS的文件格式的!好比无法移动一棵树怎么办呢?连根拔起,连地皮一块移走。ghost一会儿就搞定了。用bootice对U盘写入引导信息,不会用bootice的读者请自行搜索相关资料。笔者想想,有些杀软和病毒会破环U盘引导区的信息,所以给U盘的根目录放入bootice程序,以及一个批处理,批处理在第三方windows下可以修复U盘的引导功能。Bootice支持界面操心和命令操心。批处理采用的命令:

BOOTICE.exe /device=1:0 /mbr /install /type=nt60

意思是,在硬盘1(device=1,即U盘)上的第一个分区(主硬盘是device=0),安装MBR,引导类型为winnt60。Winnt60就是vista和win7的引导器,以bootmgr文件为特征。这个批处理文件可以一键就修复U盘的引导。当然,如果在U盘上的系统双击了,后果可能是主硬盘被写入了nt60类型的引导信息,如果主硬盘本来是nt60的,就没所谓,如果主硬盘是grub类型就比较悲剧了,bootice只能修复grub4dos的类型,无法对纯linux的grub 1、grub2等类型修复,只能拿出linux的启动盘来修复,或者采用之前就备份了MBR来修复,MBR备份与还原,用BOOTICE就可以做到了。

进入系统,时间非常长,主要是加载驱动,而驱动又那么齐全~,开启“影子保护”,阻止系统写入临时文件,如果有需要增加软件的用户,可以关闭保护再添加软件。

最后打包成GHO格式,采用最高压缩率模式,922MB。OMG,win7系统居然变成那么小的玩意儿!

对本次制作的嵌入式win7系统进行测试

笔者4GB金士顿的U盘实在太慢了,幸好前天向卓越订购了创见8GB class 1O的TF卡,读平均20M/s,写平均16M/s。class10是目前TF/SD卡最高的速度。BIOS把U盘调整为优先于主硬盘启动。启动开机的时间非常长,大约用了2分钟,关机2~5秒。如果关闭了影子”,关机时间也要1分钟。开启了“影子”,打开窗口和程序都很快,嘿嘿~实用!

由于系统集成了触控板的驱动,所以能实现多指操作,例如双指同时按表示右键,双指拖动触控板来控制滚动条的垂直和水平滚动,三指同时按表示中间,三指拖动嘛~这个……在苹果LION上才能实现~总之支持多指操作,看阅读资料和浏览网页非常方便,鼠标都懒得了。

U盘嵌入式win7制作过程教程

U盘嵌入式win7制作过程教程

如果你不想额外花钱购买“电子书”,作为“电子书”的嵌入式OS非常不错。由于系统挂载了主硬盘,所以能访问主硬盘的内容,用户可以把修改了的数据放入主硬盘。U盘启动的系统,抗震性非常好,又不用购买昂贵的固态硬盘。由于系统会不时访问主硬盘,所以笔者无法百分百保证主硬盘不受振动影响,但是主硬盘被访问的概率很低,可以放心在振动较大的场合例如火车、公车、轿车上。

总结

传统硬盘运行装了全驱动的win7,无论完整版还是精简版,启动速度大体都在30秒左右,差别估计只有几秒而已。笔者也试过把WES7(Windows embedded standard 7)装入U盘,Windows系列都是基于界面,界面占用很大的空间,而linux是基于文本,可以脱离界面运行,因此作为嵌入式系统,还是linux更适合,只是嵌入到笔者笔记本电脑的硬件就很悲催了。华硕的任意门系统非常好,可惜眉毛胡子一把抓,对旗下各个电笔型号的具体硬件的支持不够深入,没有深化各种机型的驱动。如果任意门带有双显卡的驱动,就可以实现对显卡的电源进行管理,实现高效能长续航。这也不能怪厂家,笔者摸索了很久,才在新的、支持双显卡的linux内核上实现关闭独显的电源,而且还是手动,即登录到桌面才执行脚本关闭,否则出现问题。如果华硕再精细化制定任意门,客户的反映应该更好,不要完全外包deviceVM公司。

通过制作一只嵌入式系统,体会到产品设计就是讲求健壮性、实用性、精细化贴近用户,还是挺好玩滴~

本文作者:BeMan  转载请务必注明出处http://mtoou.info/upan-qianrushi-win7/

3 thoughts on “在U盘上制作嵌入式Win7操作系统

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>