无忧启动论坛

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

[分享] grub2的自动菜单和多功启动(以cfg文件的方式仿造g4d的run/siso)

    [复制链接]
163#
发表于 2021-10-14 21:39:10 | 只看该作者
本帖最后由 useQQqqq99 于 2021-10-14 21:40 编辑
hilsonma 发表于 2021-6-30 10:54
试了,用我的启动模板直接启动没有问题,列表再启动也没有问题。

附件是我使用的启动单文件:

能以g4d的 run/siso 方式 层层 自动编号吗? 怎么编辑?

点评

只能自动列表成菜单,不能自动编号  详情 回复 发表于 2021-10-14 21:40
回复

使用道具 举报

162#
发表于 2021-9-2 14:13:52 | 只看该作者
谢谢分享,学习中
回复

使用道具 举报

161#
发表于 2021-8-19 18:00:11 | 只看该作者
不好意思,是我改了文件夹名为run efi_one,中间用了空格,没用连接符。可以用的。谢谢
回复

使用道具 举报

160#
 楼主| 发表于 2021-8-19 17:50:30 | 只看该作者
scxiegangxy 发表于 2021-8-19 17:16
运行“定制grub2.cmd”,可以在当前目录生成和找到grubx64.efi,但grubx64用起来后没有菜单,直接进入命令行 ...

使用 定制grub2.cmd 生成的grubx64 不是单文件的,需要配合菜单文件使用,找不到菜单文件就会进入命令行。
回复

使用道具 举报

159#
 楼主| 发表于 2021-8-19 17:48:55 | 只看该作者
scxiegangxy 发表于 2021-8-19 17:13
运行“制作单文件efi.cmd”在当前目录中找不到生成的efi文件.请教是直接运行它就可以吗?谢谢哈

是的,直接运行就可以了。如果没有生成efi文件,请检查是否少 build 这个文件夹。
或者用记事本打开 制作单文件efi.cmd 这个脚本文件,在最后添加一行命令,内容是 pause
这样在运行结束时就会停在运行窗口,看看有什么提示信息
回复

使用道具 举报

158#
发表于 2021-8-19 17:16:50 | 只看该作者
运行“定制grub2.cmd”,可以在当前目录生成和找到grubx64.efi,但grubx64用起来后没有菜单,直接进入命令行。再教教怎么用吧!谢谢

点评

使用 定制grub2.cmd 生成的grubx64 不是单文件的,需要配合菜单文件使用,找不到菜单文件就会进入命令行。  详情 回复 发表于 2021-8-19 17:50
回复

使用道具 举报

157#
发表于 2021-8-19 17:13:50 | 只看该作者
运行“制作单文件efi.cmd”在当前目录中找不到生成的efi文件.请教是直接运行它就可以吗?谢谢哈

点评

是的,直接运行就可以了。如果没有生成efi文件,请检查是否少 build 这个文件夹。 或者用记事本打开 制作单文件efi.cmd 这个脚本文件,在最后添加一行命令,内容是 pause 这样在运行结束时就会停在运行窗口,看看  详情 回复 发表于 2021-8-19 17:48
回复

使用道具 举报

156#
发表于 2021-6-30 17:31:19 | 只看该作者
hilsonma 发表于 2021-6-30 12:25
这个模板是64位的,如果要生成32位的,需要替换相关文件:
run里的bootmgfw.efi要换成32位的
模块文件 ...

好的,
回复

使用道具 举报

155#
 楼主| 发表于 2021-6-30 12:25:44 | 只看该作者
2011wolfsina 发表于 2021-6-30 11:54
感谢大神解惑!

另外,这个模板bootia32.efi(含run)可以生成吗?

这个模板是64位的,如果要生成32位的,需要替换相关文件:
run里的bootmgfw.efi要换成32位的
模块文件夹不再是x86_64-efi,而是i386-efi
制作脚本里的模块参数 -O x86_64-efi 要改成 -O i386-efi

点评

好的,  详情 回复 发表于 2021-6-30 17:31
回复

使用道具 举报

154#
发表于 2021-6-30 11:54:54 | 只看该作者
hilsonma 发表于 2021-6-30 10:54
试了,用我的启动模板直接启动没有问题,列表再启动也没有问题。

附件是我使用的启动单文件:

感谢大神解惑!

另外,这个模板bootia32.efi(含run)可以生成吗?
回复

使用道具 举报

153#
发表于 2021-6-30 11:25:04 | 只看该作者
hilsonma 发表于 2021-6-30 10:54
试了,用我的启动模板直接启动没有问题,列表再启动也没有问题。

附件是我使用的启动单文件:

问题完美解决!
回复

使用道具 举报

152#
 楼主| 发表于 2021-6-30 10:54:50 | 只看该作者
2011wolfsina 发表于 2021-6-30 10:21
文叔叔 https://ws28.cn/f/5ser59fukdk

试了,用我的启动模板直接启动没有问题,列表再启动也没有问题。

附件是我使用的启动单文件:
grub2.7z (2.14 MB, 下载次数: 115)

这是制作模板,里面的run文件夹就是本贴一楼的附件的最新版
efi_one.7z (3.33 MB, 下载次数: 353)

点评

感谢大神解惑! 另外,这个模板bootia32.efi(含run)可以生成吗?  详情 回复 发表于 2021-6-30 11:54
问题完美解决!  详情 回复 发表于 2021-6-30 11:25
回复

使用道具 举报

151#
发表于 2021-6-30 10:21:29 | 只看该作者
本帖最后由 2011wolfsina 于 2021-6-30 10:27 编辑
hilsonma 发表于 2021-6-30 09:35
可以把你的vhd文件用文叔叔发给我试试

文叔叔 https://ws28.cn/f/5ser59fukdk
回复

使用道具 举报

150#
发表于 2021-6-30 10:19:05 | 只看该作者
hilsonma 发表于 2021-6-30 09:35
可以把你的vhd文件用文叔叔发给我试试

可能是MBROSTool6.26的启动配置对您的efi有影响,因为我用ventoy-uefi模式启动您的efi是可以正常启动vhdx的,MBROSTool的udm的不行。
回复

使用道具 举报

149#
发表于 2021-6-30 10:10:24 | 只看该作者
wintoflash 发表于 2021-6-30 09:45
你用的 GRUB2 版本太低了。这个应该是刚弄出 ntboot 时候的版本。

你没有找对地方。vhdx是用 ntboot ...

比较小白,谢谢解答!
回复

使用道具 举报

148#
发表于 2021-6-30 09:47:07 | 只看该作者
hilsonma 发表于 2021-6-30 09:35
可以把你的vhd文件用文叔叔发给我试试

好的,稍等,感谢大神!

另外,如果map方式要怎样写,用iso的map $1这个不行。
回复

使用道具 举报

147#
发表于 2021-6-30 09:45:25 | 只看该作者
2011wolfsina 发表于 2021-6-29 22:40
感觉与vhdx关系不大,启动wim也是出错。奇怪的是运行mentest.efi他显示的路径居然是\boot\memtest.efi.是 ...
但是我用GPT硬盘BCD引导和U盘GrubFMMultiArch.iso或GrubFMx64.efi引导都能正常进入Win8.1x64EIE.vhdx系统(用winsetup安装的Win8.1x64EIE精简版,里面有windows分区和esp分区)。

你用的 GRUB2 版本太低了。这个应该是刚弄出 ntboot 时候的版本。
查了下grubfm源代码,vhdx好像是用map启动的?

你没有找对地方。vhdx是用 ntboot 启动的。
你的vhd是双分区的带ESP的,可以用map
我的都是单分区的不带ESP的,你做一个这样的试试看能不能用map引导,我没有试过,都是用ntboot的。

不行。vhd里面必须安装 SVBus 驱动才能识别虚拟盘。另外,vhdx 不能 map。

点评

比较小白,谢谢解答!  详情 回复 发表于 2021-6-30 10:10
回复

使用道具 举报

146#
 楼主| 发表于 2021-6-30 09:35:39 | 只看该作者
2011wolfsina 发表于 2021-6-30 09:28
我的是win8.1x64,更换过系统的bootmgfw.efi也是同样的错误。

可以把你的vhd文件用文叔叔发给我试试

点评

文叔叔 https://ws28.cn/f/5ser59fukdk 取件码 2t3z5  详情 回复 发表于 2021-6-30 10:21
可能是MBROSTool6.26的启动配置对您的efi有影响,因为我用ventoy-uefi模式启动您的efi是可以正常启动vhdx的,MBROSTool的udm的不行。  详情 回复 发表于 2021-6-30 10:19
好的,稍等,感谢大神! 另外,如果map方式要怎样写,用iso的map $1这个不行。  详情 回复 发表于 2021-6-30 09:47
回复

使用道具 举报

145#
发表于 2021-6-30 09:28:44 | 只看该作者
hilsonma 发表于 2021-6-30 02:26
我想起一个事情:下载包里的bootmgfw.efi是比较旧版本的,如果要启动的是比较新版本的win10,请使用新的b ...

我的是win8.1x64,更换过系统的bootmgfw.efi也是同样的错误。
回复

使用道具 举报

144#
 楼主| 发表于 2021-6-30 02:29:18 | 只看该作者
2011wolfsina 发表于 2021-6-29 22:57
查了下grubfm源代码,vhdx好像是用map启动的?

https://gitee.com/a1ive/grub2-filemanager/blob/master ...

你的vhd是双分区的带ESP的,可以用map
我的都是单分区的不带ESP的,你做一个这样的试试看能不能用map引导,我没有试过,都是用ntboot的。
回复

使用道具 举报

143#
 楼主| 发表于 2021-6-30 02:26:28 | 只看该作者
2011wolfsina 发表于 2021-6-29 22:40
感觉与vhdx关系不大,启动wim也是出错。奇怪的是运行mentest.efi他显示的路径居然是\boot\memtest.efi.是 ...

我想起一个事情:下载包里的bootmgfw.efi是比较旧版本的,如果要启动的是比较新版本的win10,请使用新的bootmgfw.efi替换下载包里的bootmgfw.efi,之前有坛友反馈过后来是这样解决的。

点评

我的是win8.1x64,更换过系统的bootmgfw.efi也是同样的错误。  详情 回复 发表于 2021-6-30 09:28
回复

使用道具 举报

142#
发表于 2021-6-29 22:57:52 | 只看该作者
查了下grubfm源代码,vhdx好像是用map启动的?

https://gitee.com/a1ive/grub2-fi ... /samples/grubfm.cfg


function menu_vhd_uefi_map
{
  vhd -d vhd0;
  vhd -p vhd0 "${grub_file}";
  map --mem --type=HD --disk vhd0;
  echo "[INF] Press any key to continue ...";
  getkey;
}


# vhd
  elif regexp '^[vV][hH][dD]$' "${name_ext}"; then
    if [ "$grub_platform" = "pc" ]; then
      menu_vhd_bios_vboot;
    elif [ "$grub_platform" = "efi" ]; then
      if [ "$grub_cpu" = "x86_64" ]; then
        menu_vhd_uefi_map;
      fi;
    fi;
回复

使用道具 举报

141#
发表于 2021-6-29 22:40:34 | 只看该作者
hilsonma 发表于 2021-6-28 22:38
不要用imagex
使用winntsetup,要点 优化调整,勾上 禁用系统还原 禁用系统休眠 禁用页面文件 这三个
...

感觉与vhdx关系不大,启动wim也是出错。奇怪的是运行mentest.efi他显示的路径居然是\boot\memtest.efi.是不是ntboot.mod版本的问题,比较新版的grubFMx64能正常运行

vhdx的错误提示


wim的错误提示




回复

使用道具 举报

140#
 楼主| 发表于 2021-6-28 22:38:24 | 只看该作者
本帖最后由 hilsonma 于 2021-6-28 22:47 编辑
2011wolfsina 发表于 2021-6-28 19:55
有个问题:
安装好Win8.1x64,是不是可以直接使用
bcdboot.exe Y:\windows /s Z: /f ALL /l zh-cn

不要用imagex
使用winntsetup,要点 优化调整,勾上 禁用系统还原 禁用系统休眠 禁用页面文件 这三个
我还勾了 禁用用帐户控制,后面这个视乎你的需要来决定是否勾。

如果你不使用差分,winntsetup已经帮你建好引导了。也可以手工直接操作
bcdboot Y:windows /s z: /f uefi
或者
bcdboot Y:windows /s c: /f bios
前者适用uefi模式,如需要可事先备份原来的bootmgfw.efi和bcd
后者适用legacy模式,如需要可事先备份原来的bootmgr和bcd
Y 是你挂载vhdx的盘符,Z是GPT硬盘的ESP,C是MBR硬盘的激活的主分区
如果盘符不对需要作相应更改

如果你使用差分,需要先分离原vhdx,将其作为父vhdx,建立子vhdx (差分vhdx),再挂载子vhdx,然后再运行bcdboot建立微软自身引导。

已经建立子vhdx的父vhdx不能改名,不能挂载,总之不要再动它,否则子vhdx会出错。
一旦动了,原来的子vhdx就不能再用,需要重新建立子vhdx

点评

感觉与vhdx关系不大,启动wim也是出错。奇怪的是运行mentest.efi他显示的路径居然是\boot\memtest.efi.是不是ntboot.mod版本的问题,比较新版的grubFMx64能正常运行 vhdx的错误提示 [attachimg]482556[/attachim  详情 回复 发表于 2021-6-29 22:40
回复

使用道具 举报

139#
发表于 2021-6-28 20:38:23 | 只看该作者
2011wolfsina 发表于 2021-6-28 19:55
有个问题:
安装好Win8.1x64,是不是可以直接使用
bcdboot.exe Y:\windows /s Z: /f ALL /l zh-cn

vhd(x)的话,不用imagex命令解压,但是要双击vhdx文件,双击就相当于挂载它,会自动分配盘符,按照这个盘符来运行bcdboot建立引导。
回复

使用道具 举报

138#
发表于 2021-6-28 19:55:55 | 只看该作者
hilsonma 发表于 2021-6-28 18:32
我也不是很清楚,反正之前我是搞不定vhdx,经常出各种问题不得不放弃vhdx,改装实体盘
但实体盘也常遇到 ...

有个问题:
安装好Win8.1x64,是不是可以直接使用
bcdboot.exe Y:\windows /s Z: /f ALL /l zh-cn
不需要解压
imagex.exe /apply X:\sources\install.wim 2 Y:
回复

使用道具 举报

137#
发表于 2021-6-28 19:41:30 | 只看该作者
hilsonma 发表于 2021-6-28 18:32
我也不是很清楚,反正之前我是搞不定vhdx,经常出各种问题不得不放弃vhdx,改装实体盘
但实体盘也常遇到 ...

明白,也可能是winsetup安装时生成ESP的问题,我试试用微软自身引导走一次vhdx,谢谢大神耐心解答!
回复

使用道具 举报

136#
 楼主| 发表于 2021-6-28 18:32:03 | 只看该作者
本帖最后由 hilsonma 于 2021-6-28 18:53 编辑
2011wolfsina 发表于 2021-6-28 18:17
是vhdx文件有问题吗?但是我用GPT硬盘BCD引导和U盘GrubFMMultiArch.iso或GrubFMx64.efi引导都能正常进入W ...

我也不是很清楚,反正之前我是搞不定vhdx,经常出各种问题不得不放弃vhdx,改装实体盘
但实体盘也常遇到无法安装到你的硬盘配置上之类的问题
后来才知道mbr硬盘用bios引导, gpt硬盘用uefi引导,而且是微软自身的引导
我之前多数用的SR的win8,没有那么讲究,所以不知道win10会这么严格。
现在一般是用飞天舞的win10ltsb,按上面要求走完安装后,再改用grub2引导就没有遇过问题。

我没有用ventoy和mbrostool,bios下我硬盘用wee+grldr,U盘用fbinst+grldr,uefi下全部用grub2

硬盘分区我用dg,扇区对齐我用pa,分区查看和引导调整我用bootice

我的意思是win10更较真,最好是在用了其他分区工具后,在分区信息确定不改了,再用微软自身引导走一次vhdx的安装,完成后再改用其他引导,而且改引导时不能改变分区信息。这样应该问题就少了。

你的win81也可以这样试试看。

点评

有个问题: 安装好Win8.1x64,是不是可以直接使用 bcdboot.exe Y:\windows /s Z: /f ALL /l zh-cn 不需要解压 imagex.exe /apply X:\sources\install.wim 2 Y:  详情 回复 发表于 2021-6-28 19:55
明白,也可能是winsetup安装时生成ESP的问题,我试试用微软自身引导走一次vhdx,谢谢大神耐心解答!  详情 回复 发表于 2021-6-28 19:41
回复

使用道具 举报

135#
发表于 2021-6-28 18:17:02 | 只看该作者
hilsonma 发表于 2021-6-28 17:50
这个我之前也遇过,但是我使用微软自身引导完成安装后再改用grub2引导就再也没有遇过。

是vhdx文件有问题吗?但是我用GPT硬盘BCD引导和U盘GrubFMMultiArch.iso或GrubFMx64.efi引导都能正常进入Win8.1x64EIE.vhdx系统(用winsetup安装的Win8.1x64EIE精简版,里面有windows分区和esp分区)。

而且很奇怪
UEFI→U盘ventoy引导→本贴生成的efi→正常列表,正常启动Win8.1x64EIE.vhdx

UEFI→U盘MBROSTool6.26分区引导→本贴生成的efi→能正常列表,但引导Win8.1x64EIE.vhdx出现上述错误

UEFI→U盘MBROSTool6.26分区引导→GrubFMx64.efi→能正常列表,正常启动Win8.1x64EIE.vhdx

MBROSTool6.26分区:建立一个空白fat32分区,把本贴生成的efi改名bootx64.efi放在/efi/boot/bootx64.efi,UEFI就能启动

MBROSTool6.26
http://bbs.wuyou.net/forum.php?m ... tra=page%3D1&page=1

GrubFMMultiArch.iso
https://gitee.com/a1ive/grub2-filemanager/attach_files/587149/download/grubfm_multiarch.iso


https://github.com/a1ive/grub2-filemanager/releases/download/v7.4.0/grubfm-zh_CN.7z
回复

使用道具 举报

134#
 楼主| 发表于 2021-6-28 17:50:36 | 只看该作者
2011wolfsina 发表于 2021-6-28 17:47
我的不是,最多还是类似这个错误:

这个我之前也遇过,但是我使用微软自身引导完成安装后再改用grub2引导就再也没有遇过。

点评

是vhdx文件有问题吗?但是我用GPT硬盘BCD引导和U盘GrubFMMultiArch.iso或GrubFMx64.efi引导都能正常进入Win8.1x64EIE.vhdx系统(用winsetup安装的Win8.1x64EIE精简版,里面有windows分区和esp分区)。 而且很奇怪  详情 回复 发表于 2021-6-28 18:17
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-2 09:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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