无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 33273|回复: 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, 下载次数: 302)

sshot-1.png

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

sshot-4.png

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

sshot-5.png

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

sshot-6.png

评分

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

查看全部评分

推荐
 楼主| 发表于 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 .命令 如上。

回复

使用道具 举报

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:34:03 | 只看该作者
本帖最后由 有阴也有阳 于 2018-1-23 13:36 编辑

象制作三启ISO文件一样一键生成三启U盘版的grub2文件你是第一个!

点评

这回 真的 一键 完成了。  详情 回复 发表于 2018-1-28 22:01
u盘的,只是半自动。没考虑 ud 的问题。 本想用 wmic 获得 硬盘序列在 交互给用户 选择 磁盘 再用 grub-setup 把 g2ldr 写进去,但是 x64 位下好像总是出错。所以还是用 bootiec 吧。 不然就真的 一步到位了。  详情 回复 发表于 2018-1-23 13:42
回复

使用道具 举报

4#
 楼主| 发表于 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, 下载次数: 67)
整包更新 已经 放1楼。

回复

使用道具 举报

5#
发表于 2018-1-23 14:13:47 | 只看该作者
不错 技术贴
回复

使用道具 举报

6#
发表于 2018-1-23 14:17:54 | 只看该作者
本帖最后由 phyuzhoukai 于 2018-1-23 14:25 编辑

我在把g2ldr 写入扇区后,用QEMU模拟启动总是出错:incompatible license
这是咋回事啊0.0
------------------------------------------------------------------------------------------------
用了你的脚本以后终于能运行了!但是还是不太明白为啥我自己做的g2ldr不行...
有人遇到过这种问题吗?

点评

先用 grub-mkimage 做成 core.img 再用 copy /B 把 boot.img+core.img 两个 东西 合成 为 g2ldr 在用 grub-mkimage 生成 core.img 的时候 ,要考虑需要什么 mod 以及 core.img 的大小不能 太大。  详情 回复 发表于 2018-1-23 14:30
回复

使用道具 举报

7#
 楼主| 发表于 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 的大小不能 太大。
回复

使用道具 举报

8#
发表于 2018-1-23 14:36:47 | 只看该作者
dos时代菜鸟 发表于 2018-1-23 14:30
先用 grub-mkimage 做成 core.img
再用  copy /B 把  boot.img+core.img 两个 东西 合成 为  g2ldr

...

嗯,对照着你的脚本修改了一下,终于可以了!谢谢!
回复

使用道具 举报

9#
发表于 2018-1-23 17:14:45 | 只看该作者
谢谢分享!!
回复

使用道具 举报

10#
发表于 2018-1-23 20:40:13 | 只看该作者
实在看不懂,有时间慢慢研究
回复

使用道具 举报

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

使用道具 举报

12#
发表于 2018-1-24 08:34:16 | 只看该作者
回头试试,谢谢分享
回复

使用道具 举报

13#
发表于 2018-1-24 11:38:36 | 只看该作者
很厉害的啊
回复

使用道具 举报

14#
发表于 2018-1-24 13:51:23 | 只看该作者
本帖最后由 oym2016 于 2018-1-24 14:08 编辑

下载 grub2-三启Ver2.1 制作ISO  在Hyper-V中 BIOS 启动正常,UEFI 不能启动。efi.ima 中 字节为0 ,批处理没有生成 。(使用更新后的包)

捕获.PNG (16.47 KB, 下载次数: 249)

捕获.PNG

捕获1.PNG (26.47 KB, 下载次数: 235)

捕获1.PNG

点评

Grub2_for_windows 文件夹内容 看一下  详情 回复 发表于 2018-1-24 15:05
回复

使用道具 举报

16#
 楼主| 发表于 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 文件夹内容 看一下
回复

使用道具 举报

17#
发表于 2018-1-24 20:21:53 来自手机 | 只看该作者
xorbootuei版内置oscdimg,制作iso是可以指定bios启动文件和uefi启动镜像,简单到不能再简单了。

点评

刚试了 xorboot 整个 3启 的功能, oscdimg 集成 bios引导到光盘 的时候要求 bios引导文件必须是 具备扇区特性的,而 集成 用 cdboot.img+core.img 方式制作的 grub2 总是失败,集成 grub4dos 的 grldr 是可行的。  详情 回复 发表于 2018-1-25 21:45
grub2 的 bios  和 uefi 启动文件 还是需要 grub2 的 grub-mkimage 定制的  详情 回复 发表于 2018-1-24 20:36
回复

使用道具 举报

18#
 楼主| 发表于 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 }位置
回复

使用道具 举报

19#
发表于 2018-1-24 21:04:00 | 只看该作者
楼主误解我的意思,我的意思是oscdimg是微软,各大硬件屈服于它,用oscdimg应该比mikisofs兼容点吧,我是说用xorbootuefi版内置的oscdimg省的用命令行了,我等都是文盲,看到命令行就头疼!
还有生成的efi太大,导致efisys.bin体积大,我觉得应该efi仅内置必要模块比如iso中只集成光盘格式文件系统等必要模块,可以参考jebbs的批处理,吧大部分模块放到外置目录,只在efi中内置必要模块!

点评

oscdimg n次失败, efi 文件大点儿 ,u盘 上调用 bootmgfw.efi 会 更把握。 正在研究 grub2 在 iso 光盘上直接启动 bootmgfw.efi 。我 就没成功过。  详情 回复 发表于 2018-1-24 21:07
回复

使用道具 举报

20#
 楼主| 发表于 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 。我 就没成功过。
回复

使用道具 举报

21#
发表于 2018-1-24 21:21:38 | 只看该作者
光盘上的bootmgfw.efi 不用试了,很早就说了不能启动,只能用xorboot或者refind来启动!

点评

谢谢。我去研究研究  详情 回复 发表于 2018-1-24 21:26
回复

使用道具 举报

22#
 楼主| 发表于 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盘上是 没问题的呢?

我去研究研究


回复

使用道具 举报

23#
发表于 2018-1-25 03:43:13 | 只看该作者
看看,谢谢
回复

使用道具 举报

24#
 楼主| 发表于 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 是可行的。
回复

使用道具 举报

25#
发表于 2018-1-25 23:10:06 | 只看该作者
不错,谢谢楼主分享了。。。。
回复

使用道具 举报

26#
 楼主| 发表于 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, 下载次数: 40)
回复

使用道具 举报

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

这回 真的 一键 完成了。

点评

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

使用道具 举报

28#
发表于 2018-1-29 12:15:35 | 只看该作者
dos时代菜鸟 发表于 2018-1-28 22:01
这回 真的 一键 完成了。

谢谢!下载收藏!
回复

使用道具 举报

29#
发表于 2018-2-2 02:29:28 | 只看该作者
本帖最后由 newswan 于 2018-2-2 03:25 编辑

问下,还有没有其他获得磁盘参数的办法?
回复

使用道具 举报

30#
发表于 2018-2-2 10:27:54 | 只看该作者
关于EFI及grub2我在http://bbs.wuyou.net/forum.php?m ... d=403480&extra=中有试验。可以做些参考。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 12:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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