无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5673|回复: 8

[教程] 又折腾了一下grub2 ,所有模块打包到单个grub2.efi【20171126】

[复制链接]
发表于 2017-11-26 19:02:57 | 显示全部楼层 |阅读模式
本帖最后由 2011895866818 于 2017-11-26 19:15 编辑

└─boot
    └─grub
        │  intern.cfg
        │  embed.cfg
        │
        ├─fonts
        │      unicode.pf2
        │
        ├─locale
        │      en_CA.mo
        │      en_GB.mo
        │      en@quot.mo
        │      en_AU.mo
        │      zh_CN.mo
        │
        └─x86_64-efi
                boot.mod
                odc.mod
                lvm.mod
                …………

所有子模块都可以包含到x86_64-efi目录
引导grub2.efi后这个目录,会自动挂载到  (memdisk)

在boot的同级目录打包
tar -cvf ../md.tar boot/
然后
cd  ..

grub-mkimage --directory '/usr/lib/grub/x86_64-efi' --prefix '(memdisk)/boot/grub' --output 'grub2allx86_64.efi' --format 'x86_64-efi' --compression 'auto'  --memdisk 'md.tar' 'memdisk' 'tar' -c mods/boot/grub/embed.cfg -v

就得到了:grub2allx86_64.efi  【附件】

embed.cfg 嵌入到core里面, 这个(memdisk)/boot/grub/embed.cfg是放在这里方便查看的

  1. set prefix=(memdisk)/boot/grub
  2. insmod normal
  3. normal (memdisk)/boot/grub/intern.cfg
复制代码

这里用normal加载cfg非常重要,不然后面的菜单有问题,内嵌菜单执行的时候,还没有进入normal模式,
无法处理菜单条目,很多命令无法调用,等等

intern.cfg 直接放在(memdisk)/boot/grub

  1. #20171126 tick v3.1
  2. #分辨率,字体
  3. font=unicode
  4. if loadfont $font ; then
  5.   set gfxmode=auto
  6.   insmod all_video
  7.   insmod gfxterm
  8.   set locale_dir=$prefix/locale
  9.   set lang=zh_CN
  10.   insmod gettext
  11. fi
  12. terminal_output console
  13. terminal_output gfxterm
  14. #隐藏内置菜单,颜色设置
  15. set timeout_style=hidden
  16. set timeout=0
  17. set menu_color_normal=white/black
  18. set menu_color_highlight=black/light-gray
  19. if background_color 44,0,30,0; then
  20.   clear
  21. fi
  22. #分区支持
  23. insmod part_gpt
  24. insmod fat
  25. insmod ntfs
  26. insmod gzio
  27. insmod part_gpt
  28. insmod ext2
  29. #加载外部菜单
  30. menuentry 'Find grub.cfg'   {

  31.         #search --no-floppy --file --set=root  /grub.cfg
  32.         #configfile /grub.cfg

  33.         #search --no-floppy --file --set=root  /boot/grub.cfg
  34.         #configfile /boot/grub.cfg

  35.         search --no-floppy --file --set=root  /grub/grub.cfg
  36.         configfile /grub/grub.cfg

  37.         search --no-floppy --file --set=root  /boot/grub/grub.cfg
  38.         configfile /boot/grub/grub.cfg
  39. }
复制代码



grub2-my-v03.rar (1.47 MB, 下载次数: 310)
发表于 2017-11-26 20:30:24 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

发表于 2017-11-27 07:50:45 | 显示全部楼层
是哪个版本打包的?

点评

grub_version="2.02~beta3"  详情 回复 发表于 2017-11-27 10:49
ubuntu 17.10 , 64位  发表于 2017-11-27 10:47
回复

使用道具 举报

 楼主| 发表于 2017-11-27 10:49:48 | 显示全部楼层
devilma 发表于 2017-11-27 07:50
是哪个版本打包的?

grub_version="2.02~beta3"
回复

使用道具 举报

发表于 2017-12-17 13:20:53 | 显示全部楼层
试试看,谢谢。。。
回复

使用道具 举报

发表于 2017-12-24 19:44:50 | 显示全部楼层
回复

使用道具 举报

发表于 2018-3-16 16:49:21 | 显示全部楼层
ubuntu这个是可以在安全模式下启动的曲?
回复

使用道具 举报

发表于 2018-5-6 15:19:07 来自手机 | 显示全部楼层
grub2的编辑真是太麻烦了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 20:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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