无忧启动论坛

标题: 定制安装 GRUB2FORWIN 到 硬盘/U盘 图形界面脚本V1.5 [打印本页]

作者: dos时代菜鸟    时间: 2025-4-14 22:27
标题: 定制安装 GRUB2FORWIN 到 硬盘/U盘 图形界面脚本V1.5
本帖最后由 dos时代菜鸟 于 2025-5-5 09:43 编辑

grub2_for_windows + 脚本:1.53
https://www.123912.com/s/vhguVv-Ja8x   验证码:1234

注意 开始安装前 把相关位置的文档换位置保存,或者整体文件夹更名,安装脚本会清除特定分区位置的内容。比如 uefi 方式下的 \efi\boot\ 中的一切。
因为 grub2 是区分大小写的。





这个脚本可以理解为 bios uefi.x64 uefi.ia32 三种方式启动的实现

本脚本由 pecmd 调用,支持向 mbr/gpt 以及包含 bios_boot分区的gpt 硬盘上安装 grub2


一、关于 使硬盘能够 在 bios 模式下启动的实现
1.需要有 fat/ntfs 类分区存放 各种mods ,脚本就是将 grub2-for-windows 中相关 mods 以及一个事先做好的 grub.cfg 放入这样的分区中 \boot\grub2\grub.cfg。脚本中可以手动调用系统 记事本 notepad.exe 修改这个 grub.cfg.  
2.mbr硬盘的,脚本会生成 启动扇区引导文件,并写入硬盘特定扇区,这个启动文件是用 grub2 特定程序 将特定 mod 整合而成,在脚本中可以定制这些 mod 组合。
3.GPT硬盘,需要硬盘有 bios_boot 分区,脚本会将 启动扇区引导文件 写入这个特定的分区。
4.硬盘启动后会自动调用 \boot\grub2\grub.cfg 菜单文件 以及 \boot\grub2\i386-pc\ 中的各种 mod
二、关于 使硬盘能够 在uefi 模式下启动的实现
1.需要有 fat/ntfs 类分区存放 各种mods ,脚本就是将 grub2-for-windows 中相关 mods 以及一个事先做好的 grub.cfg 放入这样的分区中 \efi\grub2\grub.cfg。脚本中可以手动调用系统 记事本 notepad.exe 修改这个 grub.cfg.
2.mbr/gpt硬盘的,需要硬盘有 ESP/FAT32 分区,脚本会根据定义的mod组合利用 grub2自带的特定程序生成 uefi 启动文件(bootx64.efi/bootia32.efi),并放入目标分区 \efi\boot\ 中。
3.硬盘启动后会自动调用 \efi\grub2\grub.cfg 菜单文件 以及 \efi\grub2\x86_64-efi\  和 \efit\grub2\i386-efi\ 中的各种 mod


升级改进日志:

2025.04.15
BIOS+mbr 分区选择时,根据所选分区类型 自动调整 MOD 组合,以适应 64扇区大小要求。
BIOS+GPT 分区选择时,GPT一定时存在 BIOS_BOOT分区的,否则不可选,此时 mod 组合固定,不受体积限制。
EFI+GPT 分区选择时,如果分区不是 FAT类,就提示错误并自动选为 “-”
原来 grub2 的菜单编码要 utf-8 且不能是 utf-8 BOM

2025.04.16
增加 grub4dos
增加 grub4uefi_x86&64
增加当选择硬盘是自动给无盘符分区分配盘符,脚本关闭时,自动将新加载的盘符卸掉。

2025.04.17 V 1.46
bios 启动模式,改用 search.fs_uuid 方式锁定安装分区,需要pecmd 在系统 temp 文件夹 以 uft8 nobom 方式生成临时随机名的 cfg 文件用以生成 bios_mbr 模式写入硬盘的启动文件。
修正一处错误,关于装载盘符后的赋值问题。 %empty_drv%:  ,差了个 :。

2025.04.18
增加安装前备份已有启动体系文件夹的选项,可以复制也可以更名。
2025.04.19
增加刷新按钮,应对脚本打开后 硬盘u盘增加的情况。

2025.04.24
调整了一下 uefi 的mods 组合,更通用一些,适用与 魔改版。

2025.04.28
修正 错误,备份方案选择上变量赋值问题。
增加扩展文件复制位置选项,扩展文件夹可以自行配置菜单。增加 files\files_source]grub2_ext 文件夹用于放置扩展文件




作者: ljq0527    时间: 2025-4-15 00:20
感谢大佬分享,国产系统迁移位置太需要这个了!
作者: handsome_xiang    时间: 2025-4-15 02:57
感谢分享!
作者: rchc08    时间: 2025-4-15 06:24
感谢分享
作者: 小灰兔    时间: 2025-4-15 07:11
感谢分享
作者: 2012andyle113    时间: 2025-4-15 07:46
感谢分享
作者: ztjun518    时间: 2025-4-15 07:54
本帖最后由 ztjun518 于 2025-4-15 08:16 编辑

太菜了,没看懂,那位大侠出个详细的步骤就好了
作者: softwarezheng1    时间: 2025-4-15 08:16
谢谢
作者: wang1126    时间: 2025-4-15 08:22
谢谢楼主分享
作者: 1999    时间: 2025-4-15 08:33
谢谢楼主分享
作者: dos时代菜鸟    时间: 2025-4-15 08:53
更新了一下,
增加可以支持 自定义 mods 组合
增加支持向 有 bios_boot 分区的 gpt 结构硬盘上安装 bios_mbr模式的 grub2,以便使 gpt结构硬盘支持 bios 启动。
作者: dos时代菜鸟    时间: 2025-4-15 08:55
ztjun518 发表于 2025-4-15 07:54
太菜了,没看懂,那位大侠出个详细的步骤就好了

你可以在 win下 搞个 虚拟硬盘,用这个脚本把 grub2 安装到虚拟硬盘上,在卸载虚拟硬盘,把虚拟硬盘挂到 虚拟机上启动试一下。
关键是这个脚本需要 grub2 for windows 做支撑。
作者: dkzzlf    时间: 2025-4-15 09:02
围观一下
作者: bilv    时间: 2025-4-15 09:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: bilv    时间: 2025-4-15 09:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: jho    时间: 2025-4-15 09:28

谢谢分享   
作者: dos时代菜鸟    时间: 2025-4-15 10:06
bilv 发表于 2025-4-15 09:24
cnblogs.com/fatt/p/7272997.html

一楼有教程了,一个图解决。
作者: arkuon    时间: 2025-4-15 10:58
感谢大佬
作者: dos时代菜鸟    时间: 2025-4-15 12:12
GPT结构硬盘上的 用于在 BIOS环境下启动的那个名叫 bios_boot 的分区,其实是一个 raw 格式的分区,然后 ID = 21686148-6449-6E6F-744E-656564454649, 用 grub2 的特定程序 将 特定的 bios 启动代码写到这个分区,这个 GPT 结构的硬盘就可以支持在 bios 环境下启动到grub2 了。
作者: dos时代菜鸟    时间: 2025-4-15 12:53
GRUB2.12 的 字体文件貌似有点儿问题。体积也小了很多。
作者: ztjun518    时间: 2025-4-15 13:12
dos时代菜鸟 发表于 2025-4-15 08:55
你可以在 win下 搞个 虚拟硬盘,用这个脚本把 grub2 安装到虚拟硬盘上,在卸载虚拟硬盘,把虚拟硬盘挂到  ...

谢谢大侠耐心回复
作者: guong    时间: 2025-4-15 13:38
感谢大佬分享!
作者: dos时代菜鸟    时间: 2025-4-15 16:10
考虑到 BIOS+MBR 模式 ,启动文件会受 63 扇区 大小限制,还是需要 智能判断一下 mod 组合。
作者: dos时代菜鸟    时间: 2025-4-15 17:43
1.3 应该没啥大问题了。

作者: my9823    时间: 2025-4-15 18:00
dos时代菜鸟 发表于 2025-4-15 12:12
GPT结构硬盘上的 用于在 BIOS环境下启动的那个名叫 bios_boot 的分区,其实是一个 raw 格式的分区,然后 ID ...

感觉可以借鉴ventoy的思路,gpt磁盘的保护mbr只用到了dpy那部分,前面的引导代码还是能在bios启动时运行的, entoy是使用了这部分,写入了boot.img,然后修改了指向下一扇区的位置为gpt分区表后面的扇区,前提是第一个分区前有1MB空闲空间
作者: dos时代菜鸟    时间: 2025-4-15 18:07
本帖最后由 dos时代菜鸟 于 2025-4-15 18:30 编辑
my9823 发表于 2025-4-15 18:00
感觉可以借鉴ventoy的思路,gpt磁盘的保护mbr只用到了dpy那部分,前面的引导代码还是能在bios启动时运行 ...

听起来宛如天书。貌似需要用到 特定的写扇区软件。

bios+mbr 模式我是用 grub2 自带的 程序安装,并不是用 copy /b 把两个文件联合后写入,如果第一分区前段有足够空间,应该可以的。
这里只是考虑到一种可能,还是尽量避免。

bios+gpt 模式,只要硬盘有个  bios_boot 分区,有几M也就足够了,不用考虑 63 扇区限制。用 diskgen 等软件 给硬盘挤出这么点空间应该没啥问题。


作者: dos时代菜鸟    时间: 2025-4-15 19:37
my9823 发表于 2025-4-15 18:00
感觉可以借鉴ventoy的思路,gpt磁盘的保护mbr只用到了dpy那部分,前面的引导代码还是能在bios启动时运行 ...

刚测试了以下,其实就是 启动跳转之类的。
把 grub2 安装到 带有 bios-boot 分区的 gpt 一个盘上以后,即使把 bios-boot 分区删掉,只要不覆盖那个分区区域,一样可以进入 grub2.
作者: zhou116yan    时间: 2025-4-15 21:07
越来越不好弄;
作者: dos时代菜鸟    时间: 2025-4-15 21:16
本帖最后由 dos时代菜鸟 于 2025-4-15 21:20 编辑
zhou116yan 发表于 2025-4-15 21:07
越来越不好弄;

何出此言?

grub2 的定制安装 本来就是这样复杂,
关键信息节点多,需要命令行操作。用这个脚本,就是要化繁为简,而又要保证必要可操作性。


作者: 86933924    时间: 2025-4-16 11:56
谢谢楼主分享
作者: dos时代菜鸟    时间: 2025-4-16 14:40
如果 把 grub4dos&uefi 也捎带着 安装上,供grub2调用,是不是更完美一些呢?
作者: fegr    时间: 2025-4-16 15:37
感谢楼主分享
作者: dos时代菜鸟    时间: 2025-4-16 21:49
本帖最后由 dos时代菜鸟 于 2025-4-16 21:52 编辑

如果 选择某个硬盘 ,自动将该硬盘没有装载盘符的分区 装载盘符,在脚本退出时在自动卸载盘符,
选择硬盘是,简单的显示该硬盘各分区的一些情况,比如 格式,盘符,卷标,

是不是 能好一点儿?

V1.44 来啦


作者: dos时代菜鸟    时间: 2025-4-16 23:21
本帖最后由 dos时代菜鸟 于 2025-4-16 23:22 编辑

v1.45
如果 用 search.fs_uuid 代替 搜索文件,是否能更准确呢?

BIOS MBR模式,准确定位 安装分区。避免调用错误位置的 配置文件。


作者: dos时代菜鸟    时间: 2025-4-17 06:32
本帖最后由 dos时代菜鸟 于 2025-4-17 08:03 编辑

pecmd 版本不同,这个脚本用到的 pecmd 居然没有 输出非 bom 的 utf8 文本的参数功能。writ 指令有阉割。
还需要换 pecmd
已经重新上传 1.45版


作者: dos时代菜鸟    时间: 2025-4-17 09:01
本帖最后由 dos时代菜鸟 于 2025-4-17 09:07 编辑

1.47

修正一处错误,关于装载盘符后的赋值问题。 %empty_drv%:  ,差了个 :
居然出现了一处错误,已经修正。

到此为止了,歇一歇,不改进了。

眼睛花了,上了年纪, 前几天 list 控件赋值 也是需要 =:  也是差了个 : ,



作者: 2267981144    时间: 2025-4-17 11:32
谢谢无私提供分享!
作者: dos时代菜鸟    时间: 2025-4-17 11:38
又做了个 图形版的 使用说明 ,放到 1楼了。


作者: dejoy    时间: 2025-4-17 13:45
感谢分享
作者: yigexinshou    时间: 2025-4-17 14:48
非常感谢分享啊
作者: dos时代菜鸟    时间: 2025-4-17 15:55
1.47版 稳定,不再折腾了。

看一楼 使用说明,然后自己添加个性化的东西吧。


作者: suangsuang    时间: 2025-4-17 23:35
定制神工具,可以定制2.12
作者: 86933924    时间: 2025-4-18 00:16
谢谢分享
作者: dos时代菜鸟    时间: 2025-4-19 07:23
suangsuang 发表于 2025-4-17 23:35
定制神工具,可以定制2.12

2.12 的for win uefi 有问题
作者: wintoflash    时间: 2025-4-19 07:56
dos时代菜鸟 发表于 2025-4-19 07:23
2.12 的for win uefi 有问题

http://bbs.wuyou.net/forum.php?m ... &fromuid=487838
这里有我编译的2.12 efi模块。替换官方的模块就可以用。
作者: dos时代菜鸟    时间: 2025-4-19 08:47
wintoflash 发表于 2025-4-19 07:56
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=444840&pid=5612209&fromuid=487838
...


作者: view520    时间: 2025-4-19 08:51
感谢分享
作者: suangsuang    时间: 2025-4-19 19:40
dos时代菜鸟 发表于 2025-4-19 07:23
2.12 的for win uefi 有问题

用W大的文件替换2.12的原文件,定制成功的
作者: dos时代菜鸟    时间: 2025-4-19 19:47
suangsuang 发表于 2025-4-19 19:40
用W大的文件替换2.12的原文件,定制成功的

网盘中 有整合好的 2.12
作者: 2011whp    时间: 2025-4-19 20:22
试试这个 ,前两天ubuntu下定置的, 带shim 带证书(可安启)
http://bbs.wuyou.net/forum.php?m ... 059&pid=5552677
作者: even    时间: 2025-4-21 13:06
感谢分享,用这个把老旧纯bios启动的硬盘改成了GPT格式(折腾的乐趣)。dg可以建biosboot分区,我是在efi分区前建了一个512k的(GPT分区第二扇区开始是gpt分区表,我是从1024扇区开始建的,如已经有efi分区先备份后删除就可以开始建biosboot,然后建efi msr),安装后删除biosboot分区就可以了(先备份分区表哦)
作者: dos时代菜鸟    时间: 2025-4-24 11:03
even 发表于 2025-4-21 13:06
感谢分享,用这个把老旧纯bios启动的硬盘改成了GPT格式(折腾的乐趣)。dg可以建biosboot分区,我是在efi分 ...

聪明如你
作者: dos时代菜鸟    时间: 2025-4-28 13:08
本帖最后由 dos时代菜鸟 于 2025-4-28 13:13 编辑

1.5

改进了一处错误
增加了一个功能

增加 grub2 安装过程中的可扩展性,将自定义好的 扩展文件 通过 files_source\grub2_ext 文件夹一并复制到 指定分区,启动时 调用 扩展位置的通用 grub.cfg 。


作者: leitian72853    时间: 2025-5-6 18:14
谢谢分享
作者: 2012z    时间: 2025-6-7 20:35
厉害  谢谢支持
作者: kfqzhw    时间: 2025-6-12 10:51
图文信息量很大,需要时间消化




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3