|
本帖最后由 liuzhaoyzz 于 2020-12-8 16:39 编辑
由不点开发的 GRUB4DOS ,是一款功能强大、实用的程序。但是随着 UEFI 逐渐兴起,BIOS 将逐渐淡出历史舞台。
为了适应这一形势变化,延续其使用寿命,特开发了 GRUB4EFI 。
这是一个庞大的工程,几乎所有的代码都捋了一遍。修改了控制台键盘输入输出,控制台屏幕输出,内存控制,
驱动器控制,获取日期时间,暂停控制,图形模式及Unicode字体实现,PXE 网启,等等。
开发过程中,参考了 GRUB2 源码。有关映射,参考了 wintoflash 的源码。
目前只实现了 32 位环境应用。虽然实用价值不大,但是为下一步开发 64 位环境应用打下了基础。
1. 可以启动 efi 文件。
chainloader /efi/boot/grub2_ia320.efi
2. 可以启动 iso 及 img 文件。
map --mem /f.img (fd)
map /z.iso (cd)
chainloader
注:不能任意指定驱动器号。
启动的是最后一个映像,如本例是 cd.
3. 内置热键功能
setmenu --hotkey 参数
4. 可以通过 graphicsmode 命令查看系统支持的图形模式。
5. PXE 网启目前只支持 tftp,没有找到 ipxe 在 uefi 下的入口。
菜单例子:
timeout 5
default 0
color normal=0xff9933 highlight=0xffff00 helptext=0xff00ff heading=0x66ff00
graphicsmode -1 800
font /grub/unifont.hex.gz
splashimage /grub/lt.jpg
setmenu --box x=4 w=60 y=3 h=7 l=2
setmenu --keyhelp=1 --lang=zh
setmenu --auto-num-on
setmenu --keyhelp=1=0x66ff00
setmenu --string=s=1=0x0000000000ffff="G4D 维 护 菜 单"
setmenu --string=m=0=0xff00000000ffff="date&time=yyyy-MM-dd HH:mm:ss"
setmenu --timeout=40=0=0xff00000000ffff
setmenu --hotkey -A [F4] commandline
iftitle [find /grub2_ia32.efi] grub2_ia32.efi
chainloader /efi/boot/grub2_ia32.efi
title hdd_boot.ima
map /hdd_boot.ima (hd)
chainloader
title z.iso
map /z.iso (cd)
chainloader
title ^Ctrl+d commandline
commandline
title [F3] reboot
reboot
title halt
halt
|
评分
-
查看全部评分
|