无忧启动论坛

标题: Ventoy也可与你的操作系统和谐共存于同一硬盘,体验不一样的玩法 [打印本页]

作者: ksjifjui    时间: 2022-10-28 09:26
标题: Ventoy也可与你的操作系统和谐共存于同一硬盘,体验不一样的玩法
本帖最后由 ksjifjui 于 2023-12-8 13:23 编辑

Ventoy中文官方网站
提倡尊重原创产品,爱戴原创开发者,不提倡更改原有产品逻辑的行为,本帖提供的部署文件修改了原创产品逻辑,纯属自娱自乐,希望原作者海涵

为啥分享这么个帖子?

想解决的问题

请先自行检查你的分区结构是否满足手动部署条件
如果你的硬盘第1分区是EFI分区或FAT分区,并且操作系统是以UEFI方式启动的,那恭喜你,部署起来会非常简单,分区不满足条件的也不要紧,下图给出了分区条件,不怕麻烦的话,可根据要求自行调整
分区.png

手工部署UEFI(x64)版本

rEFind
  1. loader /EFI/VENTOY/grubx64_real.efi
复制代码
GRUB 2
  1. chainloader  /EFI/VENTOY/grubx64_real.efi
复制代码
Systemd-boot
  1. efi  /EFI/VENTOY/grubx64_real.efi
复制代码

UEFI启动引导器成功启动后的效果,以rEFInd演示
启动ventoy.gif

手工部署压缩包获取途径(包含UEFI及Legacy BIOS)
https://note.youdao.com/s/UrducsjZ

手工部署BIOS版本的两种方式
方法一:直接覆盖电脑硬盘MBR,电脑开机后直接启动到Ventoy。
http://wuyou.net/forum.php?mod=v ... 0&page=1#pid4708549

方法二:保留电脑硬盘MBR,开机后保持现有启动方式。适合于当前MBR已经存在其他引导器的情况,如bootmgr、xorboot、grub2、grub4dos等,通过手动添加Ventoy的BIOS引导文件,间接启动Ventoy。
http://wuyou.net/forum.php?mod=v ... 0&page=4#pid4727319

部署BIOS版本后的效果演示 bootmgr.gif


xorboot.gif

bios启动后grub2引导ventoy

bios启动后grub2引导ventoy


其他
UEFI引导器中添加Ventoy引导简述:  http://wuyou.net/forum.php?mod=v ... 0&page=1#pid4709330
作者: 蛮牛士    时间: 2022-10-28 09:33
666666 好技巧
作者: goyou    时间: 2022-10-28 09:59
感谢作者的努力。我之前也向开发者提过建议,增加手动功能增加硬盘使用功能。后来没办法只能以安装入vhd文件来处理。
作者: ksjifjui    时间: 2022-10-28 10:47
goyou 发表于 2022-10-28 09:59
感谢作者的努力。我之前也向开发者提过建议,增加手动功能增加硬盘使用功能。后来没办法只能以安装入vhd文 ...

客气了,客气了,就是自己平时喜欢瞎折腾而已
作者: ksjifjui    时间: 2022-10-28 10:48
蛮牛士 发表于 2022-10-28 09:33
666666 好技巧


作者: 286958    时间: 2022-10-28 11:12
部署到系统了,启动VENTOY提示搜索不到ISO,重新启动
作者: 286958    时间: 2022-10-28 11:23
浏览硬盘分区的ISO文件,没有一个引导成功  
作者: goyou    时间: 2022-10-28 14:58
286958 发表于 2022-10-28 11:12
部署到系统了,启动VENTOY提示搜索不到ISO,重新启动

部分原文件需要复制到第二个分区里,有做了吗?
作者: 286958    时间: 2022-10-28 16:18
goyou 发表于 2022-10-28 14:58
部分原文件需要复制到第二个分区里,有做了吗?

应该是磁盘分区的问题,
我的硬盘第一分区是ESP
第二分区MSR
第三分区是系统
第四分区才是放资料,系统镜像的
作者: ksjifjui    时间: 2022-10-28 17:04
286958 发表于 2022-10-28 16:18
应该是磁盘分区的问题,
我的硬盘第一分区是ESP
第二分区MSR

对的,部署的时候,如果遇到无法自动查找到分区下ISO的问题,首先一定要多多检查自己硬盘的分区布局,ISO分区是紧邻着FAT分区的,中间不能间隔其他分区
作者: 9527sss    时间: 2022-10-28 20:48
谢谢分享
作者: ksjifjui    时间: 2022-10-28 21:08
9527sss 发表于 2022-10-28 20:48
谢谢分享


作者: EricSnow    时间: 2022-11-1 14:43
厉害,不曾设想的道路
作者: wangyou143    时间: 2022-11-1 20:57
,,,,怎么停止分享了
作者: goyou    时间: 2022-11-2 09:17
wangyou143 发表于 2022-11-1 20:57
,,,,怎么停止分享了

还真是的。难道开发者有意见了?
作者: ksjifjui    时间: 2022-11-2 09:48
goyou 发表于 2022-11-2 09:17
还真是的。难道开发者有意见了?

不能冤枉开发者,是有道笔记的问题,才看到评论,已经重新设置好了,你们试试链接现在有效吗?
作者: ksjifjui    时间: 2022-11-2 09:49
wangyou143 发表于 2022-11-1 20:57
,,,,怎么停止分享了

链接失效了,重新设置了,现在试试能访问么?
作者: aaa1942    时间: 2022-11-2 10:16
问一下BIOS板的ven toy的启动文件是哪一个?谢谢
作者: my9823    时间: 2022-11-2 14:28
mbr首先把boot.img写入mbr,再把core.img写入第二扇区到2048扇区之间的扇区,因为第一个分区开始于2048扇区
作者: aaa1942    时间: 2022-11-2 14:30
my9823 发表于 2022-11-2 14:28
mbr首先把boot.img写入mbr,再把core.img写入第二扇区到2048扇区之间的扇区,因为第一个分区开始于2048扇区

谢了先!
作者: langyun    时间: 2022-11-2 15:13
用过xorboot
但是好像不能启动ubuntu或deepin,也不能启动live-CD
好像是参数不会,现在是U盘ventoy启动live-cd
作者: ksjifjui    时间: 2022-11-2 16:55
本帖最后由 ksjifjui 于 2022-11-14 22:22 编辑
aaa1942 发表于 2022-11-2 10:16
问一下BIOS板的ven toy的启动文件是哪一个?谢谢

注:手工部署BIOS前,一定首先自行检查电脑硬盘的第1分区的开始扇区号,是否留有足够的空闲空间来安装BIOS启动文件,建议至少保留1M的空闲空间,即第1分区起始扇区号从2048开始,确认有足够的空闲空间后,再手动部署BIOS的启动文件到保留的空闲扇区


相关的文件已经编译好了,下载最新的压缩包,压缩包中grub\i386-pc文件夹下的boot.img和core.img,对应的就是BIOS版本的两个启动镜像


将boot.img写入mbr的时候,一定要先备份好mbr,然后再操作,从0号扇区开始写入boot.img,写入时一定记得勾选保留分区表不变,这样只会写入前446个字节,不会覆盖原硬盘分区表,一定要消小心再小心哦

boot.img写入操作

boot.img写入操作



写core.img的时候,从1号扇区开始写入

core.img写入操作

core.img写入操作


作者: ksjifjui    时间: 2022-11-2 17:31
langyun 发表于 2022-11-2 15:13
用过xorboot
但是好像不能启动ubuntu或deepin,也不能启动live-CD
好像是参数不会,现在是U盘ventoy启动l ...

现在只要手动部署到你的本地硬盘就能解决你的痛点,岂不美哉?
作者: wangyou143    时间: 2022-11-2 17:56
ksjifjui 发表于 2022-11-2 09:49
链接失效了,重新设置了,现在试试能访问么?

可以了谢谢,用过1.79版简单易用,可以配合楼主的改版 把 Linux 正常安装到 vhd/vdi 中,使用 Ventoy 启动http://bbs.wuyou.net/forum.php?mod=viewthread&tid=422246&extra=page%3D1




作者: aaa1942    时间: 2022-11-3 08:24
将解压后的Ventoy启动文件路径:EFI\VENTOY\grubx64_real.efi添加到启动引导器,如:rEFind、GRUB2启动引导器等,这一步不知道咋完成可否请楼主大神稍微详细一点,非常感谢!
作者: aaa1942    时间: 2022-11-3 09:16
ksjifjui 发表于 2022-11-2 16:55
注:手工部署BIOS前,一定首先自行检查电脑硬盘的第1分区的开始扇区号,是否留有足够的空闲空间来安装BIOS ...

超级感谢!!
作者: plhydc    时间: 2022-11-3 09:53
请教一下。。iso系统镜像里面有几个版本的,比如家庭版,专业版,vertoy 引导的,不能选择。如何解决??
作者: ksjifjui    时间: 2022-11-3 10:51
本帖最后由 ksjifjui 于 2022-11-3 11:02 编辑
aaa1942 发表于 2022-11-3 08:24
将解压后的Ventoy启动文件路径:EFI\VENTOY\grubx64_real.efi添加到启动引导器,如:rEFind、GRUB2启动引导 ...

不清楚我这么讲,能不能更好的帮助你理解

首先rEFInd和GRUB2等工具都可用于多系统引导,比如你的硬盘里同时安装了Windows和Linux两种操作系统,用这些启动引导器可以实现在电脑启动时,出现一个多操作系统选择界面,用户选择Windows则启动Windows,选择Linux则启动Linux

这些启动引导器都有自己的配置文件,rEFInd对应的是refind.conf,GRUB2对应的是grub.cfg,电脑硬盘里已经安装的所有操作系统都可以手工添加到这些文件中,用于呈现在启动选择界面中,配置文件中需要指定对应操作系统的启动文件路径,如你所问:EFI\VENTOY\grubx64_real.efi 这个就是Ventoy的启动文件路径,一个配置项通常对应一个操作系统,也对应操作系统选择界面中的一个图标或一个菜单。

Ventoy手工部署到硬盘后,也可以认为它就是一个独立的系统(其实Ventoy就是GRUB2的一层外壳,准确的说还是属于系统引导器),但这里同样可以作为系统的形式,添加到对应的配置文件中,这样电脑启动的时候,也可以出现Ventoy的选择界面,选择后可进入Ventoy

下面是rEFInd配置文件和启动界面的对应图

rEFInd配置文件启动界面对应关系图

rEFInd配置文件启动界面对应关系图


最终动态效果

选择Ventoy并启动

选择Ventoy并启动




作者: ksjifjui    时间: 2022-11-3 11:03
aaa1942 发表于 2022-11-3 09:16
超级感谢!!

客气了,BIOS手工部署一定小心再小心,别破坏分区表
作者: ZMLoveLH    时间: 2022-11-3 11:04
看看Ventoy的硬盘版应该如何部署啊
作者: aaa1942    时间: 2022-11-3 12:03
ksjifjui 发表于 2022-11-3 10:51
不清楚我这么讲,能不能更好的帮助你理解

首先rEFInd和GRUB2等工具都可用于多系统引导,比如你的硬盘 ...

收到,晚点回家慢慢学习,谢了先!
作者: lpsyuntao    时间: 2022-11-3 14:31
感谢分享
作者: yuyer    时间: 2022-11-3 16:09
感谢分享。
作者: ksjifjui    时间: 2022-11-3 18:00
lpsyuntao 发表于 2022-11-3 14:31
感谢分享


作者: ksjifjui    时间: 2022-11-3 18:00
yuyer 发表于 2022-11-3 16:09
感谢分享。


作者: Syl1us    时间: 2022-11-3 22:20
顶一个
作者: hondao    时间: 2022-11-3 23:28
谢谢分享
作者: ksjifjui    时间: 2022-11-4 19:54
hondao 发表于 2022-11-3 23:28
谢谢分享


作者: langyun    时间: 2022-11-7 15:58
我以前是通过修改不同bootx64.efi来用不同方式启动
不用的时候都重命名先屏蔽掉
作者: pda8888    时间: 2022-11-8 23:27
本帖最后由 pda8888 于 2022-11-8 23:29 编辑

我用一个VHD文件模拟硬盘来做实验(模拟容量是1TB)。
用Virtualbox 6.1.34,装入VHD为一个硬盘,然后用PVE 7.2.1的ISO文件启动,在VHD上面安装PVE。
接着,在PVE(debian 10.2.1)里面,安装refind 1.36。
再启动的时候,有了refind的启动菜单。
此时,再用做任意的PE ISO引导VHD,进入到PE,在PE里,用Diskgenius打开VHD(此时在模拟的一个硬盘),看到VHD模拟出的硬盘分区顺序为:1GB的BIOS分区,接着是500M的ESP分区(分区格式是FAT32),我把楼主的1.81手工部署的压缩包按要求解压到这个分区。
然后重启,以VHD7启动,可以看到有Ventoy的启动项了,提示是:\efi\ventoy\bootx64_real.efi,选中并回车,以为有惊喜,结果是直接进入到一个grub的命令行。
唉!
不知道问题出在哪里了。
编辑了refind.conf,写入 loader /EFI/VENTOY/grubx64_real.efi ,也是一样。是因为由PVE自动规划出来的ESP分区是FAT32导致的吗?或者,第一个分区不是EFI分区,而是BIOS分区?

作者: wahmlt    时间: 2022-11-9 07:02
谢楼主分享
作者: ksjifjui    时间: 2022-11-9 11:13
本帖最后由 ksjifjui 于 2022-11-9 11:29 编辑
pda8888 发表于 2022-11-8 23:27
我用一个VHD文件模拟硬盘来做实验(模拟容量是1TB)。
用Virtualbox 6.1.34,装入VHD为一个硬盘,然后用PV ...

对的,根据你描述的情况分析,是因为你测试的VHD分区结构的问题,不满足手动部署的前提条件。

虽然你的rEFInd菜单中出现了Ventoy,但是由于Ventoy是基于grub2的,grub2在调用EFI镜像文件时,会根据EFI镜像文件中的特定分区来加载分区里面的grub2的配置文件,图片等资源

这样才能顺利启动到Ventoy的图形界面,找不到配置文件等资源,就会默认进入命令行界面

而你的第1分区是BIOS分区,第2分区才是FAT分区,要让硬盘手工部署成功,第1分区必须是FAT分区

你的这种情况,要想让Ventoy能顺利启动到图形界面,只能考虑将BIOS分区和FAT分区合并成一个FAT分区,然后在这个FAT分区下手动部署

作者: ksjifjui    时间: 2022-11-9 11:14
wahmlt 发表于 2022-11-9 07:02
谢楼主分享

希望你完美部署成功
作者: pda8888    时间: 2022-11-9 14:59
报告楼主,删除最前面的BIOS分区,再调整EFI分区,把前面删除的分区合并了,搞定,ventoy菜单出来了。
作者: ksjifjui    时间: 2022-11-9 16:33
pda8888 发表于 2022-11-9 14:59
报告楼主,删除最前面的BIOS分区,再调整EFI分区,把前面删除的分区合并了,搞定,ventoy菜单出来了。

非常Nice!
作者: pda8888    时间: 2022-11-9 20:44
问题又来了,ventoy不支持lvm?所以ventoy菜单出来了,但是搜索不到放在lvm上的ISO文件
但是PVE的安装过程,是没有机会选择分区格式的......
晕!
作者: ksjifjui    时间: 2022-11-9 21:13
本帖最后由 ksjifjui 于 2022-11-9 22:46 编辑
pda8888 发表于 2022-11-9 20:44
问题又来了,ventoy不支持lvm?所以ventoy菜单出来了,但是搜索不到放在lvm上的ISO文件
但是PVE的安装过程 ...

是的,Ventoy识别不了Linux LVM文件系统,存放ISO的分区必须是ext2,ext3,ext4这些常规类型的文件系统
但是你可以通过自定义启动菜单的方式,手动配置启动项参数,手工添加lvm模块,这个相对就麻烦太多了

作者: wahmlt    时间: 2022-11-10 07:29

谢谢楼主分享
作者: ksjifjui    时间: 2022-11-10 08:33
wahmlt 发表于 2022-11-10 07:29
谢谢楼主分享


作者: pda8888    时间: 2022-11-10 09:59
ksjifjui 发表于 2022-11-9 21:13
是的,Ventoy识别不了Linux LVM文件系统,存放ISO的分区必须是ext2,ext3,ext4这些常规类型的文件系统
...

“手工添加lvm模块”?还有这种神操作?
请指导一下如何添加,或者有官方文档的链接吗?
作者: ksjifjui    时间: 2022-11-10 13:32
本帖最后由 ksjifjui 于 2022-11-10 13:58 编辑
pda8888 发表于 2022-11-10 09:59
“手工添加lvm模块”?还有这种神操作?
请指导一下如何添加,或者有官方文档的链接吗?

对的,可以手工添加LVM模块,这个就需要用到Ventoy的自定义菜单插件,本质就是回归原始grub2引导,grub2是支持Linux LVM文件系统的

第一步
需要根据官方说明文档添加一个自定义菜单的配置文件ventoy_grub.cfg具体如何添加ventoy_grub.cfg配置文件,可参照说明 https://www.ventoy.net/cn/plugin_grubmenu.html


第二步
需要在ventoy_grub.cfg中手工添加在LVM文件系统中的ISO文件,下面用ubuntu20.04的ISO镜像为例
  1. menuentry 'Ubuntu 20.04' {
  2.     insmod part_gpt   #加载gpt模块
  3.     insmod lvm   #加载lvm模块,这里是解决你遇到问题的关键模块
  4.     insmod ext2  
  5.     set iso_path="/ubuntu-20.04.3-desktop-amd64.iso"  #这个是iso文件在lvm文件系统中具体路径
  6.     search --no-floppy --fs-uuid --set=root 0185e365-86ff-444f-a71b-8a3044ff568a
  7.     loopback loop ($root)$iso_path

  8.     linux (loop)/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=${iso_path} quiet splash ---
  9.     initrd (loop)/casper/initrd
  10. }
复制代码


第三步

重启到Ventoy的图形界面, F6 快捷键加载上面添加的自定义菜单,然后选择对应的启动菜单,这样即可加载LVM中对应的ISO文件并启动


补充建议
如果你在以后的真实使用环境中,也是将所有ISO文件都放到LVM文件系统中来启动的话,那完全就没有使用Ventoy的必要了,可以考虑直接用grub2来引导iso了,这样就少了Ventoy这一层多余启动了,用grub2就会更直接一点

作者: 2011atguutu    时间: 2022-11-10 14:43
本帖最后由 2011atguutu 于 2022-11-10 15:13 编辑

首先感谢楼主!有个问题如下:

Ventoy启动之后,指定的文件夹内有多个ISO文件。

但Ventoy启动后,列表里面只显示出了一小部分。

ISO是我一直在用的,应该不会有问题。
请问这如何解决?

作者: pda8888    时间: 2022-11-10 15:17
ksjifjui 发表于 2022-11-10 13:32
对的,可以手工添加LVM模块,这个就需要用到Ventoy的自定义菜单插件,本质就是回归原始grub2引导,grub2 ...

真乃神人也!
马上去试试 。
作者: pda8888    时间: 2022-11-10 16:05
本帖最后由 pda8888 于 2022-11-10 16:33 编辑

还有一个没看明白:0185e365-86ff-444f-a71b-8a3044ff568a,这一串是ISO文件的UUID吗?或者是lvm分区的uuid?
作者: ksjifjui    时间: 2022-11-10 17:05
pda8888 发表于 2022-11-10 16:05
还有一个没看明白:0185e365-86ff-444f-a71b-8a3044ff568a,这一串是ISO文件的UUID吗?或者是lvm分区的uuid ...

对应的是lvm的UUID
作者: pda8888    时间: 2022-11-10 17:27
本帖最后由 pda8888 于 2022-11-10 17:28 编辑

如果把ventoy_grub.cfg放在EFI分区的ventoy目录下,启动ventoy的时候会被提示:
  1. ventoy_grub.cfg 放错分区了,请放到镜像分区里的 ventoy 目录下(此目录需要手动创建)!
  2. press ENTER to continue (请按 回车 键继续) ...
复制代码

然则此时并没有加载lvm,也即是镜像分区根本没有被识别。
鸡和蛋谁先有?我陷入了一个古老的哲学悖论中了……

在楼主的手工部署包中,grub目录下有一个grub.cfg,其中有这样的代码:

  1. for vtTFile in ventoy.json ventoy_grub.cfg; do
  2.     if [ -f $vtoy_efi_part/ventoy/$vtTFile ]; then
  3.         clear
  4.         echo -e "\n You need to put $vtTFile in the 2st partition which hold the ISO files.\n"
  5.         echo -e " $vtTFile 放错分区了,请放到镜像分区里的 ventoy 目录下(此目录需要手动创建)!\n"
  6.         echo -e "\n press ENTER to continue (请按 回车 键继续) ..."
  7.         read vtInputKey
  8.     fi
  9. done
复制代码


报错的根源在这里吧。
作者: pda8888    时间: 2022-11-10 17:30
看来只有另辟蹊径,在EFI里面的某个文件里面加载可以识别lvm的模块才行。
作者: my9823    时间: 2022-11-10 19:07
你可以尝试在生成core.img或者efi文件时,把lvm模块弄进去
作者: pda8888    时间: 2022-11-10 19:39
本帖最后由 pda8888 于 2022-11-10 19:41 编辑

3.2 Linux 系统使用条件
3.2.1. 原盘内可以有多个分区、但必须要有1个空闲的分区表。
Ventoy 需要插入 VTOYEFI 分区,因此需要占用1个分区表。比如对于 MBR 分区格式,如果U盘上已经有4个分区了,就不行了。
类似的,对于 GPT 分区格式,如果U盘上已经有 128 个分区了,也不行(当然一般不会有这么多)。

3.2.2. 第1个分区必须是从 1MB 位置开始
对于MBR和GPT都有这个要求。这是为了符合 Ventoy 的分区布局需要。Windows 下新建的分区默认一般都是从 1MB 开始的。

3.2.3. 第1个分区支持 NTFS 或 EXT2/3/4 格式,不支持其他格式.
如果是 NTFS 格式,则系统中需要安装 ntfs-3g 包。 如果是 EXT2/3/4 格式,则系统中需要安装 e2fsprogs 包。

3.2.4. 第1个分区内必须要有一定的剩余空间。
有剩余空间才有可能进行压缩调整。如果第1个分区已经完全用满了,则肯定就无法压缩调整了。
当然如果你原本第1个分区后面就有空闲空间的话,那也可以。总之要能找到空闲的空间来放 VTOYEFI 分区。
作者: ksjifjui    时间: 2022-11-10 21:12
本帖最后由 ksjifjui 于 2022-11-10 21:35 编辑
pda8888 发表于 2022-11-10 17:27
如果把ventoy_grub.cfg放在EFI分区的ventoy目录下,启动ventoy的时候会被提示:

然则此时并没有加载lvm ...

给你想了个办法,就是调整ventoy_grub.cfg文件的默认加载位置,现在默认从你的第1个EFI分区中的ventoy目录下查找ventoy_grub.cfg文件,这样可以做到加载自定义配置文件时与lvm分区不产生关联,这个办法代码的改动最小
你可以下载附件中的文件到本地,然后解压替换EFI分区下对应的文件即可

注意:ventoy目录中的ventoy_grub.cfg文件中的内容,同时修改成对应你的lvm的uuid和iso对应的路径


最后啰嗦一句,在真实应用中,如果你还是坚持从LVM中启动iso文件,还是强烈建议你直接使用grub2,不建议使用ventoy,使用ventoy反而是在走弯路

EFI分区配置文件.7z

13.41 KB, 下载次数: 35, 下载积分: 无忧币 -2

解压后覆盖原压缩包中的grub.cfg文件


作者: pda8888    时间: 2022-11-11 10:08
本帖最后由 pda8888 于 2022-11-11 10:45 编辑

谢谢指导,牛人!
我比较了一下原来的grub.cfg,您是修改了两处:
1、原文件改 $vtoy_iso_part为$vtoy_efi_part
  1. 原文件:
  2.     set vt_plugin_path=$vtoy_iso_part
复制代码

改为
  1.     set vt_plugin_path=$vtoy_efi_part
复制代码

2、去掉对ventoy_grub.cfg文件位置的检查
  1. 原文件
  2. for vtTFile in ventoy.json ventoy_grub.cfg; do
复制代码

改为
  1. for vtTFile in ventoy.json; do
复制代码

真是厉害!
不过这个还是治不了根,要逐个对要启动的文件进行配置,很麻烦。
我昨天折腾了一天,总结了方法,今天早上只花了几十分钟就搞定了,做法是:
1、在虚拟机中正常安装PVE7.2到VHD上。
2、删除掉虚拟机的lvm部署,变成只有一个卷,即lvdiskplay命令只看到一个分区。并用blkid命令查看各个分区的UUID、记录。
3、把/etc/fstab文件备份
3、关掉虚拟机,用Diskgenius载入VHD,把它的ESP和root分区分别保存为分区备份文件。
4、把VHD所有分区删除,重新按ESP、EXT4、Swap的顺序重新分区。
5、把第3步保存的ESP和root分区分别还原到ESP和EXT4分区上。
6、用Diskgenius打开VHD,修改ESP分区的/boot/efi/BOOT/BOOTx64.EFI和/boot/efi/promox/grubx64.efi,用二进制编辑器把里面的(/lvmid/xxxxx-xxxxx-xxxxx……)/boot/grub,改成:(hd0,gpt2)/boot/grub
7、改/etc/fstab,分别用uuid表达efi、root和swap分区的挂载(uuid在第2步记录了)
8、用一个linux的救援ISO文件启动,然后:
  1. mount /dev/sda2 /mnt
  2. mount --bind /dev /mnt/dev
  3. mount --bind /proc /mnt/proc
  4. chroot /mnt
  5. mount /dev/sda1 /boot/efi
复制代码

这是建立好重建grub2的环境,然后
  1. grub-install /dev/sda --force
  2. update-grub
复制代码

重建grub2
9、重新启动虚拟机,已经成功的把lvm下的pve转换成ext4单分区的pve了。
10、在虚拟机根目录下建立ventoy目录(这是ventoy要求的,可以在这个目录下建立ventoy.json文件,放置vhd和img启动插件)
10、在虚拟机pve下,安装refind。
11、把楼主的手工部署包按要求解压到efi分区(在Diskgenius下操作)
12、完全正使用pve、refind和ventoy,而且ventoy的使用非常方便,不需要单独建立分区,跟u盘上的使用完全一样,当然,最好是在ventoy.josn文件里面规定搜索的目录只限于/ventoy,不然搜索整个根目录下又不限制深度,你就泡壶茶慢慢等吧……
作者: ksjifjui    时间: 2022-11-11 12:23
pda8888 发表于 2022-11-11 10:08
谢谢指导,牛人!
我比较了一下原来的grub.cfg,您是修改了两处:
1、原文件改 $vtoy_iso_part为$vtoy_ef ...


确实不容易,经过你这么一顿操作下来,不仅能让Ventoy正常加载EXT4分区下的ISO文件,最关键的是,你终于让自己摆脱了LVM的控制了

最终让Ventoy与pve都发挥了各自的作用,不错!不错!

作者: pda8888    时间: 2022-11-11 12:47
您一路的指正非常有助于扩张我的脑洞。
我这样做,是因为一台掌上小电脑,要承担非常多的功能,用PVE打底,在PVE上面安装debian、windows 11、openwrt,其中debian上承载BT下载、http网站、samba服务器、nas、云笔记等功能,windows 11则是日常使用的,openwrt是作科学旁路由。
关键是,这样一台小掌上电脑,平时只有不到20W的功耗,7×24小时开机无压力,嘿嘿。
已经这样玩了N多年了,这次换更大的固态,想一步到位,既能启动pve,也能启动ventoy,才有了这些折腾。
作者: ksjifjui    时间: 2022-11-11 12:52
本帖最后由 ksjifjui 于 2022-11-11 13:37 编辑
pda8888 发表于 2022-11-11 12:47
您一路的指正非常有助于扩张我的脑洞。
我这样做,是因为一台掌上小电脑,要承担非常多的功能, ...

同道中人,属于爱折腾一族
我本来以为你会选择放弃ventoy的,采用grub2加lvm的组合方式的,没想到你也和我一样的个性,不达目的,就往死里造

原来很长时间没见你回帖,你是在自己潜心憋大招呢

作者: tpod    时间: 2022-11-11 18:08
"将解压后的Ventoy启动文件路径:EFI\VENTOY\grubx64_real.efi添加到启动引导器,如:rEFind、GRUB2启动引导器等"
这个前提是已经改成非Windows原来启动方式了,能在原有启动下共存吗?比如仅修改BCD添加。
作者: pda8888    时间: 2022-11-11 19:15
ksjifjui 发表于 2022-11-11 12:52
同道中人,属于爱折腾一族
我本来以为你会选择放弃ventoy的,采用grub2加lvm的组合方 ...

结果折腾了个寂寞:在ext4上的VHD,不能正常启动windows。
作者: bet365    时间: 2022-11-12 04:23
手工部署后,用我的GRUB2引导grubx64_real ,但是启动画面一直停留在 扫描文件中   Ventoy scanning files, please wait... , 想打开 VentoyPlugson.exe 想去配置插件 发现 [attach]512040[/attach] 找不到 。也就是手工部署没成功。已经按照你提供的方案。ESP分区是以前的300M的分区,然后把MSR分区删除,合并到了紧邻的那个区。

360截图20221112042051491.jpg

也放了ventoy
360截图20221112042159927.jpg
兄弟帮忙看看,谢谢了哈。

作者: ksjifjui    时间: 2022-11-12 05:47
bet365 发表于 2022-11-12 04:23
手工部署后,用我的GRUB2引导grubx64_real ,但是启动画面一直停留在 扫描文件中   Ventoy scanning files, ...

C盘文件太多导致的,你的C盘是系统盘,可想而知,里面得有多少个文件,自然搜索iso就巨慢了
你需要在ventoy.json中,手工添加一个搜索根目录配置,然后把需要的iso文件都放到这个目录下,这样就好了
参照官方的说明文档
https://ventoy.net/cn/doc_search_path.html



作者: bet365    时间: 2022-11-12 08:57
ksjifjui 发表于 2022-11-12 05:47
C盘文件太多导致的,你的C盘是系统盘,可想而知,里面得有多少个文件,自然搜索iso就巨慢了
你需要在ven ...

问题是我要用什么打开这个 ventoy.json 文件,我运行VentoyPlugson.exe 这个软件,它读不出内容来
作者: ksjifjui    时间: 2022-11-12 09:30
本帖最后由 ksjifjui 于 2022-11-12 09:32 编辑
bet365 发表于 2022-11-12 08:57
问题是我要用什么打开这个 ventoy.json 文件,我运行VentoyPlugson.exe 这个软件,它读不出内容来{:1_185 ...

VentoyPlugson.exe只能识别标准的Ventoy分区格式的硬盘或U盘,现在手工部署的版本,显然这不符合标准的Ventoy分区要求的,自然VentoyPlugson.exe工具就无法使用了
ventoy.json只是一个普通的文本文件而已,随便一个文本编辑工具都能打开后编辑,内容遵循标准的json格式

能够完成ventoy手工部署的,绝大多数都是爱折腾的,只是一个json文本文件而已,手工编辑起来自然也是手到擒来事了,如果没有手动编辑json基础的,在下也是爱莫能助了,只能需要自己再学习了


作者: bet365    时间: 2022-11-12 13:53
ksjifjui 发表于 2022-11-12 09:30
VentoyPlugson.exe只能识别标准的Ventoy分区格式的硬盘或U盘,现在手工部署的版本,显然这不符合标准的Ve ...

手动编辑,用文本一直显示语法和配置错误,进不了菜单。后来我弄个虚拟磁盘,调后好复制过去
现在可以进菜单了。 , 不过不能用哪个软件来生成这个文件,就没啥用了。
不过谢谢你的帮助。
作者: ksjifjui    时间: 2022-11-12 14:36
tpod 发表于 2022-11-11 18:08
"将解压后的Ventoy启动文件路径:EFI\VENTOY\grubx64_real.efi添加到启动引导器,如:rEFind、GRUB2启动引 ...

你的想法是可以实现的,但这主要取决于你电脑当前的启动模式了,是UEFI方式,还是传统BIOS方式

如果你是用UEFI模式启动的,在BCD中添加其他的EFI引导文件,由于受到Windows签名验证限制等原因,目前无法实现,论坛中也有人有类似的疑问,http://wuyou.net/forum.php?mod=viewthread&tid=432810&fromuid=869921

如果你是用传统BIOS启动的,那么你的需求是可以实现的,在BCD中添加grub4dos来引导Ventoy

作者: pda8888    时间: 2022-11-12 17:43
本帖最后由 pda8888 于 2022-11-12 17:48 编辑
bet365 发表于 2022-11-12 13:53
手动编辑,用文本一直显示语法和配置错误,进不了菜单。后来我弄个虚拟磁盘,调后好复制过去
现在可以进 ...

我提供我自己的ventoy.json,供参考,注意它位于\ventoy ,限制了搜索路径仅 \ventoy,不是整个根目录全搜索,你看到的scanning...一直卡在这里,那是必然的,特别是装了windows的C盘,几万个甚至几十上百万个文件在C盘,那是完全正常的。你泡壶老茶坐那慢慢等,老茶喝完也不一定等到它搜索完成。

  1. {
  2.     "control":[
  3.         { "VTOY_DEFAULT_MENU_MODE": "1" },
  4.         { "VTOY_MAX_SEARCH_LEVEL": "2" },
  5.         { "VTOY_WIN11_BYPASS_CHECK": "1" },
  6.         { "VTOY_DEFAULT_SEARCH_ROOT": "/ventoy" }
  7.     ],
  8.     "menu_tip":{
  9.         "tips":[
  10.             {
  11.                 "dir": "/ventoy/iso",
  12.                 "tip": "ISO启动"
  13.             },
  14.             {
  15.                 "dir": "/ventoy/vhd",
  16.                 "tip": "VHD启动"
  17.             }
  18.         ]
  19.     },
  20.     "menu_class":[
  21.         {
  22.             "key": "VHD",
  23.             "class": "VHD"
  24.         },
  25.         {
  26.             "key": "ISO",
  27.             "class": "ISO"
  28.         }
  29.     ]
  30. }
复制代码

作者: 2011chs    时间: 2022-11-12 21:59
719755732322480571.jpg

我测试了下,只有一个问题,麻烦楼主看看,感谢哈,就是Windows的 VHD系统不能启动,报错,但是 我用Linux安装的VHD文件却可以启动, 我用安装在U盘上的Ventoy启动Windows的VHD系统就没有任何问题, Ventoy版本和 VHD启动插件 和 手工部署的Ventoy是一样的

作者: bet365    时间: 2022-11-13 03:48
pda8888 发表于 2022-11-12 17:43
我提供我自己的ventoy.json,供参考,注意它位于\ventoy ,限制了搜索路径仅 \ventoy,不是整个根目录全 ...

谢谢朋友,已经解决了。
作者: bet365    时间: 2022-11-13 03:53
2011chs 发表于 2022-11-12 21:59
我测试了下,只有一个问题,麻烦楼主看看,感谢哈,就是Windows的 VHD系统不能启动,报错,但是 我用Li ...

WINDOWS VHD 好启动啊

menuentry "【2】Windows 10 神州网信政府版 " --class windows --class os{
ntboot -v --gui (hd0,7)/VHD/WIN10_LTSC_2019.vhdx
}
当然我用的GURB2 NTBOOT 模块。
作者: goyou    时间: 2022-11-13 09:41
ksjifjui 发表于 2022-11-2 16:55
注:手工部署BIOS前,一定首先自行检查电脑硬盘的第1分区的开始扇区号,是否留有足够的空闲空间来安装BIOS ...

请问一下:boot.img和core.img这两个文件是修改过的,还是原文件?如果修改过的,我要备注另外保存,如果原文件就不需要另外保存。
作者: goyou    时间: 2022-11-13 10:38
ksjifjui 发表于 2022-11-2 16:55
注:手工部署BIOS前,一定首先自行检查电脑硬盘的第1分区的开始扇区号,是否留有足够的空闲空间来安装BIOS ...

查看了mbr里面有VT字样,应该是修改过的,已备注另外保存了。
作者: 2011chs    时间: 2022-11-13 10:48
bet365 发表于 2022-11-13 03:53
WINDOWS VHD 好启动啊

menuentry "【2】Windows 10 神州网信政府版 " --class windows --class os{

我说的是用 这个Ventoy启动VHD、VHDX系统呀,这样就方便了呀
1. 用原创者的安装版Ventoy在U盘上的Ventoy就可以正常启动任何VHDX系统,没有任何问题,
2. 楼主这个手工部署的Ventoy就有问题 不能正常启动Windows的VHDX系统,不过Linux的VHD系统倒是可以正常启动
作者: ksjifjui    时间: 2022-11-13 13:17
goyou 发表于 2022-11-13 10:38
查看了mbr里面有VT字样,应该是修改过的,已备注另外保存了。

嗯,是修改过的,原文件不支持现有的硬盘分区布局
作者: goyou    时间: 2022-11-13 16:47
本帖最后由 goyou 于 2022-11-13 16:50 编辑

今天趁周日折腾一下,pe可以启动,vdh系统没有一个成功。bios与efi都一样。bios直接用ventoy写入mbr启动,efi用xorboot引导ventoy.efi启动。原来bios用g4d启动ventoy.vhd,efi用grub2启动ventoy.vhd都可以启动成功vhd系统。
作者: Syl1us    时间: 2022-11-13 17:45
goyou 发表于 2022-11-13 16:47
今天趁周日折腾一下,pe可以启动,vdh系统没有一个成功。bios与efi都一样。bios直接用ventoy写入mbr启动,e ...

Windows的vhd直接用bootmgr和bcd,用wtg的文件还支持BitLocker加密分区启动
作者: tpod    时间: 2022-11-13 19:53
ksjifjui 发表于 2022-11-12 14:36
你的想法是可以实现的,但这主要取决于你电脑当前的启动模式了,是UEFI方式,还是传统BIOS方式了

如果 ...

谢谢。那个也是我问的,是UEFI。
我是希望在尽量少动原启动的情况下,增加第三方启动方式。看来只能先替换Win的EFI才能实现。
作者: goyou    时间: 2022-11-14 08:38
2011chs 发表于 2022-11-12 21:59
我测试了下,只有一个问题,麻烦楼主看看,感谢哈,就是Windows的 VHD系统不能启动,报错,但是 我用Li ...

昨天对这个手工版ventoy折腾了一天,也是这个问题。
作者: goyou    时间: 2022-11-14 08:43
bet365 发表于 2022-11-13 03:53
WINDOWS VHD 好启动啊

menuentry "【2】Windows 10 神州网信政府版 " --class windows --class os{

留个记号,待以后试试,我原来那个方法,还要把系统默认引导文件在其他位置再放一份,它不能使用vhd文件内置的。
作者: goyou    时间: 2022-11-14 17:53
bet365 发表于 2022-11-13 03:53
WINDOWS VHD 好启动啊

menuentry "【2】Windows 10 神州网信政府版 " --class windows --class os{

一样用法。你不需要指定bootmgfw.efi文件路径吗?
作者: bjcclzw    时间: 2022-11-14 18:07
先收藏下来
作者: bet365    时间: 2022-11-14 20:39
goyou 发表于 2022-11-14 17:53
一样用法。你不需要指定bootmgfw.efi文件路径吗?

直接启动VHD,跟EFI 啥关系。直接用这个NTBOOT 启动模块就好,当然要用W大的GRUB2,官方的没有这个NTboot模块。
作者: ksjifjui    时间: 2022-11-14 22:12
本帖最后由 ksjifjui 于 2022-11-14 22:24 编辑
2011chs 发表于 2022-11-12 21:59
我测试了下,只有一个问题,麻烦楼主看看,感谢哈,就是Windows的 VHD系统不能启动,报错,但是 我用Li ...

针对你说的vhd的问题,又重新编译了一次,下载最新的压缩包覆盖之前的文件,测试结束以后,记得给我反馈哦
作者: ksjifjui    时间: 2022-11-14 22:14
本帖最后由 ksjifjui 于 2022-11-14 22:24 编辑
goyou 发表于 2022-11-14 08:38
昨天对这个手工版ventoy折腾了一天,也是这个问题。

谢谢你们的反馈,下载最新的压缩包,覆盖后再试试
作者: goyou    时间: 2022-11-15 09:06
bet365 发表于 2022-11-14 20:39
直接启动VHD,跟EFI 啥关系。直接用这个NTBOOT 启动模块就好,当然要用W大的GRUB2,官方的没有这个NTboot ...

menuentry "1.启动 Win10 主系统" --class 1 --hotkey=1 {
search -s -n -f (hd0,2)/VHD/Win10ch.vhd
ntboot --efi (hd0,1)$ms/bootmgfw.efi --vhd (hd0,2)/VHD/Win10ch.vhd
}

set ms=/EFI/Microsoft/boot #指定外置路径
我不搞这个外置的bootmgfw.efi文件不能启动。
作者: goyou    时间: 2022-11-15 09:08
ksjifjui 发表于 2022-11-14 22:14
谢谢你们的反馈,下载最新的压缩包,覆盖后再试试

好的,晚上下班回去试试。
作者: goyou    时间: 2022-11-15 09:22
bet365 发表于 2022-11-14 20:39
直接启动VHD,跟EFI 啥关系。直接用这个NTBOOT 启动模块就好,当然要用W大的GRUB2,官方的没有这个NTboot ...

search -s -n -f (hd0,2)/VHD/Win10ch.vhd

可能是这句画蛇添足了,下班回去试试。
作者: 2011chs    时间: 2022-11-15 10:01
ksjifjui 发表于 2022-11-14 22:12
针对你说的vhd的问题,又重新编译了一次,下载最新的压缩包覆盖之前的文件,测试结束以后,记得给我反馈 ...

已下载测试,我在我的两天电脑,台式机、笔记本上测试最新编译的Ventoy 可以成功启动Windows的 VHDX系统了,
我测试启动了这些类型 WIM、ISO、Linux系统VHD、Win10的VHDX、Win11的VHDX系统 , 两台电脑全都正常启动,暂时没有测到问题, 非常感谢哈
作者: ksjifjui    时间: 2022-11-15 13:11
2011chs 发表于 2022-11-15 10:01
已下载测试,我在我的两天电脑,台式机、笔记本上测试最新编译的Ventoy 可以成功启动Windows的 VHDX系统 ...

客气了,也要感谢你们积极的反馈,因为每次在解决问题的时候,自己也能从中收获成就感,所以要多多反馈问题

作者: shy20070509    时间: 2022-11-16 12:04
好主意
作者: goyou    时间: 2022-11-16 15:13
efi下启动win10,win11可以了,但在bios下启动win8还不行。
作者: ksjifjui    时间: 2022-11-16 17:17
goyou 发表于 2022-11-16 15:13
efi下启动win10,win11可以了,但在bios下启动win8还不行。

bios下是用最新的core.img写入扇区的么?
作者: goyou    时间: 2022-11-16 17:40
ksjifjui 发表于 2022-11-16 17:17
bios下是用最新的core.img写入扇区的么?

是的,boot.img与core.img合并了。
作者: goyou    时间: 2022-11-16 17:56
ksjifjui 发表于 2022-11-16 17:17
bios下是用最新的core.img写入扇区的么?

还有,大神能不能让xorboot启动ventoy?现在我把boot.img与core.img合并成vtldr,再写入mbr可以启动,但用xorboot启动vtldr时界面只出现TV两个字符。




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