无忧启动论坛

 找回密码
 注册
搜索

=====GRUB2_EFI&BIOS双启动=====

查看数: 16097 | 评论数: 46 | 收藏 62
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-3-4 02:11

正文摘要:

本帖最后由 2012angelkyo 于 2016-11-26 22:44 编辑 链接:http://pan.baidu.com/s/1i56ZIz7 密码:vcts

回复

2012angelkyo 发表于 2016-3-4 02:20:53
本帖最后由 2012angelkyo 于 2016-3-4 16:05 编辑

附相关文件的代码(基于grub-2.02~beta2-for-windows),能看懂的就看,看不懂就算了
EFI单文件批处理

  1. cd /d %~dp0
  2. mkdir out\boot\grub\x86_64-efi
  3. xcopy /s /e /y /i x86_64-efi out\boot\grub\x86_64-efi

  4. mkdir out\boot\grub\locale
  5. copy /y locale\zh_CN\grub.mo out\boot\grub\locale\zh_CN.mo
  6. copy /y grub.cfg out\boot\grub\grub.cfg

  7. mkdir out\boot\grub\fonts
  8. copy /y unicode.pf2  out\boot\grub\fonts
  9. copy /y background.png out\boot\grub\

  10. cd out
  11. find ./boot -print|cpio -o -H newc > ./memdisk.cpio
  12. cd ..
  13. grub-mkimage.exe -m out\memdisk.cpio -d out\boot\grub\x86_64-efi -c out\grub-bootstrap.cfg -p (memdisk)/boot/grub -O x86_64-efi -o .\out\bootx64.efi -v newc iso9660 part_msdos part_gpt ext2 cpio memdisk blocklist minicmd loopback fat ntfs gfxterm reboot configfile normal echo test gfxmenu gfxterm search

  14. @pause
  15. cd out
  16. rmdir /s /q boot
  17. del /s /q memdisk.cpio
复制代码
grub-bootstrap.cfg内容
  1. normal (memdisk)/boot/grub/grub.cfg
复制代码
grub.cfg内容,此文件在memdisk.cpio里面
  1. if [ "${grub_platform}" == "efi" ]; then
  2.         if [ "${grub_cpu}" == "x86_64" ]; then
  3.                 if        search -s -f /boot/grub/grub-efi-64.cfg ; then
  4.                         echo "Reading (${root})/boot/grub/grub-efi-64.cfg"
  5.                         configfile /boot/grub/grub-efi-64.cfg
  6.                 else
  7.                         echo "Could not find grub-efi-64.cfg file!"
  8.                 fi
  9.         fi
  10.         
  11.         if [ "${grub_cpu}" == "i386" ]; then
  12.                 if        search -s -f /boot/grub/grub-efi-32.cfg ; then
  13.                         echo "Reading (${root})/boot/grub/grub-efi-32.cfg"
  14.                         configfile /boot/grub/grub-efi-32.cfg
  15.                 else
  16.                         echo "Could not find grub-efi-32.cfg file!"
  17.                 fi
  18.         fi
  19. else
  20.         if [ "${grub_platform}" == "pc" ]; then
  21.                 if [ "${grub_cpu}" == "i386" ]; then
  22.                         if        search -s -f /boot/grub/grub-bios.cfg ; then
  23.                                 echo "Reading (${root})/boot/grub/grub-bios.cfg"
  24.                                 configfile /boot/grub/grub-bios.cfg
  25.                         else
  26.                                 echo "Could not find grub-bios.cfg file!"
  27.                         fi
  28.                 fi
  29.         else
  30.                 echo "unknow platform!"
  31.         fi
  32. fi
复制代码

find & cpio  for windows
find&amp;cpio_windows.7z (639.09 KB, 下载次数: 231)

点评

不错,学习了!  发表于 2016-7-1 11:15

评分

参与人数 1无忧币 +5 收起 理由
ql1307096 + 5 很给力!

查看全部评分

jzura 发表于 2016-11-26 06:44:45
2012angelkyo 发表于 2016-3-4 15:01:21
2011cwj6958 发表于 2016-3-4 13:53
先赞一个,一个与众不同的模板,目录结构简单清爽。
提个建议,BIOS版能直接引导g2ldr.mbr文件就更加方便

可以啊,菜单里自己添加一个启动项呗。。。

点评

我的意思是用其他的引导比如Windows的bcd或者 Grub4DOS的grldr,直接引导g2ldr.mbr文件  详情 回复 发表于 2016-3-4 16:04
2011cwj6958 发表于 2016-3-4 13:53:16
先赞一个,一个与众不同的模板,目录结构简单清爽。
提个建议,BIOS版能直接引导g2ldr.mbr文件就更加方便

点评

可以啊,菜单里自己添加一个启动项呗。。。  详情 回复 发表于 2016-3-4 15:01
boy6585948 发表于 2016-3-4 11:37:43
LZ给力啊!!GRUB2什么时候可以跟G4D一样强大呢???
dfswb 发表于 2016-3-4 10:13:39
顶,好帖,这个版块太安静了!
shan 发表于 2016-3-4 09:39:40
顶帖子,谢谢分享技术,
2012angelkyo 发表于 2016-3-4 02:26:21
本帖最后由 2012angelkyo 于 2016-3-4 16:03 编辑

BIOS版批处理
  1. cd /d %~dp0

  2. mkdir out\boot\grub\i386-pc
  3. xcopy /s /e /y /i i386-pc out\boot\grub\i386-pc

  4. mkdir out\boot\grub\locale
  5. copy /y locale\zh_CN\grub.mo out\boot\grub\locale\zh_CN.mo
  6. copy /y grub.cfg out\boot\grub\grub.cfg

  7. mkdir out\boot\grub\fonts
  8. copy /y unicode.pf2  out\boot\grub\fonts
  9. copy /y background.png out\boot\grub\


  10. grub-mkimage.exe -d i386-pc -C auto -c out\grub-bootstrap-bios.cfg -p /boot/grub -o .\out\core.img -O i386-pc -v biosdisk loopback tar part_msdos fat exfat ntfs search_fs_file

  11. copy /B out\boot.img + out\core.img out\g2ldr

  12. @pause
复制代码
执行完批处理,进入out文件里夹,用7zip手动压缩boot文件夹为memdisk.tar,然后将它放到最终成品的boot/grub/下面。

grub-bootstrap-bios.cfg内容
  1. search.file /boot/grub/grub-bios.cfg root
  2. loopback memdisk /boot/grub/memdisk.tar
  3. set prefix=(memdisk)/boot/grub
  4. insmod part_gpt
  5. insmod iso9660
  6. insmod memdisk
  7. insmod ext2
  8. insmod blocklist
  9. insmod echo
  10. insmod test
  11. insmod configfile
  12. normal (memdisk)/boot/grub/grub.cfg
复制代码

(memdisk)/boot/grub/grub.cfg内容跟EFI版一样,看楼上。。。



inxiaoxi 发表于 2019-3-25 00:04:29
万分感谢楼主,学习了
dtnetclub 发表于 2019-2-27 21:48:22

这是什么软件的界面啊??
srneutron 发表于 2019-1-17 17:00:33
谢谢分享
xyyit 发表于 2018-7-13 08:48:23
试了下界面不错,uefi正常引导,legacy+gpt恢复mbr后黑屏显示grub_闪动加载不了
lm0006 发表于 2017-11-30 22:25:50
本帖最后由 lm0006 于 2017-11-30 22:27 编辑

感谢分享了。
马上就引导成功了,有没有加入PEwim菜单的命令
wwj402 发表于 2017-11-29 19:01:36
有用,感谢分享!!!
daier 发表于 2017-9-19 09:20:52
谢谢分享!
jonixchen 发表于 2017-9-16 23:18:21
您好,閱讀了您發的文章([发布] =====GRUB2_EFI&BIOS双启动=====),覺得棒極了,我想把它加入到我的windows7的開機選單,方便可以給我g2ldr的檔案嗎?感謝您!
yunyan100 发表于 2017-9-2 21:51:51
lz,我看上你这个东西了,本来我是有grub4dos,下过其他的,好多文件也要放入grub,所以我不太喜欢,你这个我改了批处理,不过grub2无效,我还是用回grub,因为生成放入grub文件夹里的内容少且易看,有个问题想问下,我转到了grub4ds后,再转回grub,直接在grub4dos里转到你的g2ldr.mbr是可以的,但是转这个是正确的吗?

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

闽公网安备 35020302032614号

GMT+8, 2019-6-25 20:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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