无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 29549|回复: 63
打印 上一主题 下一主题

[分享] 也来个 Grub2 u盘、iso 三启 制作脚本 Ver.2.4(小更新.不再需要bootice)

    [复制链接]
跳转到指定楼层
1#
发表于 2018-1-23 13:11:05 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dos时代菜鸟 于 2018-1-28 22:00 编辑

总结前人经验,弄得,没啥技术含量,老鸟略过吧。
2018.01.28
更新 u盘安装,不再需要 bootice 用了个 vbs 调用 wmic 实现目标硬盘的 定位,再用 grub-bios-setup 直接写入硬盘主引导记录。
链接: https://pan.baidu.com/s/1pMaxrXD
密码: z59j

Grub2.02_for_windows 在这里 链接: https://pan.baidu.com/s/1nwtxY8h 密码: f7x2  

成品在这里 链接: https://pan.baidu.com/s/1kWoIvcj 密码: mats

所谓的 grub2三启 就是让一个存储介质 同时具备  bios 、x86_64-efi、 i386-efi(ia32) 三种模式下都能成功启动进入  grub2 。

首先要明白  u盘 启动 和 光盘启动 在这三种情况 下 的运行机制,然后就是 体力活儿了。

都要用到 grub-mkimage 生成 三个启动文件

bios 下的g2ldr,先生成 core.img , u盘下 用 boot.img+core.img 生成 g2ldr,iso 下用 cdboot.img+core.img 生成 g2ldr.bin
x86_64-efi 下 的 bootx64.efi
i386-efi 下的 bootia32.efi

u盘启动,要求u盘必须是 fat32 格式
u盘因为 要 把g2ldr 写入扇区,所以 g2ldr 大小只能是 小于 32k,
而对应的 bootx64.efi 和  bootia32.efi ,只要 放到 u 盘  \efi\boot\ 中 就可以了


对于 iso 版,值得注意的是 需要把 bootx64.efi 和 bootia32.efi  放入 一个 磁盘影像文件(efi.ima)中的 \efi\boot\ 里面,这个过程可以用 wimimage 完成。
再用 mkisofs 把 grldr.bin 和 efi.ima 做到 iso 中,就实现了iso 的 grub2三启。


两个脚本
make-disk 用于 生成 u盘三启 文件集合,全部复制到 u盘,并 用 bootice 将 引导扇区 文件 g2ldr.mbr 恢复到u盘 即可。
make-iso2 用于生成 一个可以 三启的iso .

成品中 grub2的 各种 mod 和 字体 语言文件等 设置放在 /boot/grub2/ 中 ,包括一个通用 通用型的 grub.cfg 也在。



要求使用的时候,把 grub2.02 文件 放入 grub2_for_windows 文件夹,与 0_make_03 并列放置。脚本需要调用 grub2 的 grub-mkimage 来编译生成必要的启动文件。
0_make_03 里面就是 脚本和涉及到的 工具软件 。








sshot-1.png (18.48 KB, 下载次数: 227)

sshot-1.png

sshot-4.png (35.27 KB, 下载次数: 217)

sshot-4.png

sshot-5.png (18.5 KB, 下载次数: 216)

sshot-5.png

sshot-6.png (11.07 KB, 下载次数: 217)

sshot-6.png

评分

参与人数 8无忧币 +36 收起 理由
879792799 + 5 很给力!
2010haiven86 + 5 很给力!
2012FuckTheCPC + 5 赞一个!
yichenye + 1
freesoft00 + 5
shan + 5 很给力!
海市蜃楼 + 5
有阴也有阳 + 5 赞一个!

查看全部评分

2#
 楼主| 发表于 2018-1-23 13:14:35 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2018-1-23 13:52 编辑

grub2 变大了,以前 bootx64.efi+bootia32.efi 合成的那个 efisys.bin (本质是一个 ima 磁盘影像文件),有可能放不下,所以我弄了个 4M 的 。用 wimimage 可以编辑。
iso 的生成 用的是   mkisofs

要修改 grub.cfg 的,源文件在 0_make_03\GrubTools\files_source\boot\grub2\grub.cfg 修改完,在生成iso ,就 集入iso 中了。


点评

efisys.bin你的所有文件我都下载下来了,没有找到efisys.bin这个文件  详情 回复 发表于 2021-5-3 21:49
回复

使用道具 举报

3#
 楼主| 发表于 2018-1-23 13:42:08 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2018-1-23 14:15 编辑
有阴也有阳 发表于 2018-1-23 13:34
象制作三启ISO文件一样一键生成三启U盘版的grub2文件你是第一个!

u盘的,只是半自动。没考虑 ud 的问题。
本想用  wmic 获得 硬盘序列在 交互给用户 选择 磁盘 再用 grub-setup 把 g2ldr 写进去,但是 x64 位下好像总是出错。所以还是用 bootiec 吧。
不然就真的 一步到位了。

刚发现 u 盘 版 ,boot_disk 中 没有 efi/boot 文件夹,导致脚本 不能生成 *.efi
如果不更新,就自己 在 建个文件夹  boot_disk\efi\boot  即可。

改进脚本。如下 01-make-disk.7z (1.17 KB, 下载次数: 66)
整包更新 已经 放1楼。

回复

使用道具 举报

4#
 楼主| 发表于 2018-1-23 14:30:14 | 显示全部楼层
phyuzhoukai 发表于 2018-1-23 14:17
我在把g2ldr 写入扇区后,用QEMU模拟启动总是出错:incompatible license
这是咋回事啊0.0
------------- ...

先用 grub-mkimage 做成 core.img
再用  copy /B 把  boot.img+core.img 两个 东西 合成 为  g2ldr

在用 grub-mkimage 生成 core.img 的时候 ,要考虑需要什么 mod 以及 core.img 的大小不能 太大。
回复

使用道具 举报

5#
 楼主| 发表于 2018-1-23 23:38:16 | 显示全部楼层
刚刚 想把 pe install.wim 都放进 iso ,发现iso 不够大,UltraISO 好像 会改引导,导致 失去 三启 功能,
不知道 怎么办了。
回复

使用道具 举报

6#
 楼主| 发表于 2018-1-24 15:04:45 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2018-1-24 15:07 编辑

  1. #用 mkisofs 制作一个 大 iso ,实现 bios 、 x86_64-efi 、i386-efi 三种情况下都能启动 。

  2. mkisofs -J -R -N -d -boot-info-table -l -relaxed-filenames -gbk4dos-filenames -gbk4win-filenames  -no-emul-boot -boot-load-size 4  -b g2ldr.bin  -eltorito-alt-boot -b efi.ima -no-emul-boot -eltorito-alt-boot -V win7_x64 -o win7_x64.iso   iso/
复制代码

在 ubuntu 下 用 mkisofs 终于做出 具有 三启功能 的 大 dvd .命令 如上。

回复

使用道具 举报

7#
 楼主| 发表于 2018-1-24 15:05:04 | 显示全部楼层
oym2016 发表于 2018-1-24 13:51
下载 grub2-三启Ver2.1 制作ISO  在Hyper-V中 BIOS 启动正常,UEFI 不能启动。efi.ima 中 字节为0 ,批处理 ...

Grub2_for_windows 文件夹内容 看一下
回复

使用道具 举报

8#
 楼主| 发表于 2018-1-24 20:36:14 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2018-1-24 20:37 编辑
my9823 发表于 2018-1-24 20:21
xorbootuei版内置oscdimg,制作iso是可以指定bios启动文件和uefi启动镜像,简单到不能再简单了。


grub2 的 bios  和 uefi 启动文件 还是需要 grub2 的 grub-mkimage 定制的
涉及到 grub.cfg 和 一些 mod 的 ${prefix }位置
回复

使用道具 举报

9#
 楼主| 发表于 2018-1-24 21:07:15 | 显示全部楼层
my9823 发表于 2018-1-24 21:04
楼主误解我的意思,我的意思是oscdimg是微软,各大硬件屈服于它,用oscdimg应该比mikisofs兼容点吧,我是说 ...

oscdimg n次失败,
efi 文件大点儿 ,u盘 上调用 bootmgfw.efi 会 更把握。
正在研究 grub2 在 iso 光盘上直接启动 bootmgfw.efi 。我 就没成功过。
回复

使用道具 举报

10#
 楼主| 发表于 2018-1-24 21:26:41 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2018-1-24 21:50 编辑
my9823 发表于 2018-1-24 21:21
光盘上的bootmgfw.efi 不用试了,很早就说了不能启动,只能用xorboot或者refind来启动!


谢谢。

grub2 不能在光盘引导 bootmgfw.efi ,可是 为啥 u盘上是 没问题的呢?

我去研究研究


回复

使用道具 举报

11#
 楼主| 发表于 2018-1-25 21:45:46 | 显示全部楼层
my9823 发表于 2018-1-24 20:21
xorbootuei版内置oscdimg,制作iso是可以指定bios启动文件和uefi启动镜像,简单到不能再简单了。


刚试了 xorboot 整合 3启 的功能,
oscdimg 集成 bios引导到光盘 的时候要求 bios引导文件必须是 具备扇区特性的,而 集成 用 cdboot.img+core.img 方式制作的 grub2 总是失败,集成 grub4dos 的 grldr 是可行的。
回复

使用道具 举报

12#
 楼主| 发表于 2018-1-28 15:57:21 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2018-1-28 21:57 编辑

把 定制好 的core.ing 替换后,运行 setup1.cmd
然后选择要安装的 盘,就可以把 grub2-bios 的 core 安装到 主引导记录。

grub2-bios-setup.7z (292.28 KB, 下载次数: 39)
回复

使用道具 举报

13#
 楼主| 发表于 2018-1-28 22:01:14 | 显示全部楼层
有阴也有阳 发表于 2018-1-23 13:34
象制作三启ISO文件一样一键生成三启U盘版的grub2文件你是第一个!

这回 真的 一键 完成了。

点评

谢谢!下载收藏!  详情 回复 发表于 2018-1-29 12:15
回复

使用道具 举报

14#
 楼主| 发表于 2018-8-29 18:56:21 | 显示全部楼层
cnzp 发表于 2018-8-29 11:19
为什么有的主板GRUB2 没办法引导,B75的主板设置成纯UEFI引导又可以出GRUB2菜单出来,H110的主板GRUB2菜单 ...


个主板 设计的时候 对 uefi  的理解 有偏差,有的有加入了自己的 想法,有的 阉割了 部分 标准。
回复

使用道具 举报

15#
 楼主| 发表于 2018-12-3 20:31:57 | 显示全部楼层
shan 发表于 2018-12-2 10:36
老大,俺只会在winodws环境下。想在你这个基础上更新加入各种IMG,PE,.该放入哪个文件夹下呢,然后生成iso ...

随便放,关键是你的 grub2 的 cfg 配置文件中如何配置的。
回复

使用道具 举报

16#
 楼主| 发表于 2018-12-6 09:46:26 | 显示全部楼层
shan 发表于 2018-12-3 21:25
试过了,运行批处理产生的iso还是10多mb.所以才问这么浅显的问题。

把要 添加的文件 放到  .....\0_make_0\grubtools\files_source 里面。

点评

老大,刚试过,只是把\\files_source文件夹下所有问下复制到ISO文件夹里面而已,没有生成GRUB2.ISO  详情 回复 发表于 2018-12-6 10:10
回复

使用道具 举报

17#
 楼主| 发表于 2021-5-3 22:02:02 | 显示全部楼层
熄灭的烟 发表于 2021-5-3 21:22
你那个00-Set.bat批处理文件运行后一闪而过,啥文件都没生成呢。

本来他就不生成啥文件,那是个设置 内存变量的脚本
回复

使用道具 举报

18#
 楼主| 发表于 2021-5-3 22:03:58 | 显示全部楼层
熄灭的烟 发表于 2021-5-3 21:49
你的所有文件我都下载下来了,没有找到efisys.bin这个文件

这是个 自动生成 启动文件的脚本,你需要的文件 脚本会自行根据 grub2.02 的文件生成。

点评

还有g2ldr.mbr这个文件在哪啊,我找遍了目录都没找到这个文件。  详情 回复 发表于 2021-5-3 22:05
回复

使用道具 举报

19#
 楼主| 发表于 2021-5-3 22:04:30 | 显示全部楼层
mygamexxx 发表于 2021-5-3 09:40
请教:如果将grub2目录不放在boot下,直接放在根目录,要怎么办?要加载背景图用什么命令?将所有语言文件 ...

你需要修改 脚本内容 和 cfg 配置文件。

点评

谢谢,已经弄明白了。谢谢您的工具!  详情 回复 发表于 2021-5-3 22:43
回复

使用道具 举报

20#
 楼主| 发表于 2021-5-3 22:06:11 | 显示全部楼层
小白们,如果还没仔细看 一楼 说明和 图片 ,就先不要 盲目 下载运行了。

点评

大佬,你能告诉我这个g2ldr.mbr文件在哪里吗?  详情 回复 发表于 2021-5-3 22:07
回复

使用道具 举报

21#
 楼主| 发表于 2021-5-3 22:07:05 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-5-3 22:08 编辑
熄灭的烟 发表于 2021-5-3 22:05
还有g2ldr.mbr这个文件在哪啊,我找遍了目录都没找到这个文件。

不需要 这个文件
脚本直接通过  grub2 自带程序 完成 引导代码的写入

点评

无语,这个不需要的文件你写在批处理里面,害我研究了半天。  详情 回复 发表于 2021-5-3 22:08
回复

使用道具 举报

22#
 楼主| 发表于 2021-5-3 22:10:14 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-5-3 22:13 编辑
熄灭的烟 发表于 2021-5-3 22:08
无语,这个不需要的文件你写在批处理里面,害我研究了半天。

这个文件是 自动生成的吧,或者是以前需要,后来改进了安装方式就不需要的吧。时间太久远了,记不清了。
回复

使用道具 举报

23#
 楼主| 发表于 2021-5-3 23:20:24 | 显示全部楼层
在 00-set.cmd 最后 加一句

reg add "HKEY_CURRENT_USER\Software\WinImage" /v "DispSplashBegin" /t reg_sz /d "False" /f

脚本调用 winimage 时就不用 点 确定按钮了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-14 03:03

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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