无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 10364|回复: 45
打印 上一主题 下一主题

[分享] GRUB2使用后心得分享

    [复制链接]
跳转到指定楼层
1#
发表于 2023-4-22 15:20:22 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chen463 于 2023-7-9 19:42 编辑

GRUB2使用后心得分享
首先后学感谢W大对开发GRUB2制作的辛劳贡献和各位前辈大大提供教学示范及模板,GRUB2功能之强大无远弗届,包含BIOS及UEFI都能支持,还能客制化模板,也因为功能太复杂,以至于初学需花更多时间学习,尤其菜单加载gfxterm部分。多年以前曾经接触过GRUB2,后来一直没再操作使用,近日有了因缘际会让后学起了念头重新来学习。

第一页菜单是Grub2原味原汁菜单
第二页菜单是菜单加载gfxterm
第三页菜单是Grubfm_menu方式引导2010wadee制作的菜单模板

1. NTBOOT、RUN命令
2. RUN自动菜单搜索目录/ sources
    MAP虚拟盘map/iso
   虚拟盘内存map --mem /iso
3. 自动菜单搜索目录/ pe
   启动windows
   Grubfm_menu方式2010wadee引导菜单
1.安装前把原来UEFI_BCD启动bootx64.efi复制更名为bootx64O.efi,以后要恢复回原来UEFI_BCD启动方式,就复制更名bootx64.efi就可
2.把在\EFI\Microsoft\boot\bootmfgw.efi复制更名为bootmfgwO.efi,方便以后更名恢复。

如何把grub2_UEFI安装到优盘FAT32分区下/efi
1.    grub2_efi.7z-grub2使用时相对文件夹。
2.    elegant_theme.txt.7z-是菜单加载gfxterm
3. run_pe.7z-是菜单WinPE_bcd加载RUN/MS/BCD
4. shellx64.7z-shellx64
5. grubfm.7z.001、grubfm.7z.002-是菜单grubfm_menu
6. fonts.7z是文字本文件
7. Module gfxmenu.7z-是gfxmenu模块

如何把grub2_UEFI安装到系统硬盘上
bootx64.efi 是计算机默认引导文件
bootmgfw.efi Windows默认引导文件
bootmgfw.efi 是优先启动第一顺位,其次是bootx64.efi
1.     打开在ESP分区C(X) SYSTEM\EFI
2.     首先把\EFI\bootx64.efi复制更名为bootx64O.efi,方便以后更名恢复
3.     如安装在U盘一样的操作解压到C

如何把grub2_UEFI另类安装法:如果主板支持NTFS启动把它安装在硬盘上,除了启动相关系统盘外,后面的资料盘,分区是FAT或是NTFS都可以解压玩玩看。

总结
Grub2的使用已经有几天了,也做了最后bootx64.efi模块更新到位,容量增加不少,光一个菜单切换就需要加载4个以上模块,也不知是干什的。配上G4E切换完美,到此应该已经定案,这模板足够再耗个五~十年时间。总结一下吧:
1.使用NTBOOT_WIM_root发现只能搜索到该本启动盘里的文件,无法跨分区找到文件去启动,也许是后学不熟命令使用吧!所以做了标记_root。
2.使用RUN_WIM_all,RUN-ISO_all,发现可以去搜寻别分区指定的文件檔启动它,这是RUN命令超强的功能。
3.Map命令,在U盘上使用,文件檔前面须加上分区号(hdx,y),否则无法成功启动。跟G4E设定有差别。
4.Menu 自动菜单搜索目录跟G4E一样好用,可多加利用。
5.Grub2启动Boot Microsoft Windows 8/10功能强,只要定位系统分区号(hdx,y),就可启动Windows。即使是新机PCIe_M2卡硬盘也识别的到启动它。
6.wimboot_wim本不想试,看到可在BIOS关闭安全模式下可以成功启动,尝试果然,佩服W大功力。
7.这Grub2模板还收录了WinPE_bcd_RUN功能不需借用系统启动和收录了grubfm_Menu能成功启动wim、iso、WinPE_bcd等,这些菜单项,都经过后学实机U盘测试OK,有疑惑问题菜单一律去除淘汰掉。如果操作上有不成功是没放好文件和正确路径分区号(hdx,y),这是后学做最后调整更新后实际操作的感想。在NTFS分区支持兼容性奇佳。
8.grubfm_Menu菜单发现在U盘(hd0,msdos1)下是无法显示出来的,也许是分区限制也许是个别操作问题,但在U盘(hd0,msdos2)下是OK的。
如果主板支持NTFS启动,想把UEFI安装在NTFS分区,可以的。
GRUB2_UEFI可以NTFS分区启动它,兼容性奇佳,简直无懈可击,到现在从PCIe盘、SATA盘、USB盘、SD卡、CF卡,外挂U固态SDD盘分区是NTFS启动UEFI都玩过一遍了,却找不到它重大的缺失弱点。

后续再补充


http://bbs.wuyou.net/forum.php?mod=viewthread&tid=435206&fromuid=87737
[分享] grub4dos-for_UEFI-2023-03-29使用后心得分享

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=435653&fromuid=87737

grub2_efi.7z

806.3 KB, 下载次数: 194, 下载积分: 无忧币 -2

grub2_efi.7z更新

elegant_theme.txt.7z

72.54 KB, 下载次数: 115, 下载积分: 无忧币 -2

elegant_theme.txt.7z

run_pe.7z

594.8 KB, 下载次数: 167, 下载积分: 无忧币 -2

RUN_PE_bcd

shellx64.7z

208.84 KB, 下载次数: 129, 下载积分: 无忧币 -2

shellx64.7z

grubfm.7z.002.7z

1.55 MB, 下载次数: 160, 下载积分: 无忧币 -2

grubfm.7z.002

grubfm.7z.001.7z

3 MB, 下载次数: 160, 下载积分: 无忧币 -2

grubfm.7z.001

fonts.7z

757 KB, 下载次数: 133, 下载积分: 无忧币 -2

fonts.7z是文字本文件

Module gfxmenu.7z

415.06 KB, 下载次数: 120, 下载积分: 无忧币 -2

Module gfxmenu.7z-是gfxmenu模块

2#
 楼主| 发表于 2023-4-22 15:20:43 | 显示全部楼层
本帖最后由 chen463 于 2023-5-28 20:58 编辑

后续再补充…更新模板菜单-grubfmx64-refind-AutoMenu_RUN
单1模板菜单1
添加Grub2 UEFI shell
menuentry "2.G4E_Menu1" --class uefi                     --hotkey=2 {run /efi/boot/BOOTX64G4E.efi;}
chainloader 修正为RUN更为贴切
menuentry "7.虚拟盘map/iso" --class iso                  --hotkey=7 {map ($root)/cdrom.iso;}
经过多个配备启动一直在变化,最后干脆把启动变量分区号带上

  1. . $prefix/run/run.cfg

  2. set default=1
  3. set timeout=30
  4. set fallback=1


  5. #想加边框
  6. #set grub_draw_border=1

  7. set gfxmode=1024x768,auto
  8. set gfxterm_font=unicode
  9. set lang=zh_CN
  10. set locale_dir=$prefix/locale
  11. set pager=1
  12. set enable_progress_indicator=0

  13. #terminal_output gfxterm

  14. ##loadfont unicode
  15. loadfont $prefix/fonts/unicode.pf2
  16. ##theme=elegant/theme.txt
  17. #theme=$prefix/themes/elegant/theme.txt
  18. #source $prefix/themes/f56w.cfg

  19. ##function run {search -n -s -f $1; chainloader $1;}

  20. ##menuentry "0.Windows-run-W"         --hotkey=0 {run /Windows/Boot/EFI/bootmgfw.efi;}   
  21. menuentry "0.EFI_root=($root)" --class uefi              --hotkey=0 {chainloader /efi/boot/shellx64.efi}
  22. menuentry "1.Bootx64O_bcd_O" --class nt6                 --hotkey=1 {chainloader /efi/boot/Bootx64O.efi;}
  23. menuentry "2.G4E_Menu1" --class uefi                     --hotkey=2 {run /efi/boot/BOOTX64G4E.efi;}
  24. menuentry "3.NTBOOT_WIM_root" --class slax               --hotkey=3 {ntboot --efi=$prefix/run/ms/bootmgfw.efi --wim /boot/imgs/winpe.wim;}
  25. menuentry "4.RUN_WIM_all" --class slax                   --hotkey=4 {run /boot/imgs/winpe.wim;}
  26. menuentry "5.RUN-ISO_all" --class iso                    --hotkey=5 {run /cdrom.iso;}
  27. menuentry "6.Menu 自动菜单搜索目录/sources" --class slax --hotkey=6 {run /sources;}
  28. menuentry "7.虚拟盘map/iso" --class iso                  --hotkey=7 {map ($root)/cdrom.iso;}
  29. menuentry "8.虚拟盘内存map --mem /iso" --class iso       --hotkey=8 {map --mem --type=CD ($root)/cdrom.iso;}
  30. menuentry "9.Menu 自动菜单搜索目录/pe" --class slax      --hotkey=9 {run /pe;}
  31. menuentry "n.Boot Microsoft Windows 8/10_N" --class nt5  --hotkey=n {chainloader -t (hd2,gpt1)/efi/microsoft/boot/bootmgfw.efi;}
  32. menuentry "o.Boot Microsoft Windows 8/10_O" --class nt5  --hotkey=o {chainloader -t (hd1,gpt2)/efi/microsoft/boot/bootmgfw.efi;}
  33. menuentry "f.grubfm_Menu_run/siso" --class uefi          --hotkey=f {run /efi/boot/grubfmx64.efi;}
  34. menuentry "p.WinPE_bcd" --class nt5                      --hotkey=p {chainloader $prefix/run/ms/bootmgfw.efi;}
  35. menuentry "w.wimboot_wim" --class slax                   --hotkey=w {wimboot --rawwim @:bootmgfw.efi:/efi/grub/run/ms/bootmgfw.efi @:boot.wim:/boot/imgs/winpe.wim;}
  36. menuentry "s.Grub2 UEFI shell" --class uefi              --hotkey=s {shell;}
  37. menuentry "r.Reboot" --class reboot                      --hotkey=r {reboot;}
  38. menuentry "h.Halt" --class halt                          --hotkey=h {halt;}
  39. menuentry "u.AutoMenu_RUN" --class uefi                  --hotkey=u {run /efi/boot/run.efi;}
  40. menuentry "d.refind" --class uefi                        --hotkey=d {run /efi/refind/refind_x64.efi;}
  41. menuentry "a.Menu/grub82.cfg" --class recovery           --hotkey=a {configfile $prefix/grub82.cfg;}
  42. menuentry "x.Menu/grub83.cfg" --class recovery           --hotkey=x {configfile $prefix/grub83.cfg;}
复制代码

生成bootx64g2.efi (或者bootx64.efi)时使用的脚本要指定加上这模块
  1. grub-mkimage -O x86_64-efi -p /efi/grub -o bootx64g2.efi normal part_gpt part_msdos fat exfat ntfs sbpolicy progress help wimboot fb halt reboot ext2 cpio gzio loopback lzopio memdisk newc chain configfile echo map ntboot probe regexp search test gfxterm efi_gop efi_uga jpeg png gfxmenu video_colors trig bitmap_scale blocklist shell
复制代码

启动windows--(hd2,gpt1)系统分区号,自己改,不会看分区号的,打开grubfm_menu菜单,按F3,即可看到分区号啦!这是后学试过GRUB2制作U盘最直接完美启动Windows的方式。
  1. menuentry "4.Boot Microsoft Windows 8/10_N" --class nt5 --hotkey=4 {chainloader -t (hd2,gpt1)/efi/microsoft/boot/bootmgfw.efi;}
复制代码




2023-05-28_205532.png (516.12 KB, 下载次数: 66)

更新模板菜单-grubfmx64-refind-AutoMenu_RUN

更新模板菜单-grubfmx64-refind-AutoMenu_RUN
回复

使用道具 举报

3#
 楼主| 发表于 2023-4-22 15:21:05 | 显示全部楼层
本帖最后由 chen463 于 2023-4-30 20:37 编辑

后续再补充…模板菜单
#terminal_output gfxterm
是Grub2原味原汁菜单

第一页菜单取消#
terminal_output gfxterm
是gfxterm菜单
#theme=$prefix/themes/elegant/theme.txt  
打开terminal_output gfxterm而无图档案文件时,theme.txt请关闭它,让中文字单独显现。

Grubfm_menu方式2010wadee引导菜单
http://bbs.wuyou.net/forum.php?m ... 30029&fromuid=87737

这是后学的BCD内容,K大PE、KO大PE、雷大PE等大大…总共收集二三十个PE. Wim放在 /sources,把BCD方式修改一下放在grubfm_menu、WinPE_bcd各处bcd替换,既省心省事,您处处可以不同方式看到您所要的PE,与大家分享。


懒人法启动PE,把下载PEISO放在任意分区的/PE,选项自动菜单目录/pe,就可以自选ISO启动PE,不用再动手编辑



2023-04-22_4.png (150.4 KB, 下载次数: 86)

2023-04-22_4.png

2023-04-22_3.png (416.11 KB, 下载次数: 97)

2023-04-22_3.png

2023-04-22_2.png (420.2 KB, 下载次数: 86)

2023-04-22_2.png

2023-04-22_1.png (27.74 KB, 下载次数: 95)

2023-04-22_1.png
回复

使用道具 举报

4#
 楼主| 发表于 2023-4-23 09:28:14 | 显示全部楼层
本帖最后由 chen463 于 2023-4-23 09:43 编辑
wintoflash 发表于 2023-4-23 08:48
我的grub2已经内置了uefi shell。加载shell.mod之后执行shell命令即可。

感谢W大的指导,先前好像没加入shell.mod模板,这是菜单列执行命令说明吗?小白我不太懂操作,学习之…感谢您
就是这模板一直搞不懂是甚么作用?应该加载哪个才适合?即使全部加了也不懂甚功能?慢慢摸索学习。

点评

什么是 "模板"?你是不是在说 "模块" (.mod, module)。 如果你熟悉 Linux 内核,就知道 Linux 内核有很多模块,它们有不同的功能,可以按需加载,也可以在编译的时候选择直接集成到内核中。 GRUB2 的模块也差不多  详情 回复 发表于 2023-4-23 11:05
回复

使用道具 举报

5#
 楼主| 发表于 2023-4-23 11:39:52 | 显示全部楼层
wintoflash 发表于 2023-4-23 11:05
什么是 "模板"?你是不是在说 "模块" (.mod, module)。
如果你熟悉 Linux 内核,就知道 Linux 内核有很 ...

是模块mod没错,是真的不懂
回复

使用道具 举报

6#
 楼主| 发表于 2023-4-25 08:39:26 | 显示全部楼层
本帖最后由 chen463 于 2023-4-25 08:46 编辑
langyun 发表于 2023-4-24 10:25
我有三系统:deepin,win10,和win81VHD,UEFI启动
目前是grub启动菜单,win菜单在二级菜单
怎么把wiin10 ...

没搞过这样复杂系统启动,不知道您情况如何来给建议。
把第二级相关菜单项COPY到第一级菜单项不行吗?
猜测您的WIN是启动选项排第二项,而不是启动菜单的二级菜单。

建议您提供菜单及分区现况,让大家给意见吧!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-10 12:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表