无忧启动论坛

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

[原创] Grub2启动盘的制作,支持BIOS和UEFI哦.....

    [复制链接]
发表于 2013-6-17 03:16:30 | 显示全部楼层 |阅读模式
本帖最后由 2011hiboy 于 2014-8-20 21:20 编辑

2011hiboy全部共享资料:立刻去  提取码 0da0

聊几句闲话:
这个帖子在grub2区发表是不是比较好呢?  呵呵,不管了,先在UEFI区发吧...
Grub2引导有不少人是会的,但是教程还是比较少的,也很少有教制作Grub2的合盘的,我大约是上个月完成引导方面和部分菜单的制作的,但是因为各种事耽误到现在才发布...
会制作Grub2合盘的话,那么以后启动电脑就方便了,多系统,不管是BIOS系统还是UEFI系统都可以通过Grub2管理了,挺方便的....



Grub2正文部分(想DIY的仔细看)
Grub2引导是可以定制的,建议下载ubuntu-13.04然后VMware虚拟机安装,然后使用 “grub-mkimage” 定制(n多过程需自行摸索,我下发提供点命令帮助哦..)。

提供bootconfig.cfg写法(放置于HOME文件夹):
search.file /boot/grub/grub.cfg root
set prefix=($root)/boot/grub/

提供g2ldr生成命令写法:
sudo grub-mkimage -d /boot/grub/i386-pc -c bootconfig.cfg -o core.img -O i386-pc biosdisk part_msdos fat exfat ntfs ext2 iso9660 udf configfile search help  reiserfs font linux chain
sudo cat /boot/grub/i386-pc/lnxboot.img core.img > g2ldr


我把自定义Grub2的步骤简单说一下:
bootconfig.cfg这个文件中的路径就是你能够自定义的。
而之后的g2ldr、g2ldr.mbr都由2部分组成:bootconfig.cfg+必要的模块。
我上面给出的命令包含了这两个部分。当然完成这些操作的环境是:ubuntu-13.04



我做好的成品合盘:

这是传统BIOS的Grub2合盘,简单的放置了2个DOS工具。之后的命令大家多多完善啊,我个人精力是有限的...
sa.jpg


这是UEFI启动菜单,里面有启动efi文件的写法,大家照抄就可以了,这样就可以启动任意efi了...挺好使的
as.jpg



下载使用:

PMF镜像包:
点击下载
::1、用Diskgenius 4.3 还原镜像文件到分区(UEFI恢复完毕即可使用)
::2、
BIOS模块主引导
  使用BOOTICE--->选择目标磁盘--->主引导记录--->恢复MBR--->选择g2ldr.mbr 恢复即可。
::3、完成制作


ZIP压缩包:点击下载
::1、了能够让UEFI支持请解压到FAT/FAT32分区
::2、
BIOS模块主引导
  使用BOOTICE--->选择目标磁盘--->主引导记录--->恢复MBR--->选择g2ldr.mbr 恢复即可。
::3、完成制作


ISO启动镜像(基于Grub2,BIOS、UEFI双支持):点击下载
::供欣赏和制作参考


注意:
如果不需要使用Grub2的主引导,那么请使用g2ldr文件来启动grub2.


后话:
大家可以以这个合盘为基础增加DOS工具,增加PE,增加UEFI系统的启动菜单,简单的来说下Grub2引导过程:

BIOS:
开机--->按照指定的顺序启动U盘--->启动U盘主引导--->主引导搜索指定位置的Grub.cfg--->加载Grub.cfg菜单,有用户自行选择启动项

UEFI
开机--->查找指定U盘内计算机默认引导文件:\efi\boot\bootx64.efi (grub2.efi改名)--->搜索指定位置的Grub.cfg--->加载Grub.cfg菜单,有用户自行选择启动项

大家如需自行定制Grub2的话需具备 ubuntu
系统,并且需要BIOS和UEFI版本的各一个,然后使用 grub-mkimage 定制。





Grub2的一些典型菜单写法(自行看说明摸索的,希望对大家有点用处啊):
重启写法
menuentry "重启"{
reboot
}


关机写法
menuentry "关机"{
halt
}

从主引导启动
#最后一句或者 chainloader (hd0)+1
menuentry "启动主引导记录 " {
set root=(hd0)
chainloader +1
}


从某个分区启动
#从第一磁盘的第一分区启动
#最后一句或者 chainloader (hd0,1)+1
menuentry "启动分区引导记录 1" {
set root=(hd0,1)
chainloader +1
}


#从存在bootmgr文件的那个分区启动
menuentry "启动分区引导记录 2" {
search --file /bootmgr --set=root
chainloader +1
}
最后一句或者 chainloader (hd0,1)+1

启动某个引导文件:
menuentry "启动 G4D"{
search --file /grldr --set=root
insmod ntldr
ntldr /grldr
}

启动efi件:
menuentry "启动EFI SHELL" {
echo "正在启动EFI SHELL,请等待...."
search --file /rdtobot/efi_file/boot/bootx64.efi --set=root
chainloader ($root)/rdtobot/efi_file/boot/bootx64.efi
}


启动IMG文件:
menuentry "启动 MHDD" {
search --file /neyan/grub/memdisk --set=root
linux16  /neyan/grub/memdisk
initrd16 /rdtobot/MHDD.img
}

启动ISO文件:
menuentry "列出操作系统" {
search --file /neyan/grub/memdisk --set=root
linux16  /neyan/grub/memdisk  iso
initrd16 /rdtobot/LSTSYS.iso
}


子菜单写法:
submenu "我是一级菜单" {
menuentry "我是二级菜单1" {
echo "我是运行结果1"
}
menuentry "我是二级菜单2" {
echo "我是运行结果2"
}
}






评分

参与人数 24无忧币 +111 收起 理由
wuxin9712 + 5
蓝星明月 + 5 赞一个!
jack612 + 1 很给力!
一轮明月 + 5 赞一个!
xsdcn + 5 赞一个!
szmsys + 5
有阴也有阳 + 5 神马都是浮云
slyneo + 5
Roosevelt122007 + 1 赞一个!
rzsggg + 5 楼主,bootx64.efi能适用到uefi32位的版本.
MoHenHM + 5
fanet + 5 版主很给力!
zhczf + 5 赞一个!
wuyouhou + 5 很给力!
zecd + 4 赞一个!
yang77 + 5 论坛有你更精彩!
詹姆斯草 + 5 很给力!
shan + 5 很给力!
hero8000 + 5 赞一个!
2012liub + 5
2011cwj6958 + 5 很给力!
zqjiang + 5 赞一个!
糊涂 + 5 Grub2针对UEFI就像现在的U+、B+对比UD
peterpanheaven + 5 支持.加分先!!

查看全部评分

 楼主| 发表于 2013-6-17 13:39:57 | 显示全部楼层
ddianxing 发表于 2013-6-17 09:53
这个和Winly那个版本仅是定制不同吗?

w2inly的那个呀?我没有比较过,不过我想既然都是grub2,那么相差应该不会大多的吧。

研究Grub2的启动,主要是因为想了解Grub2的启动过程,很早就看到BOOTICE里面支持Grub2的主引导
但是那时候我不知怎样使用,写了主引导不知道core.img和boot.img为何物,百度、谷歌都没有得到答案,对grub2比较迷茫。

现在对grub2的引导过程和引导文件制作总算有着比较清晰地了解,就将做好的东西发出来,包含了
BIOS和UEFI部分,可以单独提取各部分使用,在使用的过程中,可以来提问,相互交流制作与使用中遇到的问题

点评

我也想学grub2,苦于没有资料  详情 回复 发表于 2013-7-3 11:21
回复

使用道具 举报

 楼主| 发表于 2013-6-17 13:42:08 | 显示全部楼层
对于BIOS来说Grub2我觉得没有G4D好使,但是对于UEFI来说,Grub2引导就太好使了,因为计算机默认引导只有一个,修复不同的efi系统需要不同的工具,有了grub2,那就是几个efi文件引导的问题....

点评

刚接触GRUB2,比较茫然,也找不到详细资料,慢慢啃,谢谢楼主  详情 回复 发表于 2013-9-26 22:04
grub2在uefi上其实就相当于另一个efi shell  详情 回复 发表于 2013-6-17 16:02
回复

使用道具 举报

 楼主| 发表于 2013-6-17 20:00:48 | 显示全部楼层
fujianabc 发表于 2013-6-17 16:02
grub2在uefi上其实就相当于另一个efi shell

计算机uefi引导grub2就是引导grub2.efi文件,从而有了下面的菜单。可以看成是一个efi  shell,也可以看成是一个efi程序吧。不过用grub2来管理efi的系统的确方便的说。
回复

使用道具 举报

 楼主| 发表于 2013-6-18 18:13:00 | 显示全部楼层
2012acer669 发表于 2013-6-18 16:24
很好的工具盘,支持楼主!

如果能更方便的编译、安装Grub2就更好了;使用BootICE安装Grub2核心后,没有相 ...

Grub2是提取的ubuntu-13.04里面的可以说是比较新的了,定制也是在ubuntu里面进行定制的。至于那些文件夹文件,就使用我准备的就可以了,提取自ubuntu-13.04里面的。
回复

使用道具 举报

 楼主| 发表于 2013-6-18 18:14:57 | 显示全部楼层
zqjiang 发表于 2013-6-18 15:40
请问版主   BCD 要 引导 GRUB2 要 如何写?

我这里测试的时候bcd引导不起来g2ldr,说什么错误....我晕了....所以我使用grub2引导BIOS启动文件和efi文件。

点评

按照你合盘的样子可以引导efi文件 看来bcd目前是无法引导g2ldr了  详情 回复 发表于 2013-6-18 19:06
回复

使用道具 举报

 楼主| 发表于 2013-6-25 00:57:02 | 显示全部楼层
ggmm888 发表于 2013-6-24 20:39
多谢,确实bios环境成功运行菜单

1楼菜单

看#28楼正解。

UEFI要是能运行DOS程序那还不是爽歪歪....
回复

使用道具 举报

 楼主| 发表于 2013-7-10 09:55:17 | 显示全部楼层
xiao75918 发表于 2013-7-9 16:13
grub.cfg用记事本修改后启动加载菜单前会有一个错误提示“不能找到设置”,一闪而过。一般大家是怎样修改的 ...

使用winhex打开那个cfg配置文件,删除最前面的几个字符即可。
回复

使用道具 举报

 楼主| 发表于 2013-7-14 16:52:15 | 显示全部楼层
2012yjgsz 发表于 2013-7-14 11:30
请教版主,UEFI下,能用grub2启动WIN8PE.ISO(能在EFI下启动)吗?
如可以,grub.cfg 怎么编辑?谢谢。

grub.cfg 用记事本编辑即可。

点评

介绍说grub.cfg 只能更新,不能手工编辑吗?  详情 回复 发表于 2015-1-11 18:24
回复

使用道具 举报

 楼主| 发表于 2013-8-10 22:15:25 | 显示全部楼层
2010lakebaykal 发表于 2013-8-6 21:58
就是这UEFI之后,除了引导win8及64位的wimPE之外,还怎么引导别的?

有相关的帮助文档哦,我也放出了一些自己摸索的.你可以参考看看
回复

使用道具 举报

 楼主| 发表于 2013-8-18 13:43:50 | 显示全部楼层
chensksk 发表于 2013-8-14 02:45
UEFI跟MBR都启动成功,感谢版主分享!
有几个关于Grub2的问题想请教版主
1.Grub2能不能启动NativePE?一级 ...

Grub2是针对UEFI启动的,至于能不能启动NaivePE这要看PE是否支持了。
启动支持UEFI启动的系统,可以参考我放出的ISO文件启动菜单了,也有可能不合适...可以百度相关文档看看下..

g2ldr.mbr的制作需要ubuntu系统,在该系统下配合我放出的命令,即可制作。

下面是我制作的一些手记(自己领悟吧):

bootconfig.cfg内容(BIOS):
search.file /neyan/grub2_bios/grub.cfg root
set prefix=($root)/neyan/grub2_bios

sudo grub-mkimage -d /boot/grub/i386-pc -c bootconfig.cfg -o core.img -O i386-pc biosdisk part_msdos fat exfat ext2 search_fs_file
sudo cat /boot/grub/i386-pc/boot.img core.img > g2ldr.mbr


bootconfig.cfg 放到 home文件夹

点评

感谢回复,Native看来是很难支持的,主要是二级内核问题,Grub2不能将二级内核以map的装载(或许我找不到),所以Bios下还是主要以G4D启动好。 linux下这几个命令用Slitaz实践了几天,g2ldr是做出来了,但mbr文件写入  详情 回复 发表于 2013-8-18 21:21
回复

使用道具 举报

 楼主| 发表于 2013-9-10 09:57:11 | 显示全部楼层
2012zclsdz 发表于 2013-9-6 22:38
GRUB.CFG这个文件不能改。我在LINUX中用终端打开。并修改再加入就不行了。请老大明示用什么修改。GRUB.CFG这 ...

windows下记事本打开即可

另外编辑完毕后使用winhex去掉文件的头部无效信息
回复

使用道具 举报

 楼主| 发表于 2013-10-17 15:22:12 | 显示全部楼层
2012mshs 发表于 2013-10-17 10:34
-Start EFI shell: How to use it?
-I got error when test with vmware uefi: "set" command.
-How to u ...

can you speak chinese ? I will answer you in Chinese....

出现”set“是因为你编辑grub.cfg配置文件后,没有使用16进制编辑器去除首部的字节导致。
grub4dos菜单会写的话你试试chainloader命令加载g2ldr,当然只能引导BIOS支持的grub2.
uefi支持的grub2的引导文件使efi文件,grub4dos无法引导efi文件。
使用grub2引导支持uefi启动的PE很简单,参照帖子里引导efi文件的方法写菜单,即可。
回复

使用道具 举报

 楼主| 发表于 2013-12-6 03:25:01 | 显示全部楼层
2013kyj 发表于 2013-11-22 11:31
楼主哦,看过您录制的教程,非常棒!现在有个问题想向您请教一下,我现在的电脑是UEFI+GPT的分区,安装的是 ...

回复迟太久啦,以后有问题直接邮件比较好哦

win8pe 32位这款pe是可以支持UEFI启动,但是CPU是IA32构架的才行,而目前市场上99%的电脑都是X64的哦
,这个知识点你去我的帖子就可以了解到。

简单的说,win8pe 32位+UEFI 在现实环境中是无意义的。
回复

使用道具 举报

 楼主| 发表于 2014-3-2 22:31:47 | 显示全部楼层

Grub2正文部分(想DIY的仔细看)
Grub2引导是可以定制的,建议下载ubuntu-13.04然后VMware虚拟机安装,然后使用 “grub-mkimage” 定制(n多过程需自行摸索,我下发提供点命令帮助哦..)。

提供bootconfig.cfg写法(放置于HOME文件夹):
search.file /boot/grub/grub.cfg root
set prefix=($root)/boot/grub/

提供g2ldr生成命令写法:
sudo grub-mkimage -d /boot/grub/i386-pc -c bootconfig.cfg -o core.img -O i386-pc biosdisk part_msdos fat exfat ntfs ext2 iso9660 udf configfile search help  reiserfs font linux chain
sudo cat /boot/grub/i386-pc/lnxboot.img core.img > g2ldr


我把自定义Grub2的步骤简单说一下:
bootconfig.cfg这个文件中的路径就是你能够自定义的。
而之后的g2ldr、g2ldr.mbr都由2部分组成:bootconfig.cfg+必要的模块。
我上面给出的命令包含了这两个部分。当然完成这些操作的环境是:ubuntu-13.04
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 13:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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