|
|
发表于 2008-2-22 15:00:03
|
显示全部楼层
兄弟,你可以参考Embeded XP 中的USB BOOT 2.0 使用U盘来启动系统,光盘启动对光驱的损伤太大了,偶尔启动还可以,如果是经常启动,那么估计每一年就要换一个光驱了.
而且USB启动的速度比光盘启动快多了.用EWF保护可以大大减少损伤程度,延长U盘的使用寿命.
但是目前的问题是,USB启动的兼容性太差,如果在不同的启动环境启动很容易就会蓝屏.
现在在BIOS和USB控制器中加入了USB启动的支持,奠定了USB启动的硬件基础。然而,除了硬件的支持以外,作为操作系统需要加入USB的支持才能够实现USB的启动。因为硬件的支持,只是解决了可以读取NAND里面的主引导区信息。但是主引导区的程序也需要支持USB才能够继续从NAND里面读取出后面更大量的程序,因为这么多年来,主引导扇区的技术还一直保留至今,也就是512个字节而已。并且在MBR里面除了引导程序以外,还包括硬盘的分区表等重要的信息。不同的机器读取启动的方式不同,Phoenix BIOS(IBM的BIOS为PHOENIX OEM,SONY等)只是读取启动扇区,Phoenix-Award BIOS(包括Phoenix-Award Workstion BIOS),AMI 都是把U盘模拟成一个硬盘,要能成功启动,就必要在启动扇区上于普通硬盘一致(包含MBR和DPT分区表),否则会启动失败.
USB BOOT 2.0的技术要求BIOS必须支持USB 2.0通过0x13H中断启动(通常就是BIOS中的USB-HDD启动),也就是硬盘模拟了。另外,要求启动的接口必须是USB 2.0,U盘也必须是USB 2.0,因为USB 1.1的速度太慢,会严重影响系统的稳定性。最后一个要求是U盘里面的FLASH必须满足最低的读入速度是不低于9M/s,这样才能保证系统正常运行。(现在的USB2.0的U盘大都满足这个要求)。
当然,也可以使用工具来除错:
在Embedded XP里面,微软提供了一个Debug版本的NTDECT程序。NTDETEC.com是NTLDR启动的时候调用的一个硬盘检测程序。普通的NTDETECT在检测不到可启动硬盘的时候只会报一个invalid的错误。利用Debug版本的检测程序可以把系统检测出来的所有硬盘设备都列出来,以方便大家查错。Debug版本的检测程序就在系统安装光盘的ValueAdd目录下面,名字叫做USBNTD.CHK。只要把这个程序改名为NTDETECT.COM,然后放在U盘根目录下面替代掉原来的NTDETECT.COM就可以了。
希望能做出一个高兼容性的WINDOWS LIVE USB |
|