下面,是本人使用的一段通用菜单,用内置菜单编辑工具(如bootice)粘贴进去,在硬盘某分区根目录(U盘UD区根目录、光盘根目录、PXE共享目录等),建立一个MYFILE目录(当然可以修改为你喜欢的目录名),将你的字库文件、光盘镜像、软盘镜像拷贝到此目录下,试试它的魅力吧:
==============================
checkrange 0x21 read 0x8280 && pxe detect NotExist
# 检测当前是否为pxe启动,是的话从pxe启动,否则向下执行
timeout 5
default 2
calc *0x82b8 && set booty=(ud)/MYFILE/ ! set booty=%@root%/MYFILE/
graphicsmode -1 640:800 480:600 24:32
font %booty%FONT_CN.GZ
title [0] 启动XXXX光盘镜像 1.ISO
#(将所需光盘镜像重命名为1.ISO,或你喜欢的名称)
map --mem %booty%1.ISO (0xff)
map --hook
chainloader (0xff)
title [1] 启动XXXX软盘镜像 1.IMG
#(将所需软盘镜像重命名为1.IMG,或你喜欢的名称)
map --mem %booty%1.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
iftitle [2] 启动( NT/2K/XP/7/8 ) windows Boot Windows ( NT/2K/XP/7/8 )
# 启用windows
find --set-root --devices=h /bootmgr || find --set-root --devices=h /ntldr
map () (hd0) && map (hd0) () && map --rehook
find --set-root --devices=h /bootmgr || find --set-root --devices=h /ntldr
chainloader /bootmgr || chainloader /ntldr
title [3] 重新启动
Reboot
reboot
title [4] 关机
Shutdown
halt
==============================
以上菜单只是一个示例,绝非尽善尽美,你在学习菜单编辑技巧后,可任意修改之。
四、据说fbins制作的U盘启动成功率很高,为什么用grldr引导U盘总有问题?
U盘启动的问题,首先是U盘标准不统一的问题,同一U盘,在有些主板上识别为硬盘,有些主板上识别为软盘,有些主板竟然根本没有U盘启动功能!
其次也与G4D等启动软件有关系,这些软件还需要改进和提高。
对U盘启动问题,本人也曾走过不少弯路,使用过各种方法,别人的代码要么看不懂,要么觉得太繁杂,最终决定采用变量方式解决,相信这个问题还在困扰着不少用户,calc *0x82b8的作用是在学习无忧论坛sratlf版主编写的GRUB4DOS帮助文档grub4dos-help-2012-04-01.chm中看到的,位置和内容是:
“6、其他相关---> 12、在固定位置访问一些内部变量--->例九,0x82B8 处值通常可以用来判断是否为fbinst启动calc *0x82b8 && echo Boot from Fbinst ! echo Boot from other ”
据此,添加变量,简洁明了地解决了U盘启动的菜单编写问题。
总结:统一程序(一个启动程序)、统一菜单(一个菜单)、统一目录(结构清爽),统一启动(即可由其他操作系统引导G4D,也可由G4D引导其他操作系统,包括PXE,放在光盘、U盘、硬盘、PXE都可以)、易学易用!