无忧启动论坛

标题: 【自用】在linux下一键编译uefi下的grub2,含所有模块 [打印本页]

作者: ql1307096    时间: 2021-11-23 17:08
标题: 【自用】在linux下一键编译uefi下的grub2,含所有模块
在debian11下编译制作,
grub2-efi目录放到任意分区根目录下,默认菜单为根目录下的/grub2-efi/grub.cfg
grub2-efi.efi已包含所有模块及中文字体。


grub2-efi.rar (1.79 MB, 下载次数: 110)

贴上打渔的方法:
将以下代码存储为mk.sh
  1. #!/bin/sh
  2. current_dir=$(cd `dirname $0`; pwd)
  3. mkdir -p /tmp/boot/grub/x86_64-efi
  4. export ulg=/usr/lib/grub
  5. export bg=/boot/grub
  6. export temp=/tmp/boot/grub
  7. cd $ulg/x86_64-efi
  8. cp *.lst *.img *.mod $temp/x86_64-efi/
  9. mkdir $temp/locale
  10. cp $bg/locale/zh_CN.mo $temp/locale/zh_CN.mo
  11. mkdir $temp/fonts
  12. cp $bg/fonts/unicode.pf2 $temp/fonts/
  13. gzip -9 $temp/fonts/unicode.pf2
  14. echo 'if search -s -f /grub2-efi/grub.cfg ; then' >> $temp/grub.cfg
  15. echo ' configfile /grub2-efi/grub.cfg' >> $temp/grub.cfg
  16. echo 'else' >> $temp/grub.cfg
  17. echo ' echo "Could not find (${root})/grub2-efi/grub.cfg file!"' >> $temp/grub.cfg
  18. echo 'fi' >> $temp/grub.cfg
  19. echo 'normal (memdisk)/boot/grub/grub.cfg' >>$ulg/x86_64-efi/grub-bootstrap.cfg
  20. cd /tmp
  21. find boot | cpio -o -H newc > $ulg/x86_64-efi/memdisk.cpio
  22. cd $ulg/x86_64-efi
  23. grub-mkimage -O x86_64-efi -d . -o grub2-efi.efi -m memdisk.cpio -p '(memdisk)/boot/grub' -v newc iso9660 part_msdos part_gpt ext2 cpio memdisk blocklist minicmd loopback fat ntfs gfxterm reboot configfile normal echo test gfxmenu gfxterm search gzio
  24. chmod 666 grub2-efi.efi
  25. mv grub2-efi.efi $current_dir/grub2-efi.efi
  26. rm memdisk.cpio grub-bootstrap.cfg
  27. rm -rf /tmp/boot
  28. echo "生成的grub2-efi.efi在脚本运行目录下"
复制代码
在linux下执行脚本,即可生成grub2-efi.efi文件,

作者: lily9718    时间: 2021-11-24 06:05
谢谢分享
作者: 进士小站    时间: 2021-11-24 10:27
这个做多功能启动菜单更有用吧
作者: liuzhaoyzz    时间: 2021-12-4 20:44
你这个应该叫做定制grub2,而不应该叫做编译grub2。
作者: ql1307096    时间: 2021-12-15 09:09
liuzhaoyzz 发表于 2021-12-4 20:44
你这个应该叫做定制grub2,而不应该叫做编译grub2。

调用了grub-mkimage,叫编译或者定制随意吧
作者: 688022    时间: 2021-12-18 09:32
分享快乐




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