|
我最近刚接触U盘启动不久,试了一下两个办法都不错,关键还是看主板支持能力和U盘的主控芯片的配合。
用GRUB遇到的最麻烦的问题就是同一个U盘在不同主板上启动的时候不一定会是(fd0)和(hd0,0)的哪一种。会导致启动失败。
失败基本是两种情况,
一个是,启动后提示无法找到menu.lst文件,会有一个提示选择窗口。
另一个是,menu.lst文件是被找到了,但是在加载图片和字库的时候失败了,现象是乱码。这两个情况主要是因为menu.lst文件里面绝对路径不对,导致加载的文件没有找到。我试了一下,使用相对路径,兼容性会有很大提高。
第一个问题兼容性加强。
在IO+GRUB的引导中的autoexec.bat里面直接修改为。
if exist c:\menu.lst grub --config-file=(hd0,0)/menu.lst
if exist a:\menu.lst grub --config-file=(fd0)/menu.lst
if exist b:\menu.lst grub --config-file=(fd0)/menu.lst
"if exist" 是试探一下menu.lst文件的位置,U盘如果被识别为USB-HDD模式,基本盘符是C,如果被识别为USB-ZIP之类的,基本盘符是A。也就是说,如果存在c:\menu.lst,就说明被识别为USB-HDD了,则使用=(hd0,0)/menu.lst加载。如果c:\menu.lst不存在,基本就识别为USB-ZIP之类的了。
加强第二个问题的兼容性,menu.lst引导的字库和图片等加载的东西的前面把路径都去掉(就是(fd0)和(HD0,0)),只要相对路径就可以了,兼容性提高很多。如下,其他可自救修改。
splashimage /boot/grub/bj2008.xpm.gz
fontfile /boot/grub/fonts
timeout 10
default 0
title 启动微型WIN-PE
chainloader /peldr
boot
title WIN-PE
chainloader /minipe/ldrxpe
boot
...
IO.SYS,COMMAND.COM和MSDOS.SYS不可以随便覆盖使用,比如用HP U盘格式化工具做出来的东西,U盘里面自然会有这几个文件,一般的环境可以启动。但是有些PE RAR包里面会带这3个文件,如果覆盖原有文件,就会导致启动失败。
[ 本帖最后由 cocacc 于 2007-11-23 11:19 PM 编辑 ] |
|