无忧启动论坛

标题: legacy+grub2以4种方式引导ventoy.vhd失败,求解 [打印本页]

作者: qj_tzy    时间: 3 天前
标题: legacy+grub2以4种方式引导ventoy.vhd失败,求解
grub2菜单如下:
menuentry "[bios] ventoy【esp分区原版vhd 方式1】"  --class=gnu-linux{
search --file --no-floppy --set=root /ventoy.vhd
map --mem --rt --type=hd  /ventoy.vhd
map --hook
chainloader +1
boot
}

menuentry "[bios] ventoy【esp分区原版vhd 方式2】"  --class=gnu-linux{
   search --file --no-floppy --set=root /boot/grub2/grub.cfg
   set grubpath=/boot/grub2/
    search --file --no-floppy --set=root /ventoy.vhd
    map --mem --rt --type=hd  /ventoy.vhd
    map --hook
    set root=(hd0,2)
    linux16 ${grubpath}memdisk
   initrd16 /grub/i386-pc/core.img
#因 ventoy.vhd中有/grub/i386-pc/core.img
  boot
}

menuentry "[bios] ventoy【esp分区原版vhd 方式3】"  --class=gnu-linux{
    search --file --no-floppy --set=root /ventoy.vhd
    map --mem --rt --type=hd  /ventoy.vhd
    map --hook
    set root=(hd0,2)
   ntldr /vtldr
   #vtldr用copy /b \grub\i386-pc\boot.img + \grub\i386-pc\core.img \vtldr生成,放入ventoy.vhd中
   boot
}

menuentry "[bios] ventoy【esp分区原版vhd 方式4】"  --class=gnu-linux{
   search --file --no-floppy --set=root /boot/grub2/grub.cfg  
   set grubpath=/boot/grub2/
   insmod loopback
    search --file --no-floppy --set=root /ventoy.vhd
    loopback loop /ventoy.vhd
    linux16 ${grubpath}memdisk
    initrd16 (loop)/grub/i386-pc/core.img
    #因 ventoy.vhd中有/grub/i386-pc/core.img
    boot
}

测试结果:方式1重启,方式2、方式3、方式4直接返回grub2菜单,把ventoy.vhd放在gpt分区硬盘的esp分区根目录,或放在mbr分区硬盘某分区根目录,均如此。

而以uefi+grub2以下命令行引导成功:
menuentry "[uefi] ventoy【esp分区原版vhd】"  --class=gnu-linux{
    search --file --no-floppy --set=root /ventoy.vhd
   map --mem --first --rt  /ventoy.vhd
   chainloader +1
}

请各位指导,以legacy+grub2如何能成功引导ventoy.vhd,诚谢!



作者: fh123456    时间: 3 天前
你是跟grub2杠上了。用grub4dos启动ventoy.vhd也方便啊
作者: a66    时间: 3 天前
来看看其他大佬的解决思路
作者: 2747157    时间: 3 天前
看看,谢谢
作者: sdb5168    时间: 3 天前
看看,学习下
作者: qj_tzy    时间: 3 天前
fh123456 发表于 2025-10-25 11:31
你是跟grub2杠上了。用grub4dos启动ventoy.vhd也方便啊

用grub4dos引导ventoy.vhd是成功的,我是想用legacy+grub2如何引导它
作者: chen463    时间: 3 天前

GRUB2-LegacyBIOS找不到,暂时藉grub4dos跳转一下啦!


GRUB2:
grub4dos-grldr-vhldr

  1. menuentry "grub4dos-Legacy-vhldr-VT_VHD" --class=custom {
  2.     echo 'grub4dos'
  3.     search -n -s -f /vhldr
  4.     ntldr /vhldr
  5. }
复制代码


VHLDR:
pxe detect
configfile
default 0
timeout 0
hiddenmenu

title Ventoy VHD
find --set-root /0VHD/VT50.vhd
map --heads=2 --sectors-per-track=18 --mem /0VHD/VT50.vhd (hd3)
map --hook
chainloader (hd3)+1
rootnoverify (hd3)

title .......
find --set-root /vtldr
kernel /grub/i386-pc/core.img
boot

title find /menu.lst, /boot/grub/menu.lst, /grub/menu.lst
        errorcheck off
        configfile /boot/grub/menu.lst
        configfile /grub/menu.lst
        if "%@root%"=="(ud)" && calc *0x82A0=*0x82b9&0xff
        if "%@root:~1,1%"=="f" && find --set-root --devices=f /menu.lst && configfile /menu.lst
        find --set-root --ignore-floppies --ignore-cd /menu.lst && configfile /menu.lst
        find --set-root --ignore-floppies --ignore-cd /boot/grub/menu.lst && configfile /boot/grub/menu.lst
        find --set-root --ignore-floppies --ignore-cd /grub/menu.lst && configfile /grub/menu.lst
        configfile http://b.chenall.net/menu.lst
        errorcheck on
        commandline

title commandline
        commandline

title reboot
        reboot

title halt
        halt


作者: qj_tzy    时间: 3 天前
chen463 发表于 2025-10-25 14:30
GRUB2-LegacyBIOS找不到,暂时藉grub4dos跳转一下啦!

GRUB2:

感谢指点,我在用grub2引导ventoy.vhd未实现之前,也是调用grub4deos来实现的。经我测试,这种方式在几个电脑上都没问题。而在我的一台6代cpu笔记本电脑上:
用uefi+grub4dos,或用legacy+grub4dos,或用uefi+grub2,在这台电脑上都引导ventoy.vhd正常。
但用legacy+grub2调用grub4dos如上引导,出现“VT"后死机。
我猜想可能是ventoy.vhd存放的空间不连续造成的,我用SmartDefrag工具把它调连续后,仍如此。不知为何?





作者: seeimpact153    时间: 3 天前
学习一下
作者: 2010XwX    时间: 3 天前
qj_tzy 发表于 2025-10-25 15:48
感谢指点,我在用grub2引导ventoy.vhd未实现之前,也是调用grub4deos来实现的。经我测试,这种方式在几个 ...

你这个问题有两个出发点:
1,如果你仅仅只要求如何在 grub2 环境下启动加载 ventoy.vhd,一个最简单的方法是加载 grubfm ,利用 grubfm 启动  ventoy.vhd。

2,如果你要解决如何在 grub2 环境下,书写语句来启动 ventoy.vhd,那可和大师们讨论。
作者: 肉仔    时间: 3 天前
看看,学习下

作者: qj_tzy    时间: 前天 09:30
2010XwX 发表于 2025-10-25 18:06
你这个问题有两个出发点:
1,如果你仅仅只要求如何在 grub2 环境下启动加载 ventoy.vhd,一个最简单的 ...

我下载的grubfm-en_US,用efi文件在uefi方式已测试成功,非常感谢。除efi文件外,还有loadfm和grubfm.iso,legacy方式用该2个文件之一用grub2或grub4dos引导它吗
作者: 2010XwX    时间: 前天 11:11
qj_tzy 发表于 2025-10-26 09:30
我下载的grubfm-en_US,用efi文件在uefi方式已测试成功,非常感谢。除efi文件外,还有loadfm和grubfm.iso ...

legacy方式下,grub2 或 grub4dos 都可以启动 grubfm.iso,然后利用 grubfm.iso 启动  ventoy.vhd。我没有 legacy方式下 grub2 环境,但在 grub4dos 环境下, 启动 grubfm.iso,可以顺利启动  ventoy.vhd。
作者: qj_tzy    时间: 前天 11:30
2010XwX 发表于 2025-10-26 11:11
legacy方式下,grub2 或 grub4dos 都可以启动 grubfm.iso,然后利用 grubfm.iso 启动  ventoy.vhd。我没 ...

我也用grubfm引导ventoy.vhd成功,感谢指点!
作者: 2010XwX    时间: 前天 11:52
本帖最后由 2010XwX 于 2025-10-26 11:56 编辑
qj_tzy 发表于 2025-10-26 11:30
我也用grubfm引导ventoy.vhd成功,感谢指点!

另外你也可以在网上搜一下5大的 SISO,在 legacy 方式下,grub2 或 grub4dos 都可以加载 SISO,利用它启动 ventoy.vhd。这样对于我们使用者来说,可以选择的方法多一些。
作者: qj_tzy    时间: 前天 12:03
2010XwX 发表于 2025-10-26 11:52
另外你也可以在网上搜一下5大的 SISO,在 legacy 方式下,grub2 或 grub4dos 都可以加载 SISO,利用它启 ...

测试后回复,谢谢!
作者: qj_tzy    时间: 前天 12:53
2010XwX 发表于 2025-10-26 11:52
另外你也可以在网上搜一下5大的 SISO,在 legacy 方式下,grub2 或 grub4dos 都可以加载 SISO,利用它启 ...

1.我原已用grub4dos的bios+uefi引导ventoy.vhd成功。
2.我只在grub4dos中使用过SISO,但在grub2中不知如何使用SISO?
3.我在grub2中用run引导ventoy.vhd,未成功。

作者: it323    时间: 前天 13:08
学习一下,感谢!
作者: guong    时间: 前天 13:59
进来学习的
作者: 2010XwX    时间: 前天 15:17
qj_tzy 发表于 2025-10-26 12:53
1.我原已用grub4dos的bios+uefi引导ventoy.vhd成功。
2.我只在grub4dos中使用过SISO,但在grub2中不知如 ...

grub2 中你可以启动 grldr ,在 grldr 中,你编制一个加载 SISO 的内置菜单,这样你就可以使用 SISO 了。
作者: qj_tzy    时间: 前天 15:42
2010XwX 发表于 2025-10-26 15:17
grub2 中你可以启动 grldr ,在 grldr 中,你编制一个加载 SISO 的内置菜单,这样你就可以使用 SISO 了。

在grub4dos中,感觉不用SISO也可引导ventoy.vdh.

我是这样做的:grub4dos引导的命令行是:
find --set-root --devices=h /ventoy.vhd
map (hd0) (hd)
map /ventoy.vhd  (hd0)
map --hook
chainloader (hd0)+1

把它保存到grven(grldr的变名)中,再如grub2如下引导就能引导ventoy.vhd:
ntldr /boot/g4d/grven

其实我是想找一个用grub2直接引导venoy.vhd的方法。
咨询某网友,他也说没找到这一方法。
作者: chen463    时间: 昨天 08:44
qj_tzy 发表于 2025-10-25 15:48
感谢指点,我在用grub2引导ventoy.vhd未实现之前,也是调用grub4deos来实现的。经我测试,这种方式在几个 ...

我发现调用grub4deos来实现的方式引导ventoy.vhd失败


我是这样做的:grub4dos引导的命令行是:
find --set-root --devices=h /ventoy.vhd
map (hd0) (hd)
map /ventoy.vhd  (hd0)
map --hook
chainloader (hd0)+1

您是否[加载到内存]试试
map--mem /ventoy.vhd  (hd0)



作者: qj_tzy    时间: 昨天 09:25
chen463 发表于 2025-10-27 08:44
我发现调用grub4deos来实现的方式引导ventoy.vhd失败

我是这样做的:grub4dos引导的命令行是:

谢谢,测试了反馈
作者: 2010XwX    时间: 昨天 09:26
本帖最后由 2010XwX 于 2025-10-27 09:28 编辑
qj_tzy 发表于 2025-10-26 15:42
在grub4dos中,感觉不用SISO也可引导ventoy.vdh.

我是这样做的:grub4dos引导的命令行是:

你这个似乎启动不了 ventoy.vhd。我这里再提供一个利用 5大 的 NTBOOT,在 grub4dos 中 启动 ventoy.vhd。
图1,是在 grub4dos 中,启动 NTBOOT menu 菜单,第23项:从 VHD 启动(VBOOT),最底部提示句表示它默认自动搜索各分区 BOOT 目录内的 VBOOT.VHD。如果你的 ventoy.vhd 名字名为: VBOOT.VHD,且放在某分区 BOOT 目录内,它就可以自己加载启动。如果你的 ventoy.vhd 不是这样,你可以进入第23项,自己输入你的 ventoy.vhd 名字及放置位置,同样可以启动。图2显示,我的 ventoy.vhd 是 1.1.05 版:Ventoy1105.VHD,位置放在 PE 文件夹里。

NTBoot启动VHD1.jpg (201.49 KB, 下载次数: 7)

图1:NTBoot menu

图1:NTBoot menu

NTBoot启动VHD2.jpg (66.93 KB, 下载次数: 6)

图2:NTBoot menu 第23项

图2:NTBoot menu 第23项

作者: qj_tzy    时间: 昨天 09:30
2010XwX 发表于 2025-10-27 09:26
你这个似乎启动不了 ventoy.vhd。我这里再提供一个利用 5大 的 NTBOOT,在 grub4dos 中 启动 ventoy.vhd ...

感谢,能否提供一个下载地址?
作者: 2010XwX    时间: 昨天 09:54
本帖最后由 2010XwX 于 2025-10-27 10:03 编辑
qj_tzy 发表于 2025-10-27 09:30
感谢,能否提供一个下载地址?

下载:
https://www.123pan.com/s/NflRVv-Cm5Sh

具体讨论:
http://bbs.wuyou.net/forum.php?m ... 8089&fromuid=357299


作者: qj_tzy    时间: 昨天 11:15
2010XwX 发表于 2025-10-27 09:54
下载:
https://www.123pan.com/s/NflRVv-Cm5Sh

感谢,下载学习下,遇到问题时再请你指点!
作者: qj_tzy    时间: 昨天 12:15
qj_tzy 发表于 2025-10-27 09:25
谢谢,测试了反馈

find --set-root --devices=h /ventoy.vhd
map (hd0) (hd)
map --mem /ventoy.vhd  (hd0)
map --hook
chainloader (hd0)+1
经测试,将上述导入grven中,用grub2调用grven,出现“VT”后死机。
但用grub4dos引导ventoy.vhd时,不加--mem执行正常。


作者: qj_tzy    时间: 昨天 13:20
2010XwX 发表于 2025-10-27 09:26
你这个似乎启动不了 ventoy.vhd。我这里再提供一个利用 5大 的 NTBOOT,在 grub4dos 中 启动 ventoy.vhd ...

用ntboot的vboot项引导ventoy.vhd出现出错提示:


作者: 2010XwX    时间: 昨天 15:12
本帖最后由 2010XwX 于 2025-10-27 15:15 编辑

你测试时,会显示我24楼的图1和图2,把图贴出来看一下。

另外,NTBoot,还有一个自动列表功能,它在 NTBoot 菜单的第 28 项:【28.自动列表】见图1。
进入第28项【28.自动列表】,选择第3项【3.自动列表 VHD 并启动,VHDS 目录(此菜单仅限VHD使用)】见图2。
进入此项后,见图3,可以看到所有可用设备下 /VHDS/ 文件夹里的 vhd 文件,这里是我 VHDS 文件夹里各个版本的 ventoy.vhd。输入文件编号,即可启动相应版本的 ventoy.vhd。注意选择 NT5 方式启动。

NTBoot启动列表1.jpg (101.68 KB, 下载次数: 3)

图1:NTBoot 【28.自动列表】

图1:NTBoot 【28.自动列表】

NTBoot启动列表2.jpg (194.2 KB, 下载次数: 3)

图2:【3.自动列表 VHD 并启动】

图2:【3.自动列表 VHD 并启动】

NTBoot启动列表3.jpg (88.16 KB, 下载次数: 2)

图3:输入文件号,启动相应版本 ventoy.vhd

图3:输入文件号,启动相应版本 ventoy.vhd

作者: qj_tzy    时间: 昨天 19:25
本帖最后由 qj_tzy 于 2025-10-27 19:27 编辑
2010XwX 发表于 2025-10-27 15:12
你测试时,会显示我24楼的图1和图2,把图贴出来看一下。

另外,NTBoot,还有一个自动列表功能,它在 NTB ...

用ntboot引导ventoy.vhd的情况

首先说明下,该ventoy.vhd存放在gpt分区的esp分区根目录下,用uefi+grub4dos、uefi+grub2、legacy+grub4dos,这三者引导ventoy.vhd均正常。
而用legacy+grub2采取几种方式均失败。

刚才用ntboot作了测试。
grub4dos的菜单是:
title 启动NTBOOT单文件
/boot/g4d/NTBOOT
#已把下载的NTBOOT拷入该目录
boot
#能引导成功

1.ntboot的vboot项输入ventoy.vhd,回车执行后出错





2.ntboot自动列表时出错(选择列出根目录vhd)





作者: 2010XwX    时间: 昨天 19:53
qj_tzy 发表于 2025-10-27 19:25
用ntboot引导ventoy.vhd的情况

首先说明下,该ventoy.vhd存放在gpt分区的esp分区根目录下,用uefi+gru ...

1,把你的 ventoy.vhd 更名为 vboot.vhd,然后在 gpt 分区的任一可见分区根目录建一文件夹 boot,把 vboot.vhd 放入 boot 文件夹里,然后一试。esp 分区是隐藏区且未分配盘符,可能不认。

2,自动列表不能选择根目录,它采用 NT6 方式启动,自动列表一定要选择 3.,前面3个(0,1, 2)都不能选。第3项可采用 NT5 方式启动。
作者: qj_tzy    时间: 昨天 20:22
2010XwX 发表于 2025-10-27 19:53
1,把你的 ventoy.vhd 更名为 vboot.vhd,然后在 gpt 分区的任一可见分区根目录建一文件夹 boot,把 vboo ...

好的,我再试试
作者: 2010XwX    时间: 昨天 20:41
qj_tzy 发表于 2025-10-27 20:22
好的,我再试试

刚才我在虚拟机里测试了 1 的情况,原先估计 NTBOOT 会不认隐藏区内容,实际测试下来可成功启动。一种是在 esp 分区根目录 建 boot 文件夹,把 ventoy.vhd 更名为 vboot.vhd 放入 boot 文件夹里;第二种就是你测试的情况,把 ventoy.vhd 直接放在 esp 分区根目录里。两种情况都成功启动 ventoy.vhd 。不清楚为什么你不成功。是否制作 ventoy.vhd 不规范。
作者: qj_tzy    时间: 昨天 20:52
2010XwX 发表于 2025-10-27 19:53
1,把你的 ventoy.vhd 更名为 vboot.vhd,然后在 gpt 分区的任一可见分区根目录建一文件夹 boot,把 vboo ...

测试情况如下:

1.vboot项
在mbr分区硬盘的激活可见分区,建立目录\boot\,拷入ventoy.vhd,更名为vboot.vhd,引导出错。
在gpt分区硬盘的某可见分区(ntfs格式),建立目录\boot\,拷入ventoy.vhd,更名为vboot.vhd,引导出错。

2.自动列表
在mbr分区硬盘的激活可见分区,建立目录\vhds\,拷入ventoy.vhd,列表后选5,引导出错。
在gpt分区硬盘的某可见分区(ntfs格式),建立目录\vhds\,拷入ventoy.vhd,列表后选5,引导出错。

以上出错提示都是一样的,见29楼。

3.又用grub4dos调用grubfm测试,选择esp分区根目录的ventoy.vhd,用map方式引导,正常显现ventoy界面,其左下角显示"11.0.7 bios"。
作者: qj_tzy    时间: 昨天 20:57
2010XwX 发表于 2025-10-27 20:41
刚才我在虚拟机里测试了 1 的情况,原先估计 NTBOOT 会不认隐藏区内容,实际测试下来可成功启动。一种是 ...

或许是吧,我是在磁盘管理中创建300M的vhd,再用Ventoy2Disk选择该虚拟磁盘建立的,不知对否,能否把你建立的ventoy.vhd传我试下,或者我把我建立的ventoy.vhd传给你,请你帮我看下错在哪里,你看可以吗?
作者: qj_tzy    时间: 昨天 21:00
我建立的ventoy.vhd的链接是:通过网盘分享的文件:ventoy.7z
链接: https://pan.baidu.com/s/1zYO7GqjQzg7mfsCglDYz0w 提取码: csdy
作者: 2010XwX    时间: 昨天 21:12
本帖最后由 2010XwX 于 2025-10-27 21:35 编辑
qj_tzy 发表于 2025-10-27 21:00
我建立的ventoy.vhd的链接是:通过网盘分享的文件:ventoy.7z
链接: https://pan.baidu.com/s/1zYO7GqjQzg ...

你的 ventoy.vhd 在我的虚拟机里测试都正常。我把我的 ventoy110.vhd 发你测试一下,大小约110M,在以下网盘中 PE.7Z。

https://pan.baidu.com/s/1i9S_EG7GRsezpn7gwilIyQ?pwd=ex4w

截图是你的测试页面,【04】ventoy300.vhd 是你的 VHD。采用 自动列表 选项。其它测试同。

另外你确认一下,grub4dos 启动 NTBOOT 语句:

#8
title   【08】 运行 NTBOOT 启动管理器    \n    Legacy BIOS 模式下, NTBOOT 启动管理器。\n    自动搜索并启动存在的系统,及各类映像文件 IS_,IM_,WIM,VHD ......   
setmenu --help=2=0=0
setmenu --timeout=0=0=0xff00
command /BOOT/GRUB/NTBOOT menu

快照2.jpg (80.49 KB, 下载次数: 0)

快照2.jpg

快照3.jpg (86.16 KB, 下载次数: 0)

快照3.jpg

作者: whyida    时间: 昨天 22:10
看看,学习下
作者: qj_tzy    时间: 昨天 22:31
2010XwX 发表于 2025-10-27 21:12
你的 ventoy.vhd 在我的虚拟机里测试都正常。我把我的 ventoy110.vhd 发你测试一下,大小约110M,在以下 ...

刚才有点事,只有明晚测试了,测试后再回复,谢谢!
作者: qj_tzy    时间: 昨天 23:08
2010XwX 发表于 2025-10-27 21:12
你的 ventoy.vhd 在我的虚拟机里测试都正常。我把我的 ventoy110.vhd 发你测试一下,大小约110M,在以下 ...

在你的提醒下,我用我制作的ventoy.vhd,在qemu下测试:
1.自动列表,在vhds/ventoy.vhd,选5引导正常,出现38楼快照3界面。
2.在mbr分区硬盘的fat32或ntfs分区,建立/boot/目录,拷入ventoy.vhd,更名为vboot.vhd,引导正常。但在gpt分区硬盘的esp分区或其他fat32或ntfs分区,同样测试,提示找不到文件。

但在实机上测试,就是35楼的情况。
你发的ventoy.vhd,只有明晚再测试了。
作者: 2010XwX    时间: 6 小时前
本帖最后由 2010XwX 于 2025-10-28 07:05 编辑
qj_tzy 发表于 2025-10-27 23:08
在你的提醒下,我用我制作的ventoy.vhd,在qemu下测试:
1.自动列表,在vhds/ventoy.vhd,选5引导正常, ...

我在实体机和虚拟机(VMWare)上测试都是正常的,分区格式都是 gpt,由于用 DG 快速标准化分区,esp 分区为 300M,无法放入你的 300M ventoy.vhd,只有放入我的 110M ventoy.vhd。你的 300M ventoy.vhd 是放在可见区测试的,效果也正常的。不清楚你的测试过程如何。我的测试过程如下:

测试机器都是gpt 分区,采用 U盘 BIOS 启动进入 grub4dos 环境,加载 NTBOOT,无论 ventoy.vhd 放在 esp 区还是其它可见区,对上述 ventoy.vhd 加载启动都成功。

截图是我的虚拟机 DG 图,HD0 是虚拟机 gpt 分区,300M esp 分区里建立个 boot 文件夹,里面放置了 vboot.vhd。HD1 是我的 启动 U 盘。UD 三分区格式。见第二张截图。

快照4.jpg (189.19 KB, 下载次数: 0)

快照4.jpg

快照5.jpg (168.54 KB, 下载次数: 0)

快照5.jpg





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