|  | 
| 本帖最后由 mygamexxx 于 2024-11-15 08:56 编辑 
 我现在在用的菜单是G4D与G4E同一个菜单,不过里面发现不少问题,主要原因是命令有些不一致。需要修改G4D的grldr的内置菜单,find并configfile与G4E的同一个menu.lst。
 
 #显示模式,要放在最前,运行graphicsmode显示支持的模式
 graphicsmode -1 800
 
 ##判断启动方式
 if %@uefi%==64 set bt=EFI_x%@uefi%
 if %@uefi%==32 set bt=EFI_x%@uefi%
 if %@uefi%#==# set bt=BIOS
 
 setmenu --hotkey-color=0xffff00
 #G4D热键设置,排除e热键,在字库加载后运行,会出错error:not enough space!
 if %bt%==BIOS /boot/ext/hotkey -A [F4] commandline && /boot/ext/hotkey -A [F3] reboot && /boot/ext/hotkey [e]
 #G4E热键设置
 if %bt%==EFI_x64 /efi/ext/hotkey -A [F4] commandline && /efi/ext/hotkey -A [F3] reboot
 
 #加载透明背景的图像    splashimage [--offset=[type]=[x]=[y]] FILE
 splashimage /boot/background.jpg
 
 # 读0x1800820判断是否加载了字库,只能用于G4D,G4E下0x1800820总是读取成功。
 if %bt%==BIOS read 0x1800820 || font --font-high=22 /boot/hk22.hex
 if %bt%==EFI_x64 font --font-high=22 /boot/hk22.hex
 if %bt%==EFI_x64 load -n /EFI/grub/CrScreenshotDxe.efi
 
 ##颜色  菜单文字       选择高亮          帮助信息          版本信息         边框
 color normal=0x0F highlight=0x0A helptext=0x05 heading=02 border=01
 
 #菜单自动编号
 setmenu --auto-num-on
 
 ##--box x=[x] y=[y] w=[w] h=[h] l=[l] 菜单项标题起始列,起始行,每行最大字符数,最大菜单项数,菜单框线条宽度(像素);
 setmenu --box x=9 w=0 y=8 h=10 l=10    --ver-on
 
 ##--lang=en --lang=zh 菜单帮助信息中英文切换。默认英文;
 setmenu --lang=zh  --timeout=8=6=0xff00
 
 ##--help=[x]=[w]=[y] 帮助位置。单位:列,行;    注:x=0 由边框确定(默认);w=0 水平居中;
 setmenu --help=8=0=19
 
 ##--keyhelp=[y_offset]=[color] 按键帮助位置,颜色。单位:列,行,24位色彩;
 setmenu --keyhelp=2=0x222222
 
 ##计算物理硬盘数,识别分区类型
 ##用于BISO启动(EFI启动不行)的硬盘数,0x475的低2字节保存的是物理硬盘数,所以要去掉高2字节
 #set /a hdn=*0x475&0xff
 ##用于EFI启动(BIOS启动也行)的硬盘数
 geometry (hd-1) | set hdn=
 set /a hdn=%hdn:~9,1%+1
 set pt=MBR
 find checkrange 0xEE parttype && set pt=GPT
 
 setmenu --string=9=3=0xffff00="%@date%==存在%pt%类型的硬盘!!!==小楼一夜听春雨=="
 setmenu --string=9=5=0xff00ff="硬盘数量:%hdn%,启动分区:%@root%,启动方式:%bt%"
 
 ###################################菜单开始###################
 find --set-root /windows | set win=
 uuid ()
 find --set-root /boot/ext/SISO
 if %bt%==EFI_x64 set mn1="find --set-root /EFI/ext/ntload/ntloader && kernel /EFI/ext/ntload/ntloader uuid=%?_UUID% && initrd /EFI/ext/ntload/initrd.lz1"
 if %bt%==BIOS set mn1="find --set-root /boot/ext/SISO && /boot/ext/SISO NTBOOT NT6=%win%"
 if %bt%==EFI_x64 set mn2="chainloader /EFI/microsoft/boot/bootmgfw.efi"
 if %bt%==BIOS set mn2="chainloader /boot/bootmgr"
 uuid ()
 if %bt%==EFI_x64 set mn3="find --ignore-floppies --ignore-cd --set-root /efi/ext/ntload/ntloader && kernel /EFI/ext/ntload/ntloader uuid=%?_UUID% file=/0pe/10pe.wim && initrd /EFI/ext/ntload/initrd.lz1"
 if %bt%==BIOS set mn3="find --set-root /boot/ext/SISO && /boot/ext/SISO BOOT.WIM=0pe/10PE.WIM"
 if %bt%==EFI_x64 set mn4="command --set-path=/efi/ext/ && command /efi/ext/RUN --mem --top --set-showsize=0 --automenu show.iso.wim /imgs/"
 if %bt%==BIOS set mn4="find --set-root /boot/ext/SISO && /boot/ext/SISO RUN=--loadfont --automenu show.iso.wim /imgs/"
 
 default 0
 timeout 6
 
 title 快速启动 WINDOWS\n快速启动硬盘上的系统
 %mn1:~1,-1%
 boot
 
 title 用BCD启动 WINDOWS\n用BCD启动硬盘上的系统
 %mn2:~1,-1%
 boot
 
 title 启动WIM格式WIN10PE-X64\n启动/0pe/10PE.WIM
 %mn3:~1,-1%
 boot
 
 title 运行任意映像文件\n运行/imgs/下映像文件
 %mn4:~1,-1%
 boot
 
 #很奇怪,这里不能用[if %bt%==BIOS]
 iftitle [if %@uefi%#==#] 启动 0PE\n启动/0pe/0pe.iso
 find --set-root /0pe/0pe.iso
 map --mem /0pe/0pe.iso (0xff)
 map --hook
 chainloader (0xff)
 boot
 
 title [F4]进入命令行commandline\n进入命令行
 commandline
 
 title 启动存在的光盘(cd0)
 chainloader (cd0)
 
 title [F3]重启reboot\n重启电脑
 reboot
 
 title 关机halt\n关闭电脑
 halt
 
 
 
 | 
 评分
查看全部评分
 |