无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 52679|回复: 76
打印 上一主题 下一主题

[发布] =====GRUB2_EFI&BIOS双启动=====

    [复制链接]
跳转到指定楼层
#
发表于 2016-3-4 02:11:06 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 2012angelkyo 于 2016-11-26 22:44 编辑


grub2 EFI
和BIOS双启动制作说明:
1.首先格式化需要制作成双启动磁盘的第一个分区为FAT32格式
2.然后打开Bootice,选择好磁盘后,点主引导记录—恢复—选择恢复文件g2ldr.mbr,点击恢复。.

为以防万一,恢复之前可先备份一下:

3.复制压缩包里的2个文件夹到第一步所格式化的那个分区里。

4.制作完成。
对于BIOS已经可以启动GRUB2了,BIOS的菜单文件为\boot\grub\grub-bios.cfg
用Notepad++打开自行修改添加你的启动项,不懂的请自行百度
不要用Windows的文本编辑它,会改变它的编码,那就无法启动了。
对于UEFI主板,只需要把EFI文件夹放到EFI分区里,然后用Bootice添加一个启动项。
首先用CMD命令行(管理员权限)的diskpart命令挂载你的EFI分区,如何挂载自行百度。
然后:

Done.
目录结构说明

目录名,文件名,请不要乱改。
你能改的只能是grub-bios.cfg这个菜单的内容。这是BIOS主板的启动菜单。
grub-efi-64.cfg,这是UEFI主板的启动菜单。
重要的事情再说一遍,请用Notepad++修改它们的内容,添加你的启动项。
你下载的主题包,解压后的文件夹,放在/boot/grub/themes下面,然后修改启动菜单就能就能更换主题了。

比如你下载的主题解压后文件夹名字为StylishDark,那么只需要将上图箭头部份的Vimix修改为StylishDark就行了。
链接:http://pan.baidu.com/s/1i56ZIz7 密码:vcts



评分

参与人数 5无忧币 +25 收起 理由
wuxin9712 + 5
某些人 + 5 赞一个!
有阴也有阳 + 5 很给力!
2011cwj6958 + 5 赞一个!
shan + 5 很给力! 谢谢分享

查看全部评分

推荐
 楼主| 发表于 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&cpio_windows.7z (639.09 KB, 下载次数: 340)




评分

参与人数 2无忧币 +10 收起 理由
2011cwj6958 + 5 很给力!
ql1307096 + 5 很给力!

查看全部评分

回复

使用道具 举报

推荐
发表于 2016-11-26 06:44:45 | 只看该作者
回复

使用道具 举报

推荐
 楼主| 发表于 2016-3-4 15:01:21 | 只看该作者
2011cwj6958 发表于 2016-3-4 13:53
先赞一个,一个与众不同的模板,目录结构简单清爽。
提个建议,BIOS版能直接引导g2ldr.mbr文件就更加方便

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

使用道具 举报

推荐
发表于 2016-3-4 13:53:16 | 只看该作者
先赞一个,一个与众不同的模板,目录结构简单清爽。
提个建议,BIOS版能直接引导g2ldr.mbr文件就更加方便
回复

使用道具 举报

推荐
发表于 2016-3-4 11:37:43 | 只看该作者
LZ给力啊!!GRUB2什么时候可以跟G4D一样强大呢???
回复

使用道具 举报

推荐
发表于 2016-3-4 10:13:39 | 只看该作者
顶,好帖,这个版块太安静了!
回复

使用道具 举报

推荐
发表于 2016-3-4 09:39:40 | 只看该作者
顶帖子,谢谢分享技术,
回复

使用道具 举报

推荐
 楼主| 发表于 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版一样,看楼上。。。



回复

使用道具 举报

65#
发表于 2023-5-7 22:22:24 | 只看该作者
有现成的压缩包,赞一个!最近想搞一搞grub
回复

使用道具 举报

64#
发表于 2023-5-5 21:13:50 | 只看该作者
grldr文件乱码!!!
回复

使用道具 举报

63#
发表于 2020-11-21 16:09:40 来自手机 | 只看该作者
请教一下,你这个grub有没有办法像江南一根葱那样的有列出电脑硬盘里面的iso、wim和img等功能,还有像文件管理器那样子,可以自由选择。
回复

使用道具 举报

62#
发表于 2020-11-20 10:14:56 来自手机 | 只看该作者
赞一个。。。
回复

使用道具 举报

61#
发表于 2020-7-1 20:14:29 | 只看该作者
谢谢!!!
回复

使用道具 举报

60#
发表于 2020-4-19 00:11:34 | 只看该作者
看起来好漂亮
回复

使用道具 举报

59#
发表于 2019-12-26 20:16:03 | 只看该作者
pky317 发表于 2019-12-26 15:02
测试uefi模块不必装win7,win10也可以,只需在grub下加载slic,然后进入win10,用SLIC ToolKit查看,如果 ...

现在不再用单独的loadslic模块了,我修改了acpi模块,加 --slic 参数。
用 acpi --slic /dell.bin
测试 uefi 下可以识别,bios下也可以。

http://bbs.wuyou.net/forum.php?m ... d=418141&extra=


回复

使用道具 举报

58#
发表于 2019-12-26 15:02:25 | 只看该作者
wintoflash 发表于 2019-12-26 10:59
uefi和bios下修改acpi表的方式不同,要另外写代码,不能直接编译。
既然在你的电脑上成功了,那就好。请 ...

测试uefi模块不必装win7,win10也可以,只需在grub下加载slic,然后进入win10,用SLIC ToolKit查看,如果模拟的slic表正常,就成功了
回复

使用道具 举报

57#
发表于 2019-12-26 13:09:20 | 只看该作者
wintoflash 发表于 2019-12-26 10:59
uefi和bios下修改acpi表的方式不同,要另外写代码,不能直接编译。
既然在你的电脑上成功了,那就好。请 ...

用acpi命令加载slic会提示验证失败,系统无法激活




用vgashim好像还需要对显卡驱动进行处理的,我没试过,我是在实机上将win7安装到vhd中的,因为硬盘是GPT格式,只能使用uefi引导。如果主板可以开启CSM和关闭Secure Boot,那么利用WinNTSetup将win7安装到vhd中,再用BOOTICE修改BCD添加一项vhd引导即可,如果主板不支持就没办法。或者你改好后传上来让大家帮忙测试
回复

使用道具 举报

56#
发表于 2019-12-26 10:59:22 | 只看该作者
本帖最后由 wintoflash 于 2019-12-26 12:12 编辑
pky317 发表于 2019-12-26 07:37
我在虚拟机中测试,grldr和loadslic.mod都正常,实机应该也可以,或者你上传一个64位uefi的模块,我实机 ...

uefi和bios下修改acpi表的方式不同,要另外写代码,不能直接编译。
既然在你的电脑上成功了,那就好。请再测试一下用acpi命令加载slic,看看能不能成功。根据代码,acpi命令和loadslic的原理差不多。

另外请问win7怎么改成uefi启动?
vmware的uefi好像没有csm。我用了vgashim,卡在 starting windows ...上了


点评

测试uefi模块不必装win7,win10也可以,只需在grub下加载slic,然后进入win10,用SLIC ToolKit查看,如果模拟的slic表正常,就成功了  详情 回复 发表于 2019-12-26 15:02
用acpi命令加载slic会提示验证失败,系统无法激活 [attachimg]407984[/attachimg] [attachimg]407985[/attachimg] 用vgashim好像还需要对显卡驱动进行处理的,我没试过,我是在实机上将win7安装到vhd中的,因  详情 回复 发表于 2019-12-26 13:09
回复

使用道具 举报

55#
发表于 2019-12-26 07:56:43 | 只看该作者
wintoflash 发表于 2019-12-25 21:04
我也是醉了。研究了半天,发现你给我的这个loadslic源码好像没效果。
把这个补丁打到grub4dos上,用load ...

你可以用附件的SLIC ToolKit.exe检测一下SLIC是否模拟成功,如果检测到只有一个SLIC表(有两个会出现提示的,起作用的是第一个),而系统已安装与第一个SLIC对应的证书和产品密钥,那么肯定可以正常激活的




SLIC ToolKit.7z (329.12 KB, 下载次数: 12)

回复

使用道具 举报

54#
发表于 2019-12-26 07:37:08 | 只看该作者
wintoflash 发表于 2019-12-25 21:04
我也是醉了。研究了半天,发现你给我的这个loadslic源码好像没效果。
把这个补丁打到grub4dos上,用load ...

我在虚拟机中测试,grldr和loadslic.mod都正常,实机应该也可以,或者你上传一个64位uefi的模块,我实机测试一下
回复

使用道具 举报

53#
发表于 2019-12-25 21:04:51 | 只看该作者
pky317 发表于 2019-12-25 16:15
我没用过slic这个外部命令,也不知slic.bin是哪个厂商的,用我上传的附件中的LENOVO-2.1_CB-01.BIN替换sl ...

我也是醉了。研究了半天,发现你给我的这个loadslic源码好像没效果。
把这个补丁打到grub4dos上,用loadslic命令照样不能激活。



作为对比,用slic外部命令可以正常激活。

dell.tar.gz (2.03 KB, 下载次数: 5)
grldr.tar.gz (163.28 KB, 下载次数: 4)
所以移植的模块也没用

loadslic.tar.gz (2.54 KB, 下载次数: 5)

点评

你可以用附件的SLIC ToolKit.exe检测一下SLIC是否模拟成功,如果检测到只有一个SLIC表(有两个会出现提示的,起作用的是第一个),而系统已安装与第一个SLIC对应的证书和产品密钥,那么肯定可以正常激活的  详情 回复 发表于 2019-12-26 07:56
我在虚拟机中测试,grldr和loadslic.mod都正常,实机应该也可以,或者你上传一个64位uefi的模块,我实机测试一下  详情 回复 发表于 2019-12-26 07:37
回复

使用道具 举报

52#
发表于 2019-12-25 17:45:37 | 只看该作者
刚才在Win8.1上测试kms激活系统(BIOS中的SLIC表不完整),可以顺利激活。这说明SLIC表不完整不会影响win8.1通过kms的方式激活
回复

使用道具 举报

51#
发表于 2019-12-25 16:15:35 | 只看该作者
本帖最后由 pky317 于 2019-12-25 16:20 编辑
wintoflash 发表于 2019-12-25 12:49
刚下了win8,安装上之后结果根本不会用,我还是用win7测试吧。
请教一下,slic 对win7版本有要 ...

我没用过slic这个外部命令,也不知slic.bin是哪个厂商的,用我上传的附件中的LENOVO-2.1_CB-01.BIN替换slic.bin试试
回复

使用道具 举报

50#
发表于 2019-12-25 16:08:16 | 只看该作者
本帖最后由 pky317 于 2019-12-25 16:28 编辑

slic.bin的大小应该是374字节,用winhex打开这个文件在前面两行可以看到是哪个电脑品牌的SLIC表,然后在win7下导入对应厂家的数字证书和产品密钥即可激活系统。附件是联想的SLIC和证书(把LENOVO-2.1_CB-01.BIN替换slic.bin),以管理员身份运行CMD,执行下面命令:
slmgr /ilc LENOVO-2.1.XRM-MS
slmgr /ipk 6K2KY-BFH24-PJW6W-9GK29-TMPWP
即可激活系统,可能需要重启
联想的SLIC和证书.7z (2.12 KB, 下载次数: 10)
回复

使用道具 举报

49#
发表于 2019-12-25 14:07:22 | 只看该作者
wintoflash 发表于 2019-12-25 12:49
刚下了win8,安装上之后结果根本不会用,我还是用win7测试吧。
请教一下,slic 对win7版本有要 ...

如果你是测试用kms的方式激活win7,不能选旗舰版,其它版本好像都可以,专业版和企业版一定可以。
回复

使用道具 举报

48#
发表于 2019-12-25 13:28:53 | 只看该作者
wintoflash 发表于 2019-12-25 12:49
刚下了win8,安装上之后结果根本不会用,我还是用win7测试吧。
请教一下,slic 对win7版本有要 ...

对win7版本没有要求,不过还需要配合对应的数字证书和产品密钥才能激活。你可以参考一下下面的内容:
https://www.zhihu.com/question/25695388
回复

使用道具 举报

47#
发表于 2019-12-25 12:49:44 | 只看该作者
pky317 发表于 2019-12-24 22:27
我明天找时间装个win8.1验证一下

刚下了win8,安装上之后结果根本不会用,我还是用win7测试吧。
请教一下,slic 对win7版本有要求吗?是 VL 版本的才能激活吗?

回复

使用道具 举报

46#
发表于 2019-12-24 22:27:08 | 只看该作者
wintoflash 发表于 2019-12-24 22:09
如果win8/8.1可用话我可以研究一下.
win10能用的话就更好了

我明天找时间装个win8.1验证一下
回复

使用道具 举报

45#
发表于 2019-12-24 22:09:52 | 只看该作者
pky317 发表于 2019-12-24 22:00
有些文章提到,采用KMS方式激活win7/8的时候会去校验SLIC表,如果SLIC表完整或不存在,那么系统可以正常 ...

如果win8/8.1可用话我可以研究一下.
win10能用的话就更好了
回复

使用道具 举报

44#
发表于 2019-12-24 22:00:03 | 只看该作者

有些文章提到,采用KMS方式激活win7/8的时候会去校验SLIC表,如果SLIC表完整或不存在,那么系统可以正常激活。不过有些品牌机内置了一个残缺的SLIC表,导致kms激活失败,据说win10不受影响。如果增加一个slic模块,对一些坚守win7的朋友来说是好事。
w大如果有兴趣又有时间,不妨研究一下,下面是grub4dos的SLIC补丁源码:
https://github.com/liudongmiao/grub4dos-patch
回复

使用道具 举报

43#
发表于 2019-12-23 16:09:53 | 只看该作者

经IT之家探索测试后,发现了以下可行的方法。有此需求的朋友们可以参考下面的方法来操作:
1、在你正在使用的Win7/Win8.1系统中(注意,要确保系统已经激活)打开下载的Win10 ISO镜像,在Sources文件夹中找到gatherosstate.exe程序,把它复制到桌面。
提示:Win7系统下可使用魔方虚拟光驱(点此下载)打开ISO镜像。
2、双击gatherosstate.exe,稍后会在桌面生成名为GenuineTicket.xml的文件(名字翻译过来就是“正版通行证”),这份文件至关重要,把它保存好。
3、然后用你熟悉的安装方法安装Win10吧。U盘法、硬盘法、光盘法,随你选。但要注意一定要确保安装前后系统版本相对应,参考《Win10正式版版本这么多,我到底该下载哪一个?》。安装过程中跳过一切密钥输入步骤。
4、安装完成后,打开C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket文件夹(注意ProgramData为隐藏文件夹),然后把保存的GenuineTicket.xml文件复制到这个目录中。
5、重启电脑,确保系统已联网,稍后就会自动激活了。你也可以在系统属性中手动点击“立即激活”。
回复

使用道具 举报

42#
发表于 2019-12-23 16:08:57 | 只看该作者

能激活7就可以了
回复

使用道具 举报

41#
发表于 2019-12-23 10:11:47 | 只看该作者
ge 发表于 2019-12-23 07:55
有办法将SLIC集成到里面吗?类似于XORBOOT UEFI版?

SLIC能激活win10不?
回复

使用道具 举报

40#
发表于 2019-12-23 07:55:33 | 只看该作者
有办法将SLIC集成到里面吗?类似于XORBOOT UEFI版?
回复

使用道具 举报

39#
发表于 2019-12-22 23:25:00 | 只看该作者
非常感谢楼主分享,🙏
回复

使用道具 举报

38#
发表于 2019-12-22 23:24:49 | 只看该作者
这么晚才看到教程,我白注册这么早论坛了
回复

使用道具 举报

37#
发表于 2019-12-12 08:30:11 | 只看该作者
UEFI怎么启动ISO呢?
回复

使用道具 举报

36#
发表于 2019-11-7 09:06:06 | 只看该作者
想要做一个GRUB2,双启动的U盘,下载了你的附件
为什么第一步就出错了

2012-07-26_103731.jpg (80.8 KB, 下载次数: 259)

2012-07-26_103731.jpg
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 07:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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