|
原帖由 zhaohj 于 2009-12-22 17:30 发表
title 启动内置菜单
configfile (md)4+8
commandline
用了您的方法,不需要最后一行的commandline,非常感谢
另附上g到的说明,供需要的人参考:
configfile (md)4+8成功
这个(md)4+8中的4和8分别是什么意思啊?
用cat --hex (md)4+1
cat --hex (md)4+2
……
在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也可引用它)
[ 本帖最后由 墨门跑腿 于 2009-12-22 19:25 编辑 ] |
|