G4D是个宝,统一的不仅仅是PE
首先,感谢G4D的开放精神,以及无忧论坛等等提供的共享资料!让我等平民可以免费使用如此神奇而又功能强大的软件,本文只是对G4D的粗浅应用,本人才疏学浅,谬误必然很多,欢迎批评、指正、讨论,互相学习,共同提高。
一、G4D是什么?能干什么?
简单地说,G4D是一个多功能引导器,基于PC BIOS 平台,开源,免费。
G4D的神奇就在于它的易用性,它可以启动 DOS、Windows、Linux 等多种操作系统,反之亦然。
二、Grldr如何调用?
可用如下任一种方式调用grldr(G4D主启动文件):
1、通过 boot.ini 加载grldr,如需在boot.ini后面加上一句:c:\grldr=”Grub4DOS”
2、通过其它支持链式加载的引导器(例如 grub4dos、syslinux/isolinux/pxelinux 等)来加载 grldr,也是一句话:chainloader /grldr
3、通过软件(如bootice)将grub4dos的引导代码安装到MBR或者PBR
4、可作为PXE启动文件加载
5、将grldr作为光盘启动文件加载
……
(各种启动方式的细节,请参考使用帮助,如无忧论坛中的“GRUB4DOS帮助文档”)
三、用grldr统一管理启动硬盘、U盘、PXE等,略说菜单编辑
用grldr统一管理启动你的操作系统、U盘、PXE等,并且能够调用你需要的光盘镜像和软盘镜像,如此强大的功能,可能只需要一个文件grldr(好消息是win8的bootmgr已经不需要grldr.mbr中转了),但菜单编写复杂吗?
答案是显而易见的,菜单编写并不神秘,简单应用也不复杂。
如果有特殊需求,可能需要你研究一段时间,但它比任何一种编程语言都简单多了。并且,网上现成菜单不胜枚举,任何人可以轻松获取。
下面,是本人使用的一段通用菜单,用内置菜单编辑工具(如bootice)粘贴进去,在硬盘某分区根目录(U盘UD区根目录、光盘根目录、PXE共享目录等),建立一个MYFILE目录(当然可以修改为你喜欢的目录名),将你的字库文件、光盘镜像、软盘镜像拷贝到此目录下,试试它的魅力吧:
checkrange 0x21 read 0x8280 && pxe detect NotExist # 检测当前是否为pxe启动,是的话从pxe启动,否则向下执行
timeout 5 #缺少等待时间为5秒default 2 #缺少选择第2项菜单,从0开始哟
calc *0x82b8 && set booty=(ud)/MYFILE/ ! set booty=%@root%/MYFILE/
#搞定UD启动,解决U盘识别为软盘和硬盘的困扰 #graphicsmode -1 640:800 480:600 24:32 #用grldr的,需要VBE显示吗?需要的去掉注释#号 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)
title [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盘启动的菜单编写问题。
这行代码的含金量,用过U盘fbinst启动的人应该都有体会吧。
总结:统一程序(一个启动程序)、统一菜单(一个菜单)、统一目录(结构清爽),统一启动(既可由其他操作系统引导G4D,也可由G4D引导其他操作系统,包括PXE,放在光盘、U盘、硬盘、PXE都可以)、易学易用!
声明,本人不是开发者,只是使用者。有问题的,请向作者反馈或在论坛求助! ---编辑手误1, 2012.11.9 ---编辑手误 title [2] ... 2012.11.23
[ 本帖最后由 hnzz110 于 2012-11-23 13:10 编辑 ] |