2011hiboy 发表于 2013-6-17 03:16:30

Grub2启动盘的制作,支持BIOS和UEFI哦.....

本帖最后由 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 helpreiserfs 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工具。之后的命令大家多多完善啊,我个人精力是有限的...



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




下载使用:

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/memdiskiso
initrd16 /rdtobot/LSTSYS.iso
}


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





wuyouhou 发表于 2014-4-3 19:24:11

①shutdown.exe -s -t 00关机,重启,这两种情况有彻底关机状态,其它都是快速关机。
②在efiBIOS里打开从外部装置引导启动(即允许),就只能在彻底关机或重启情况下才能进入grub2启动工具盘。
③在efiBIOS里关闭从外部装置引导启动(即禁用),也就是出厂的默认设置,在全部形式的关机情况下,用急救键启动机器,都能进入grub2启动工具盘。简单说就是,用“关机”按钮关闭电脑后,用急救键从usb盘启动机器。i

zqjiang 发表于 2013-10-8 20:02:17

请问你那模版 里面的rdtobot可以删除吗?   少1个文件夹比较清爽

wuyouhou 发表于 2014-6-9 13:17:58

wuyouhou 发表于 2014-6-5 18:20
我使用的是EFI包!

终于解决了,而且实机测试成功:
##老版本的 cat.mod 模块,不能显示汉字;换成 v2.02~beta2-6 grub2 或更新版本的 cat.mod 模块,就显示汉字
##http://pan.baidu.com/s/1mgjv6Uc
##http://bbs.wuyou.net/forum.php?mod=viewthread&tid=322477
##version 2.02~beta2-6 grub2 2014.5.29
##parted_magic_amd64+x86_v2014.04.28-multiLanguage.ISO资料提取
##老版本的cat.mod模块_不能显示汉字_换成v2.02~beta2-6grub2或更新版本的cat.mod模块_就显示汉字

wuyouhou 发表于 2014-3-28 19:44:43

错怪楼主了,对不起楼主,请楼主原谅。楼主辛苦啦,谢谢你们!折磨我了,终于找出原因啦,疑难解决了。笑话大王啦,时代不同了,今非昔比呀。Windows8/8.1系统的关机和开机都不是昔日的开机关机,实质上是核心休眠和核心出眠;在此关机状态下,用EFI启动管理器工盘是无法启动电脑的,任你如何手段也启动不成;若是用EFI的WinPE文件做成的工具盘,此种状态下能够启动电脑,但是,新存进系统C盘里的文件,在重新开机回到正常系统时,就全部是废品或丢失,其所占用的空间还得用分区的属性里的工具晃一遍才能回来。
所以大家注意啦,要在原来系统里用重启的方式来启动工具盘,否则,要么工作不正常,要么机器启动不成。事情就又来了,既然能重新启动电脑,那么电脑就应该是没有毛病的了,工具盘的用途就窄小很多了,普通人们就是拿来作玩物了,哈哈。

2012yjgsz 发表于 2013-7-14 11:30:02

请教版主,UEFI下,能用grub2启动WIN8PE.ISO(能在EFI下启动)吗?
如可以,grub.cfg 怎么编辑?谢谢。

ggmm888 发表于 2013-6-24 20:39:30

本帖最后由 ggmm888 于 2013-6-24 21:43 编辑

多谢,确实bios环境成功运行菜单

1楼菜单
启动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
}

上面这个菜单在bios环境不能使用(当然把bootx64.efi修改为bootmgr来加载),有错误提示“Invalid signature” 签名无效,在UEFI环境在成功运行。
在bios环境,使用grub2.efi运行grldr后,可以启动PE成功了,感觉绕远了。

希望给个bios环境下,使用grub2.efi如何的启动PE菜单,多谢


1楼EFI菜单

启动IMG文件:
menuentry "启动 MHDD" {
search --file /neyan/grub/memdisk --set=root
linux16/neyan/grub/memdisk
initrd16 /rdtobot/MHDD.img
}
上面菜单无法使用

在UEFI环境下,那使用grub2.efi如何启动IMG文件

无垠 发表于 2014-6-10 19:05:33

是个发展方向

wuyouhou 发表于 2014-6-9 13:15:10

wuyouhou 发表于 2014-6-9 00:44
终于解决了,而且实机测试成功:
##老版本的 cat.mod 模块,不能显示汉字;换成 v2.02~beta2-6 grub2 或 ...

终于解决了,而且实机测试成功:
##老版本的 cat.mod 模块,不能显示汉字;换成 v2.02~beta2-6 grub2 或更新版本的 cat.mod 模块,就显示汉字
##http://pan.baidu.com/s/1mgjv6Uc
##http://bbs.wuyou.net/forum.php?mod=viewthread&tid=322477
##version 2.02~beta2-6 grub2 2014.5.29
##parted_magic_amd64+x86_v2014.04.28-multiLanguage.ISO资料提取
##老版本的cat.mod模块_不能显示汉字_换成v2.02~beta2-6grub2或更新版本的cat.mod模块_就显示汉字

wuyouhou 发表于 2014-3-25 16:49:48

我是实机啊,不是用虚拟机啊。连菜单都未见,启动第一步就说是无效的系统。折磨我了。

本帖最后由 wuyouhou 于 2014-3-25 16:55 编辑

将U盘做成EFI的GPT盘,用ZIP压缩包来做盘后,并将机器设置成UEFI式外设备启动,64位GPT,最终结果是,不能启动U盘,报告英文无效的系统。我的机器是sonyVAIO的svf15218scw去年新机器。我的过程应该是没有毛病,因为我对启动已经是熟悉了,也反复复查了。所以,我的判断是,只能是grub2有毛病。

evnious 发表于 2014-3-19 22:19:32

多谢楼主分享,拿来用了,谢谢

ddianxing 发表于 2013-6-17 09:53:21

这个和Winly那个版本仅是定制不同吗?

2011hiboy 发表于 2013-6-17 13:39:57

ddianxing 发表于 2013-6-17 09:53 static/image/common/back.gif
这个和Winly那个版本仅是定制不同吗?

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

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

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

2011hiboy 发表于 2013-6-17 13:42:08

对于BIOS来说Grub2我觉得没有G4D好使,但是对于UEFI来说,Grub2引导就太好使了,因为计算机默认引导只有一个,修复不同的efi系统需要不同的工具,有了grub2,那就是几个efi文件引导的问题....

fujianabc 发表于 2013-6-17 16:02:13

2011hiboy 发表于 2013-6-17 13:42 static/image/common/back.gif
对于BIOS来说Grub2我觉得没有G4D好使,但是对于UEFI来说,Grub2引导就太好使了,因为计算机默认引导只有一个 ...

grub2在uefi上其实就相当于另一个efi shell

2011hiboy 发表于 2013-6-17 20:00:48

fujianabc 发表于 2013-6-17 16:02 static/image/common/back.gif
grub2在uefi上其实就相当于另一个efi shell

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

快雪时晴 发表于 2013-6-17 21:16:45

没有条件实验,暂时只有把UEFI 深深的藏在心里了{:3_144:}

hhhyyy 发表于 2013-6-18 00:11:10

快雪时晴 发表于 2013-6-17 21:16 static/image/common/back.gif
没有条件实验,暂时只有把UEFI 深深的藏在心里了

有同感,呵呵。

peterpanheaven 发表于 2013-6-18 04:00:54

快雪时晴 发表于 2013-6-17 21:16 static/image/common/back.gif
没有条件实验,暂时只有把UEFI 深深的藏在心里了

why?

VMware 9.02software easily @ your service ...
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=276545&extra=page%3D1

快雪时晴 发表于 2013-6-18 09:46:03

peterpanheaven 发表于 2013-6-18 04:00 static/image/common/back.gif
why?

VMware 9.02software easily @ your service ...


手头PC都弱不禁风,无力塞个VM9:dizzy:

zqjiang 发表于 2013-6-18 15:40:23

请问版主   BCD 要 引导 GRUB2 要 如何写?

acer669 发表于 2013-6-18 16:24:10

很好的工具盘,支持楼主!

如果能更方便的编译、安装Grub2就更好了;使用BootICE安装Grub2核心后,没有相应的Boot\grub2文件夹及相关的配置,也是无法使用Grub2的,是一大遗憾……

2011hiboy 发表于 2013-6-18 18:13:00

2012acer669 发表于 2013-6-18 16:24 static/image/common/back.gif
很好的工具盘,支持楼主!

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

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

2011hiboy 发表于 2013-6-18 18:14:57

zqjiang 发表于 2013-6-18 15:40 static/image/common/back.gif
请问版主   BCD 要 引导 GRUB2 要 如何写?

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

shan 发表于 2013-6-18 18:39:32

好东西,慢慢吸收学习

zqjiang 发表于 2013-6-18 19:06:11

2011hiboy 发表于 2013-6-18 18:14 static/image/common/back.gif
我这里测试的时候bcd引导不起来g2ldr,说什么错误....我晕了....所以我使用grub2引导BIOS启动文件和efi文 ...

按照你合盘的样子可以引导efi文件      

看来bcd目前是无法引导g2ldr了

2011cwj6958 发表于 2013-6-22 12:54:20

ZIP压缩包合盘成功,可以BIOS、UEFI双启动,更绝的是两套菜单,非常适用。要是再提供g2ldr.mbr 文件和UEFI启动microsoft启动模块,就更加方便菜鸟,启动无敌了!!!!!!

2011cwj6958 发表于 2013-6-22 13:03:31

zqjiang 发表于 2013-6-18 19:06 static/image/common/back.gif
按照你合盘的样子可以引导efi文件      

看来bcd目前是无法引导g2ldr了



bcd可以引导BIOS启动的g2ldr,bcd不支持直接引导g2ldr ,需要引导g2ldr的g2ldr.mbr文件。

2012liub 发表于 2013-6-22 14:16:05

支持

zqjiang 发表于 2013-6-22 18:04:02

2011cwj6958 发表于 2013-6-22 13:03 static/image/common/back.gif
bcd可以引导BIOS启动的g2ldr,bcd不支持直接引导g2ldr ,需要引导g2ldr的g2ldr.mbr文件。

我说的是不可以引导 EFI 启动的g2ldr   可惜啊

fujianabc 发表于 2013-6-22 20:02:50

zqjiang 发表于 2013-6-22 18:04 static/image/common/back.gif
我说的是不可以引导 EFI 启动的g2ldr   可惜啊

efi版的grub2.efi可以直接用主板启动,也没必要让bootmgr来加载

2012eye 发表于 2013-6-22 20:07:30

谢谢谢谢谢谢

2010feifeiluan2 发表于 2013-6-22 21:03:25

感谢楼主讲解,不过传统bios和mbr方式还没弄明白那,先收着

2011cwj6958 发表于 2013-6-22 22:02:38

zqjiang 发表于 2013-6-22 18:04 static/image/common/back.gif
我说的是不可以引导 EFI 启动的g2ldr   可惜啊

g2ldr的引导功能比 bcd的强大的多,直接修改grub.cfg文件。比配置bcd文件方便的多,引导EFI 启动的bcd也很方便。

zqjiang 发表于 2013-6-23 11:32:59

fujianabc 发表于 2013-6-22 20:02 static/image/common/back.gif
efi版的grub2.efi可以直接用主板启动,也没必要让bootmgr来加载



先 启动 efi版的grub2.efi ,再来加载 bootmgr   很方便的

zqjiang 发表于 2013-6-23 11:33:26

2011cwj6958 发表于 2013-6-22 22:02 static/image/common/back.gif
g2ldr的引导功能比 bcd的强大的多,直接修改grub.cfg文件。比配置bcd文件方便的多,引导EFI 启动的bcd也很 ...

不错

先 启动 efi版的grub2.efi ,再来加载 bootmgr   很方便的

ggmm888 发表于 2013-6-24 19:45:27

本帖最后由 ggmm888 于 2013-6-24 20:00 编辑

只能看到1楼的菜单不能运行菜单,错误提示

linux16
initrd16

上面两个文件找不到,无法加载程序

vmware9.0.2.35902虚拟机EFI测试,没有条件使用真机测试。

fujianabc 发表于 2013-6-24 20:12:37

ggmm888 发表于 2013-6-24 19:45 static/image/common/back.gif
只能看到1楼的菜单不能运行菜单,错误提示

linux16


这两条是16位命令,只支持bios环境。EFI不支持16位

2011hiboy 发表于 2013-6-25 00:57:02

ggmm888 发表于 2013-6-24 20:39 static/image/common/back.gif
多谢,确实bios环境成功运行菜单

1楼菜单


看#28楼正解。

UEFI要是能运行DOS程序那还不是爽歪歪....
页: [1] 2 3 4 5 6 7
查看完整版本: Grub2启动盘的制作,支持BIOS和UEFI哦.....