无忧启动论坛
标题: =====GRUB2_EFI&BIOS双启动===== [打印本页]
作者: 2012angelkyo 时间: 2016-3-4 02:11
标题: =====GRUB2_EFI&BIOS双启动=====
本帖最后由 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就行了。
作者: 2012angelkyo 时间: 2016-3-4 02:20
本帖最后由 2012angelkyo 于 2016-3-4 16:05 编辑
附相关文件的代码(基于grub-2.02~beta2-for-windows),能看懂的就看,看不懂就算了
EFI单文件批处理
- cd /d %~dp0
- mkdir out\boot\grub\x86_64-efi
- xcopy /s /e /y /i x86_64-efi out\boot\grub\x86_64-efi
- mkdir out\boot\grub\locale
- copy /y locale\zh_CN\grub.mo out\boot\grub\locale\zh_CN.mo
- copy /y grub.cfg out\boot\grub\grub.cfg
- mkdir out\boot\grub\fonts
- copy /y unicode.pf2 out\boot\grub\fonts
- copy /y background.png out\boot\grub\
- cd out
- find ./boot -print|cpio -o -H newc > ./memdisk.cpio
- cd ..
- 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
- @pause
- cd out
- rmdir /s /q boot
- del /s /q memdisk.cpio
复制代码 grub-bootstrap.cfg内容
- normal (memdisk)/boot/grub/grub.cfg
复制代码 grub.cfg内容,此文件在memdisk.cpio里面
- if [ "${grub_platform}" == "efi" ]; then
- if [ "${grub_cpu}" == "x86_64" ]; then
- if search -s -f /boot/grub/grub-efi-64.cfg ; then
- echo "Reading (${root})/boot/grub/grub-efi-64.cfg"
- configfile /boot/grub/grub-efi-64.cfg
- else
- echo "Could not find grub-efi-64.cfg file!"
- fi
- fi
-
- if [ "${grub_cpu}" == "i386" ]; then
- if search -s -f /boot/grub/grub-efi-32.cfg ; then
- echo "Reading (${root})/boot/grub/grub-efi-32.cfg"
- configfile /boot/grub/grub-efi-32.cfg
- else
- echo "Could not find grub-efi-32.cfg file!"
- fi
- fi
- else
- if [ "${grub_platform}" == "pc" ]; then
- if [ "${grub_cpu}" == "i386" ]; then
- if search -s -f /boot/grub/grub-bios.cfg ; then
- echo "Reading (${root})/boot/grub/grub-bios.cfg"
- configfile /boot/grub/grub-bios.cfg
- else
- echo "Could not find grub-bios.cfg file!"
- fi
- fi
- else
- echo "unknow platform!"
- fi
- fi
复制代码
find & cpio for windows
find&cpio_windows.7z
(639.09 KB, 下载次数: 340)
作者: 2012angelkyo 时间: 2016-3-4 02:26
本帖最后由 2012angelkyo 于 2016-3-4 16:03 编辑
BIOS版批处理
- cd /d %~dp0
- mkdir out\boot\grub\i386-pc
- xcopy /s /e /y /i i386-pc out\boot\grub\i386-pc
- mkdir out\boot\grub\locale
- copy /y locale\zh_CN\grub.mo out\boot\grub\locale\zh_CN.mo
- copy /y grub.cfg out\boot\grub\grub.cfg
- mkdir out\boot\grub\fonts
- copy /y unicode.pf2 out\boot\grub\fonts
- copy /y background.png out\boot\grub\
- 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
- copy /B out\boot.img + out\core.img out\g2ldr
- @pause
复制代码 执行完批处理,进入out文件里夹,用7zip手动压缩boot文件夹为memdisk.tar,然后将它放到最终成品的boot/grub/下面。
grub-bootstrap-bios.cfg内容
- search.file /boot/grub/grub-bios.cfg root
- loopback memdisk /boot/grub/memdisk.tar
- set prefix=(memdisk)/boot/grub
- insmod part_gpt
- insmod iso9660
- insmod memdisk
- insmod ext2
- insmod blocklist
- insmod echo
- insmod test
- insmod configfile
- normal (memdisk)/boot/grub/grub.cfg
复制代码
(memdisk)/boot/grub/grub.cfg内容跟EFI版一样,看楼上。。。
作者: shan 时间: 2016-3-4 09:39
顶帖子,谢谢分享技术,
作者: dfswb 时间: 2016-3-4 10:13
顶,好帖,这个版块太安静了!
作者: boy6585948 时间: 2016-3-4 11:37
LZ给力啊!!GRUB2什么时候可以跟G4D一样强大呢???
作者: 2011cwj6958 时间: 2016-3-4 13:53
先赞一个,一个与众不同的模板,目录结构简单清爽。
提个建议,BIOS版能直接引导g2ldr.mbr文件就更加方便
作者: 2012angelkyo 时间: 2016-3-4 15:01
可以啊,菜单里自己添加一个启动项呗。。。
作者: 2011cwj6958 时间: 2016-3-4 16:04
本帖最后由 2011cwj6958 于 2016-3-4 16:23 编辑
我的意思是用其他的引导比如Windows的bcd或者 Grub4DOS的grldr,直接引导g2ldr.mbr文件 换句话说就是不修改原来引导的从其他的引导环境进入grub2,
作者: 2011cwj6958 时间: 2016-3-4 16:04
我的意思是用其他的引导比如Windows的bcd或者 Grub4DOS的grldr,直接引导g2ldr.mbr文件
作者: sysop 时间: 2016-3-4 19:21
貌似不错哦
作者: 2013qiuwei0209 时间: 2016-4-8 11:19
用了下,虚拟机里面没有问题,实机测试的时候引导PE花屏!!! 又用了神雕的winly,没有出现花屏现象
作者: 2013qiuwei0209 时间: 2016-4-8 11:19
用了下,虚拟机里面没有问题,实机测试的时候引导PE花屏!!! 又用了神雕的winly,没有出现花屏现象
作者: wt5002 时间: 2016-4-17 18:23
专门注册来感谢楼主的。非常好的在windows下定制grub2的范例。
作者: wt5002 时间: 2016-4-17 18:26
实测BCD和Grub4DOS可以引导压缩包中的g2ldr.mbr
作者: wdtx 时间: 2016-4-26 13:22
谢谢提供
作者: 黎小兵 时间: 2016-4-26 16:02
我试试,老是不行啊
作者: 黎小兵 时间: 2016-4-26 16:02
我试试,老是不行啊
作者: cannibal2008 时间: 2016-4-28 19:15
这么眼熟,楼主在恩山上做的三启动软路由也是这个界面
作者: sphicf 时间: 2016-6-6 16:27
不错不错,值得学习啊!
励志故事 li96.com
作者: huxdz 时间: 2016-6-26 13:45
好多啊,哈哈,谢谢您
作者: ql1307096 时间: 2016-7-1 11:17
请教下楼主:uefi模式下grub2引导win7失败。使用chainloader (hd0,1)/efi/microsoft/boot/bootmgfw.efi,试了一下,使用grub2引导win7的bootmgfw.efi,xorboot.efi都是失败,只能引导shell.efi。然后在shell下引导win7
作者: ql1307096 时间: 2016-7-1 18:51
EFI模式使用gurb2的chainloader能启动win10吗?我的电脑启动不了,。
作者: wintoflash 时间: 2016-7-1 20:46
本帖最后由 wintoflash 于 2016-7-1 20:48 编辑
路径写错了。grub2的分区表示方法和grub4dos不一样。
应该为 (hd0,msdos2) (mbr分区表)
或者为 (hd0,gpt2) (gpt分区表)
作者: ql1307096 时间: 2016-7-1 21:14
路径没错,可以用TAB键补全,改成(hd0,gpt1)/这样的也是一样的错误。
作者: tulongwa 时间: 2016-7-3 21:11
真希望我能看懂
作者: zyy 时间: 2016-10-14 16:13
下载看看,学习中
作者: devilma 时间: 2016-10-14 16:36
作者: sdqz10 时间: 2016-10-17 10:40
您好,你的这个作品,从任何角度,是我见过最优美的!!
作者: jnax 时间: 2016-11-4 06:09
资源已经失效,楼主能否补下资源到百度盘?多谢
作者: wangqiang108 时间: 2016-11-4 17:13
能不能更新下啊?
作者: zqjiang 时间: 2016-11-11 19:22
资源已经失效
作者: jzura 时间: 2016-11-26 06:44
请楼主继续发好贴,支持你
[url=http://191568853.qzone.qq.com]重庆民间道士道法驱邪,收徒弟[/url]
作者: shugo 时间: 2016-12-16 14:11
谢谢楼主的共享
宏纳防静电地板
作者: yunyan100 时间: 2017-9-2 21:51
lz,我看上你这个东西了,本来我是有grub4dos,下过其他的,好多文件也要放入grub,所以我不太喜欢,你这个我改了批处理,不过grub2无效,我还是用回grub,因为生成放入grub文件夹里的内容少且易看,有个问题想问下,我转到了grub4ds后,再转回grub,直接在grub4dos里转到你的g2ldr.mbr是可以的,但是转这个是正确的吗?
作者: jonixchen 时间: 2017-9-16 23:18
您好,閱讀了您發的文章([发布] =====GRUB2_EFI&BIOS双启动=====),覺得棒極了,我想把它加入到我的windows7的開機選單,方便可以給我g2ldr的檔案嗎?感謝您!
作者: daier 时间: 2017-9-19 09:20
谢谢分享!
作者: wwj402 时间: 2017-11-29 19:01
有用,感谢分享!!!
作者: lm0006 时间: 2017-11-30 22:25
本帖最后由 lm0006 于 2017-11-30 22:27 编辑
感谢分享了。
马上就引导成功了,有没有加入PEwim菜单的命令
作者: xyyit 时间: 2018-7-13 08:48
试了下界面不错,uefi正常引导,legacy+gpt恢复mbr后黑屏显示grub_闪动加载不了
作者: srneutron 时间: 2019-1-17 17:00
谢谢分享
作者: dtnetclub 时间: 2019-2-27 21:48
这是什么软件的界面啊??
作者: inxiaoxi 时间: 2019-3-25 00:04
万分感谢楼主,学习了
作者: langyun 时间: 2019-11-6 09:07
这个是最新的版本吧
现在还可以用来制作启动U盘吗?
作者: langyun 时间: 2019-11-7 09:06
想要做一个GRUB2,双启动的U盘,下载了你的附件
为什么第一步就出错了
-
2012-07-26_103731.jpg
(80.8 KB, 下载次数: 257)
作者: langyun 时间: 2019-12-12 08:30
UEFI怎么启动ISO呢?
作者: ahxx 时间: 2019-12-22 23:24
这么晚才看到教程,我白注册这么早论坛了
作者: ahxx 时间: 2019-12-22 23:25
非常感谢楼主分享,🙏
作者: ge 时间: 2019-12-23 07:55
有办法将SLIC集成到里面吗?类似于XORBOOT UEFI版?
作者: wintoflash 时间: 2019-12-23 10:11
SLIC能激活win10不?
作者: ge 时间: 2019-12-23 16:08
能激活7就可以了
作者: ge 时间: 2019-12-23 16:09
经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、重启电脑,确保系统已联网,稍后就会自动激活了。你也可以在系统属性中手动点击“立即激活”。
作者: pky317 时间: 2019-12-24 22:00
有些文章提到,采用KMS方式激活win7/8的时候会去校验SLIC表,如果SLIC表完整或不存在,那么系统可以正常激活。不过有些品牌机内置了一个残缺的SLIC表,导致kms激活失败,据说win10不受影响。如果增加一个slic模块,对一些坚守win7的朋友来说是好事。
w大如果有兴趣又有时间,不妨研究一下,下面是grub4dos的SLIC补丁源码:
https://github.com/liudongmiao/grub4dos-patch
作者: wintoflash 时间: 2019-12-24 22:09
如果win8/8.1可用话我可以研究一下.
win10能用的话就更好了
作者: pky317 时间: 2019-12-24 22:27
我明天找时间装个win8.1验证一下
作者: wintoflash 时间: 2019-12-25 12:49
刚下了win8,安装上之后结果根本不会用,我还是用win7测试吧。
请教一下,slic 对win7版本有要求吗?是 VL 版本的才能激活吗?
作者: pky317 时间: 2019-12-25 13:28
对win7版本没有要求,不过还需要配合对应的数字证书和产品密钥才能激活。你可以参考一下下面的内容:
https://www.zhihu.com/question/25695388
作者: pky317 时间: 2019-12-25 14:07
如果你是测试用kms的方式激活win7,不能选旗舰版,其它版本好像都可以,专业版和企业版一定可以。
作者: pky317 时间: 2019-12-25 16:08
本帖最后由 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)
作者: pky317 时间: 2019-12-25 16:15
本帖最后由 pky317 于 2019-12-25 16:20 编辑
我没用过slic这个外部命令,也不知slic.bin是哪个厂商的,用我上传的附件中的LENOVO-2.1_CB-01.BIN替换slic.bin试试
作者: pky317 时间: 2019-12-25 17:45
刚才在Win8.1上测试kms激活系统(BIOS中的SLIC表不完整),可以顺利激活。这说明SLIC表不完整不会影响win8.1通过kms的方式激活
作者: wintoflash 时间: 2019-12-25 21:04
我也是醉了。研究了半天,发现你给我的这个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)
作者: pky317 时间: 2019-12-26 07:37
我在虚拟机中测试,grldr和loadslic.mod都正常,实机应该也可以,或者你上传一个64位uefi的模块,我实机测试一下
作者: pky317 时间: 2019-12-26 07:56
你可以用附件的SLIC ToolKit.exe检测一下SLIC是否模拟成功,如果检测到只有一个SLIC表(有两个会出现提示的,起作用的是第一个),而系统已安装与第一个SLIC对应的证书和产品密钥,那么肯定可以正常激活的
SLIC ToolKit.7z
(329.12 KB, 下载次数: 12)
作者: wintoflash 时间: 2019-12-26 10:59
本帖最后由 wintoflash 于 2019-12-26 12:12 编辑
uefi和bios下修改acpi表的方式不同,要另外写代码,不能直接编译。
既然在你的电脑上成功了,那就好。请再测试一下用acpi命令加载slic,看看能不能成功。根据代码,acpi命令和loadslic的原理差不多。
另外请问win7怎么改成uefi启动?
vmware的uefi好像没有csm。我用了vgashim,卡在 starting windows ...上了
作者: pky317 时间: 2019-12-26 13:09
用acpi命令加载slic会提示验证失败,系统无法激活
用vgashim好像还需要对显卡驱动进行处理的,我没试过,我是在实机上将win7安装到vhd中的,因为硬盘是GPT格式,只能使用uefi引导。如果主板可以开启CSM和关闭Secure Boot,那么利用WinNTSetup将win7安装到vhd中,再用BOOTICE修改BCD添加一项vhd引导即可,如果主板不支持就没办法。或者你改好后传上来让大家帮忙测试
作者: pky317 时间: 2019-12-26 15:02
测试uefi模块不必装win7,win10也可以,只需在grub下加载slic,然后进入win10,用SLIC ToolKit查看,如果模拟的slic表正常,就成功了
作者: wintoflash 时间: 2019-12-26 20:16
现在不再用单独的loadslic模块了,我修改了acpi模块,加 --slic 参数。
用 acpi --slic /dell.bin
测试 uefi 下可以识别,bios下也可以。
http://bbs.wuyou.net/forum.php?m ... d=418141&extra=
作者: 深谷憂狼 时间: 2020-4-19 00:11
看起来好漂亮
作者: 蓝星明月 时间: 2020-7-1 20:14
谢谢!!!
作者: dawnstar 时间: 2020-11-20 10:14
赞一个。。。
作者: dawnstar 时间: 2020-11-21 16:09
请教一下,你这个grub有没有办法像江南一根葱那样的有列出电脑硬盘里面的iso、wim和img等功能,还有像文件管理器那样子,可以自由选择。
作者: 寒冰YE 时间: 2023-5-5 21:13
grldr文件乱码!!!
作者: bjaxiong 时间: 2023-5-7 22:22
有现成的压缩包,赞一个!最近想搞一搞grub
欢迎光临 无忧启动论坛 (http://wuyou.net/) |
Powered by Discuz! X3.3 |