|
原帖由 x.Nichdlas 于 2009-7-16 17:56 发表
忘了说了 这个方法前几天试验过了 不成功……
嘿嘿,终于我自己搞明白了,这样做不成功是版本的原因UltraISO版本老了,建议还直接加载LDLINUX.BIN吧。
- title [8] 切换至 SYSLINUX 菜单
- find --set-root /ldlinux.sys ----------------改为:chainloader --force /BOOT/LDLINUX.BIN(复制最新版的LDLINUX.BIN到BOOT目录下)
- chainloader +1
复制代码
再有就是“3.0版”切换至EasyBoot还有些问题,让人不明白的是,你的每个菜单开头都设置调用了:
- find --set-root /BOOT/G4DGFX/G4DGFX.X
复制代码
就没有必要在MENU.LST和MENU.CHS中写成这样吧“特定指向(cd)吗”:
- title [7] 切换至 EasyBoot 菜单
- chainloader --force (cd)/BOOT/BOOT2EZBT.BIN ------------------- 特定指向(cd)
- title [8] 切换至 ISOLINUX 菜单
- chainloader --force (cd)/BOOT/BOOT2ISOLINUX.BIN
- title [9] 切换至 GfxBoot 菜单
- chainloader --force (cd)/BOOT/BOOT2GFX.BIN
复制代码
如果说怕调用出错,或者是处理麻烦,完全可以这样处理:
MENU.LST和MENU.CHS开头中(适用于量产或刻盘):
- find --set-root /BOOT/G4DGFX/G4DGFX.X -----------G4DGFX.X文件大小为2K
复制代码
MENUS.LST和MENUS.CHS开头中(适用于U+处理):
- find --set-root /BOOT/G4DGFX/G4DGFX.X2 -----------G4DGFX.X2文件大小为3K
复制代码
另;时空BBS上有一贴,估计对你有些用,不过这样一来,菜单更复杂了,说不定我以后就不会动手了,嘿嘿。。。。。。。
在外部MENU.LST调用GRLDR内部菜单的问题 :http://bbs.znpc.net/viewthread.php?tid=5698&extra=page%3D1
zw2312914给出的解决方法:- 这个(md)4+8中的4和8分别是什么意思啊?”
- xianglang兄,这是一个简单但要解释清楚却又麻烦的问题。
- 在grub4中,通常是通过使用文件系统中的文件名来表示文件,比如ntldr ,io.sys等。
- 不过,对于文件的表示方法,还有另一种重要的等价的表示方法,即块清单(blocklist)表达法 ,简单说就是根据文件在设备上存储的扇区序列来表示文件,常用的例如有 (hd0,0)+1 ,(md)4+8 等等。
- grub4有个命令 blocklist ,可以较方便的列出文件的块列表。例如执行 blocklist /ntldr 看看。(注,该命令对空字节文件暂时无效)
- 以 (md)4+8 为例来说,它表示了(md) 设备上,跳过4个扇区(即从第5个扇区起始的),且,连续8个扇区大的扇区块所组成的文件。
- 显然,其中(md)代表了文件所在的设备为grub4dos全内存设备(md),4 代表了文件在此设备上的起始扇区位置(起始扇区都从零计数,取零时可省略,如(hd0,0)+1 ),而 8 则代表此文件为8个扇区大。
- 由于grub4dos的内置菜单固定大小为4 K (即相当于8 个扇区大)。在启动后,又会被固定加载于内存物理地址 0x800 处。0x800 转换为十进制是2048(相当于4个扇区)。
- 因此,(md)4+8通常就表示了加载到内存0x800处的4k大的内置菜单文件。
- (默认内置菜单的数据是小于512字节的,因此对于默认内置菜单,逻辑上一般情况下(md)4+1也可引用它)
- 扇区序列表达法(或叫块清单表达法)对于灵活表示,引用文件相当有用。特别是对那些位于文件系统外的扇区,而又要将它看做文件使用时,比如(hd0)1+1等。
- 以上的例子都是文件存储时扇区连续的情况,实际块列表表达法也可以表示不连续存放的文件。例如,(hd0,0)2+20,33+5,87+300 。可以看出,实际只是将不连续的块用逗号隔开,数值的意义和前面说的是相同的,即分别标示了各块的起始扇区和大小。
- (关于文件表达法的一些高级部分,可以参见不点大人的这个贴http://bbs.znpc.net/viewthread.php?tid=4532 ,注:未公开特性并非在每个命令下都适用,使用时请自行验证)
- --------------------
- 注意两个 +1 特例:
- 以下,形式是块清单表达法,但实际意义却是特殊定义的:
- 1.在 map 命令中,例如map --mem (hd0,0)+1 (fd0) ; 这时(即map命令中使用+1 时),其中的(hd0,0)+1 是表示第一硬盘的整个第一分区,而不只是第一分区的第一个扇区。
- 2. (rd)+1 ,在任何时候也是表示包含内存设备(rd) 的全部内容,而不只是(rd)设备的第一个扇区。
复制代码
[ 本帖最后由 天使的魔翼 于 2009-7-17 14:53 编辑 ] |
|