无忧启动论坛

标题: G4D与G4E共用菜单的优化 [打印本页]

作者: mygamexxx    时间: 2024-12-2 12:07
标题: G4D与G4E共用菜单的优化
本帖最后由 mygamexxx 于 2025-11-21 20:39 编辑

在MBR的硬盘(WEE作为主引导记录,GPT的硬盘在BIOS启动时要修正引导方式)1-2GB的FAT32格式的ESP隐藏分区中,放入PE与BIOS和UEFI启动模块。BIOS启动使用WEE查找/boot/grub/grldr启动,该grldr内置菜单修改为查找/efi/grub/menu.lst的G4D和G4E共用菜单。G4D的外部命令在/boot/ext,G4E的外部命令在/efi/ext。


菜单内容:

default 0
timeout 6
##倒计时进度条ProgressBar [--no-box] 左上角x 左上角y x尺寸 y尺寸 颜色 模式
%ph%/ext/ProgressBar 82 136 636 16 0x00ff00 1

iftitle [if "%@boot%"=="(pd)"] 从PXE服务器端EFI启动10pe(/boot/boot.wim)
##EFI下使用ntboot进行PXE启动。
#set http
if %@uefi%==64 && set gbk2uni=/efi/ext/gbk2uni && /efi/ext/ntboot /boot/boot.wim
##EFI下使用wimboot进行PXE启动。
##bcp中钩选了禁用数字签名驱动验证,适应wimboot启动。
##bcd设置中启动文件留空,BIOS和EFI通用。bcd中的内存盘参数要设置RamdiskTftpBlockSize=20480或者RamdiskTftpBlockSize=32768,tftp速度更快。
#if %@uefi%==64 && kernel ()/boot/wimboot && initrd @bootx64.efi=/boot/bootmgfw.efi @bcd=/boot/bcp @boot.sdi=/boot/boot.sdi @boot.wim=/boot/boot.wim
boot

iftitle [if "%@boot%"=="(pd)"] 从PXE服务器端启动pe(NBeePlus2025.iso)\n用于G4E网启ISO测试
#set http
if %@uefi%==64 && map /isos/NBeePlus2025.iso (0xff) && chainloader (0xff)
boot

title 快速启动 WINDOWS 10\n快速启动硬盘上的windows10系统
##除系统引导分区外,其他分区根目录无bootmgr。
if %@uefi%#==# && find --set-root /bootmgr && chainloader /bootmgr
if %@uefi%==64 && chainloader /efi/microsoft/boot/bootmgfw.efi
##用延时为0的bcd00文件覆盖bcd文件, 默认启动WINDOWS10
##bcd设置中启动文件留空,BIOS和EFI通用。
#if %@uefi%#==# && dd if=%@root%/bcd/bcd30 of=%@root%/boot/bcd ! dd if=%@root%/bcd/bcd30 of=%@root%/efi/microsoft/boot/bcd
#chainloader %ph%%mn1:~1,-1%
boot

#title 安装/更新 WINDOWS\nBIOS安装/更新WINDOWS系统时使用,除系统引导分区外,其他分区根目录无bootmgr。
#if %@uefi%==64 && chainloader %ph%%mn1:~1,-1% && boot
#set key=N
#set /p key=请选择S键为安装,U键为更新:
#set /u key=%key%
#set key1=0
#if %key%==U set key1=1 && chainloader %ph%%mn1:~1,-1% && boot
#if %key%==S set key1=1 && find --set-root /bootmgr && chainloader %ph%%mn1:~1,-1% && boot
##echo -P:XXYY $[ABCD]MESSAGE
##-P为大写;XX为横坐标,YY为纵坐标。用$[ABCD]来指定后面显示的字符使用的颜色。
##A 值为1时闪烁 (blinking foreground color),B 值为1时高亮(light),C [0-7]背景色(background color),D [0-7]前景色-字体颜色(foreground color)。
#if %key1%==0 && echo -P:1025 $[0005]输入错误,5秒后重启。 && pause --wait=5
#reboot

title 用BCD启动 WINDOWS 和 WINPE\n用BCD启动硬盘上的 WINDOWS 系统和 WINPE
##用延时为30的bcd30文件覆盖bcd文件,显示带PE启动项的多启动项菜单。
##bcd设置中启动文件留空,BIOS和EFI通用。
if %@uefi%#==# && dd if=%@root%/bcd/bcd30 of=%@root%/boot/bcd ! dd if=%@root%/bcd/bcd30 of=%@root%/efi/microsoft/boot/bcd
chainloader %ph%%mn1:~1,-1%
boot

title 用RUN启动 WINDOWS\n BCD出问题时用此菜单
if %@uefi%#==# && set mn2="/boot/ext/SISO NTBOOT NT6=%win%" ! set mn2="/efi/ext/ntboot %win%/win"
%mn2:~1,-1%
boot

title 用RUN、ntloader、wimboot启动WIM格式WIN10PE-X64\n BCD出问题时用此菜单启动WIN10PE(/boot/boot.WIM)
##用RUN启动WIM格式PE
#%ph%/ext/RUN /boot/boot.wim

##用ntloader启动NT6+ WIM,BIOS与EFI通用
#uuid ()
#kernel /boot/ext/ntloader uuid=%?_UUID% wim=/boot/boot.wim
#initrd /boot/ext/initrd.cpio

##用wimboot启动
##bcd设置中启动文件留空,BIOS和EFI通用。bcp中钩选了禁用数字签名驱动验证,适应wimboot启动。
kernel /boot/wimboot
if %@uefi%#==# && initrd @bootmgr.exe=/boot/bootmgr.exe @bcd=/boot/bcp @boot.sdi=/boot/boot.sdi @boot.wim=/boot/boot.wim
if %@uefi%==64 && initrd @bootx64.efi=/boot/bootmgfw.efi @bcd=/boot/bcp @boot.sdi=/boot/boot.sdi @boot.wim=/boot/boot.wim
boot

title 启动RAMOS-WIN10系统\n启动SSIC-WIN10-20241225-8504
#if %@uefi%==64 && find --ignore-floppies --ignore-cd --set-root /EFI/tool/ntfs_x64.efi
##我的UEFI固件支持ntfs,所以不需要加载ntfs驱动,bootmgfw.efi不认识ntfs,读取BCD的时候需要ntfs驱动(BCD在ntfs分区时)。
#if %@uefi%==64 && load /EFI/tool/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /VHD/SSIC-WIN10-20241225-1509.vhd
##BIOS下需要--top的map参数加载至高端内存。
if %@uefi%#==# && map --mem --top /VHD/SSIC-WIN10-20241225-1509.vhd (hd)
##UEFI下不需要--top的map参数。
if %@uefi%==64 && map --mem /VHD/SSIC-WIN10-20241225-1509.vhd (hd)
##G4D下必须要map --hook,磁盘映射项目不存在,map --rehook 将不执行任何动作。但如果是 map --hook,则会报错。G4E下不需要会自动执行map --hook。
if %@uefi%#==# && map --rehook
root (hd-1,0)
if %@uefi%#==# && chainloader /bootmgr ! chainloader /efi/boot/bootx64.efi
boot

title 运行grubfm(grub2)和efi工具/efi/tool\n运行grubfm(grub2)和efi工具/efi/tool
if %@uefi%#==# && map --mem /efi/grub2/grubfm.iso (0xff) && map --rehook && chainloader (0xff) ! chainloader /efi/grub2/grubfmx64.efi
boot

##很奇怪,这里不能用[if %bt%==BIOS]
iftitle [if %@uefi%#==#] 启动 0PE\n启动/0pe/0pe.iso
map --mem /0pe/0pe.iso (0xff)
##G4D下必须要map --hook,磁盘映射项目不存在,map --rehook 将不执行任何动作。但如果是 map --hook,则会报错。
map --rehook
chainloader (0xff)
boot

title [F4]进入命令行commandline\n进入命令行
commandline

iftitle [if %@uefi%==64] 启动 ventoy\n启动/efi/grub2/ventoy.vhd
map /efi/grub2/ventoy.vhd (hd)
chainloader (hd-1,0)+1
boot

iftitle [if %@uefi%==64] 启动 rEFInd\n启动/efi/rEFInd/refind_x64.efi
chainloader /efi/rEFInd/refind_x64.efi
boot

title 查找2级目录深度.iso.wim.img.vhd映像文件\n运行.iso.wim.img.vhd下映像文件(可加参数/imgs/限定目录)
%ph%/ext/RUN --mem --noload --top --set-showsize=0 --automenu-all show.iso.wim.img.vhd subdir=2
boot

title 启动存在的光盘(cd0)
chainloader (cd0)

title [F3]重启reboot\n重启电脑
reboot

title 关机halt\n关闭电脑(无法正常关机,在设置-系统-电源和睡眠-其他电源设置-选择电源按钮的功能-更改当前不可用的设置-取消"启用快速启动")
halt

##共用注销菜单################################
#启动不成功转下一菜单启动
#fallback +1

#title 启动HD_2的系统\n启动硬盘HD_2的系统
#hiddenflag (hd0,0) || hiddenflag --set (hd0,0)
#hiddenflag (hd1,0) && hiddenflag --clear (hd1,0)
#map (hd0) (hd1)
#map (hd1) (hd0)
#map --hook
#root (hd0,0)
#find --set-root makeactive --status
#chainloader ()+1

##BIOS注销菜单################################

#title 备份系统\n备份第一硬盘第一主分区,镜像保存为:第一硬盘最后一个分区\n\\system\\xp.gho,倒计时4秒
#/boot/ext/siso max=/imgs/maxdos9.img tool=bak gho=/system/xp.gho hd=(hd0,0) t=4

#title 还原系统\n搜索各分区\\system\\xp.gho,并还原第一硬盘第一主分区,倒计\n时2秒,完成后重启
#find --set-root /boot/ext/siso
#/boot/ext/siso max=/imgs/maxdos9.img tool=res gho=/system/xp.gho hd=(hd0,0) t=2 pw=rb

#title 启动 VHD XP\n启动 VHD 格式XP
#find --set-root /VHD/USBWinXP-SVBus-N-EWF.vhd
#map --read-only /VHD/USBWinXP-SVBus-N-EWF.vhd (hd0)
#map (hd0) (hd1)
#map --hook
#chainloader (hd0)+1

#title 启动 VHD WIN7-64\n启动 VHD 格式WIN7-64
#find --set-root /boot/ext/SISO
#/boot/ext/SISO RUN (hd0,6)/VHD/USBWin7x64P-N.vhd
#boot

#title 搜索GHO文件\n在当前分区system目录下2级深度搜索.GHO文件
#find --set-root /boot/ext/SISO
#/boot/ext/SISO RUN=--automenu show.gho subdir=2 /system/  
#boot


作者: yc2428    时间: 2024-12-2 12:51

谢谢分享
作者: hn7000    时间: 2024-12-2 13:00
谢谢,收藏起
作者: guong    时间: 2024-12-2 13:21
谢谢楼主分享
作者: zqfeng01    时间: 2024-12-2 13:50
谢谢分享
作者: cuicongyuan    时间: 2024-12-2 13:56
谢谢楼主分享!
作者: jabbie    时间: 2024-12-2 14:07
看不懂,来学习
作者: wn168cn@163.com    时间: 2024-12-2 14:28
感谢分享
作者: wang1126    时间: 2024-12-2 15:19
谢谢楼主分享
作者: kukuyu    时间: 2024-12-2 15:22
感谢分享
作者: nianyueriPE    时间: 2024-12-2 18:01
谢谢分享
作者: 2012fengxi    时间: 2024-12-3 07:31

谢谢分享
作者: guong    时间: 2024-12-3 10:53
谢谢楼主分享!!!
作者: yaojil    时间: 2024-12-3 11:11
谢谢分享
作者: gutaiping2006    时间: 2024-12-5 11:03
学到了,非常详尽的注释
作者: 孟仁飞    时间: 2024-12-6 14:42
学习
作者: zyy    时间: 2024-12-20 00:51
学习一下,谢谢分享
作者: zqjiang    时间: 2025-1-17 12:19

谢谢楼主分享!!!  很详细
作者: ellx98    时间: 2025-1-17 12:29
多谢分享
作者: jj精益求钱    时间: 2025-1-21 18:20
谢谢分享
作者: liaimin123    时间: 2025-2-8 14:52
谢谢,收藏起
作者: 2011pepe    时间: 2025-2-8 15:43
感谢分享,学习一下
作者: fjun67    时间: 2025-2-8 15:58
谢谢分享
作者: liaimin123    时间: 2025-2-17 18:07
谢谢楼主分享
作者: 201287zr    时间: 2025-2-17 22:54
不错,支持技术分享
作者: 201287zr    时间: 2025-4-1 14:42
感谢分享,非常详细,希望持续更新。
作者: 假大空    时间: 2025-4-2 15:16
学习了。注释很详尽
作者: book11ba    时间: 2025-4-19 09:08
有注释,谢谢大佬那么详尽的教程。
作者: book11ba    时间: 2025-5-15 21:24
谢谢大神详尽试用分享。
作者: 419545168    时间: 2025-6-18 09:28
谢谢分享




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3