无忧启动论坛

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

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

    [复制链接]
1#
发表于 2021-6-28 12:12:23 | 显示全部楼层
vhdx有时候启动出错,是不是可以改为map方式启动,因为vhdx里面包含ESP分区或启动程序了(bootmgfw.efi)?

点评

我试过不论哪个方式都有可能出错,特别是win10的vhdx,grub2引导基本都出错. 后来在本论坛一贴提示说要用微软自身的引导 ( http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=425569&pid=4310864&fr  详情 回复 发表于 2021-6-28 13:30
回复

使用道具 举报

2#
发表于 2021-6-28 17:47:10 | 显示全部楼层
hilsonma 发表于 2021-6-28 14:09
我碰到的是Windows无法更新计算机的启动配置。
这个应该只能用微软自身引导才能解决。

我的不是,最多还是类似这个错误:


按两次或n此回车都不行。

点评

这个我之前也遇过,但是我使用微软自身引导完成安装后再改用grub2引导就再也没有遇过。  详情 回复 发表于 2021-6-28 17:50
回复

使用道具 举报

3#
发表于 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

点评

我也不是很清楚,反正之前我是搞不定vhdx,经常出各种问题不得不放弃vhdx,改装实体盘 但实体盘也常遇到无法安装到你的硬盘配置上之类的问题 后来才知道mbr硬盘用bios引导, gpt硬盘用uefi引导,而且是微软自身的引  详情 回复 发表于 2021-6-28 18:32
回复

使用道具 举报

4#
发表于 2021-6-28 19:41:30 | 显示全部楼层
hilsonma 发表于 2021-6-28 18:32
我也不是很清楚,反正之前我是搞不定vhdx,经常出各种问题不得不放弃vhdx,改装实体盘
但实体盘也常遇到 ...

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

使用道具 举报

5#
发表于 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:

点评

不要用imagex 使用winntsetup,要点 优化调整,勾上 禁用系统休眠 禁用页面文件 这两个 我还勾了 禁用系统还原 禁用用帐户控制,后面两个视乎你的需要来决定是否勾。 如果你不使用差分,就可以直接使用 bcdboo  详情 回复 发表于 2021-6-28 22:38
vhd(x)的话,不用imagex命令解压,但是要双击vhdx文件,双击就相当于挂载它,会自动分配盘符,按照这个盘符来运行bcdboot建立引导。  详情 回复 发表于 2021-6-28 20:38
回复

使用道具 举报

6#
发表于 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的错误提示




点评

你用的 GRUB2 版本太低了。这个应该是刚弄出 ntboot 时候的版本。 你没有找对地方。vhdx是用 ntboot 启动的。 不行。vhd里面必须安装 SVBus 驱动才能识别虚拟盘。另外,vhdx 不能 map。  详情 回复 发表于 2021-6-30 09:45
我想起一个事情:下载包里的bootmgfw.efi是比较旧版本的,如果要启动的是比较新版本的win10,请使用新的bootmgfw.efi替换下载包里的bootmgfw.efi,之前有坛友反馈过后来是这样解决的。  详情 回复 发表于 2021-6-30 02:26
回复

使用道具 举报

7#
发表于 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;

点评

你的vhd是双分区的带ESP的,可以用map 我的都是单分区的不带ESP的,你做一个这样的试试看能不能用map引导,我没有试过,都是用ntboot的。  详情 回复 发表于 2021-6-30 02:29
回复

使用道具 举报

8#
发表于 2021-6-30 09:28:44 | 显示全部楼层
hilsonma 发表于 2021-6-30 02:26
我想起一个事情:下载包里的bootmgfw.efi是比较旧版本的,如果要启动的是比较新版本的win10,请使用新的b ...

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

点评

可以把你的vhd文件用文叔叔发给我试试  详情 回复 发表于 2021-6-30 09:35
回复

使用道具 举报

9#
发表于 2021-6-30 09:47:07 | 显示全部楼层
hilsonma 发表于 2021-6-30 09:35
可以把你的vhd文件用文叔叔发给我试试

好的,稍等,感谢大神!

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

使用道具 举报

10#
发表于 2021-6-30 10:10:24 | 显示全部楼层
wintoflash 发表于 2021-6-30 09:45
你用的 GRUB2 版本太低了。这个应该是刚弄出 ntboot 时候的版本。

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

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

使用道具 举报

11#
发表于 2021-6-30 10:19:05 | 显示全部楼层
hilsonma 发表于 2021-6-30 09:35
可以把你的vhd文件用文叔叔发给我试试

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

使用道具 举报

12#
发表于 2021-6-30 10:21:29 | 显示全部楼层
本帖最后由 2011wolfsina 于 2021-6-30 10:27 编辑
hilsonma 发表于 2021-6-30 09:35
可以把你的vhd文件用文叔叔发给我试试

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

点评

试了,用我的启动模板直接启动没有问题,列表再启动也没有问题。 附件是我使用的启动单文件: 这是制作模板,里面的run文件夹就是本贴一楼的附件的最新版  详情 回复 发表于 2021-6-30 10:54
回复

使用道具 举报

13#
发表于 2021-6-30 11:25:04 | 显示全部楼层
hilsonma 发表于 2021-6-30 10:54
试了,用我的启动模板直接启动没有问题,列表再启动也没有问题。

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

问题完美解决!
回复

使用道具 举报

14#
发表于 2021-6-30 11:54:54 | 显示全部楼层
hilsonma 发表于 2021-6-30 10: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 12:25
回复

使用道具 举报

15#
发表于 2021-6-30 17:31:19 | 显示全部楼层
hilsonma 发表于 2021-6-30 12:25
这个模板是64位的,如果要生成32位的,需要替换相关文件:
run里的bootmgfw.efi要换成32位的
模块文件 ...

好的,
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 15:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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