无忧启动论坛

 找回密码
 注册
搜索

有没有可能让ventoy在硬盘上和其它grub2共存?

查看数: 16247 | 评论数: 61 | 收藏 6
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-9-29 23:48

正文摘要:

现在硬盘是gpt分区的nvme,uefi启动,通过grub2x64.efi进入grub2再引导其它系统或iso文件。请问如何能在不影响硬盘数据的情况下,再增加一个ventoy引导项,引导硬盘上面的各种iso文件。 已经试过把优盘上相关引导文 ...

回复

nowayer 发表于 2023-11-28 17:00:42
提示: 作者被禁止或删除 内容自动屏蔽
hehew 发表于 2023-8-3 17:23:24
看看
my9823 发表于 2023-6-30 16:28:17
grub.cfg

IMG_20230630_162647.jpg (41.39 KB, 下载次数: 211)

IMG_20230630_162647.jpg

IMG_20230630_162713.jpg (41.91 KB, 下载次数: 227)

IMG_20230630_162713.jpg
nelia 发表于 2023-6-30 08:59:56
本帖最后由 nelia 于 2023-6-30 09:21 编辑
my9823 发表于 2023-6-30 05:59
官方网站的下载页面最下方不是有github和gitee的链接吗?

可惜我只是好使用这些工具,看不懂代码结构也不懂编译~~ 其实这个需求是个其次,这个默认搜索第几个盘,伴随的另一个事情就是,用ksjifjui大大这个版本折腾的,大部分C盘都是原系统盘,存在大量多层文件夹和大量文件,所有会出现很多使用新手,没有设置扫描目录条件,启动成功却陷入无尽的搜索等待中。
ksjifjui 改造的硬盘版,能否默认限制一个目录层数,或者将ventoy.json配置文件位置改编为efi分区。原作者U盘版把配置放在可见去,1个是方便后期编辑,另一个是U盘通常不会存太多文件,默认不限制文件夹目录和深度,扫描等待尚可接受。现在既然折腾硬盘版了,相比编辑替换EFI分区的文件也是这部分使用者可以操作的。
默认配置和插件放在可见去,对于U盘版没啥问题;对于硬盘版,因为正好在C盘系统盘,重装、系统盘损坏等都要重新配置,一旦配置误删且系统损坏重装失效,就陷入了原系统进不去ventoy系统无尽扫描等待。既然折腾了,这些文件体积也不大,可以直接折腾进EFI分区里,ventoy.json,ventoy_wimboot.img,ventoy_vhdboot.img等插件默认检测地址 集成到EFI分区里
my9823 发表于 2023-6-30 05:59:48
nelia 发表于 2023-6-29 16:02
这个默认搜索第几个分区,是不是编译时候就决定的?既然源代码那里能改?能否弄成配置项,在外部文件 ...

官方网站的下载页面最下方不是有github和gitee的链接吗?
nelia 发表于 2023-6-29 16:02:53
ksjifjui 发表于 2022-10-3 09:33
Ventoy的内部实现逻辑是只能自动搜索一个分区下所有ISO文件,不能搜索整个硬盘的所有分区

但是可以针 ...
可以针对你这个分区结构,帮你调整成自动搜索第3个分区,也就是你C盘下的所有ISO文件


这个默认搜索第几个分区,是不是编译时候就决定的?既然源代码那里能改?能否弄成配置项,在外部文件调整?

点评

官方网站的下载页面最下方不是有github和gitee的链接吗?  详情 回复 发表于 2023-6-30 05:59
1457384613wy 发表于 2023-6-24 20:44:11
1.0.93 版 已经出来了
286958 发表于 2022-11-29 13:40:59
用GrubFM文件管理器也可以启动EFI文件或ISO或WIM文件
plutoshen 发表于 2022-11-29 09:42:29
ksjifjui 发表于 2022-10-27 09:41
只调整\grub\grub.cfg文件来修改iso分区的话,如果你只是用它来启动winpe镜像的话,是可行的;

但是如 ...

昨晚试了一下,这样可以启动windows系统iso,如果按F2浏览到第二分区的linux系统iso也可以正常启动。
lxj0209103 发表于 2022-11-18 23:38:44
本帖最后由 lxj0209103 于 2022-11-18 23:43 编辑

可以的,在安装ventoy时一定要先在菜单中勾选保留分区,然后把esp分区(保存grub2x64.efi)和保留分区放后面,各种iso文件放在Ventoy第一分区中,这样不影响ventoy启动速度。先启动ventoy,不用选Ventoy第一分区中各种iso文件,直接F4,搜索EFI文件,选grub2x64.efi。就可以了。
理想不想理 发表于 2022-11-14 23:15:40
其实啊不用那么折腾,买个新U盘128MB的都行,Ventoy分区才32MB,剩余空间都不用放镜像包之类的大文件,就放些配置文件, 足够了。最新版本支持浏览本地硬盘上的镜像启动,达到目的就行,这样做最保险,几块钱一个烂U盘都能搞定,用的时候插上就行,总比自己手贱弄挂了系统,弄丢了文件,或者中大奖弄挂了硬盘来得划算,个人拙见前车之鉴。
brux 发表于 2022-11-14 09:47:43
ksjifjui 发表于 2022-10-24 16:27
已经将1.0.80编译完成

谢谢大佬。
qinliouzhou 发表于 2022-11-6 20:22:03
Syl1us 发表于 2022-11-6 17:45
c盘那么多文件要扫半天的,你要用ventoy文件夹和放里面的ventoy.json限制扫描(c:\ventoy\ventoy.json)v ...

是的,感谢!
Syl1us 发表于 2022-11-6 17:45:49
本帖最后由 Syl1us 于 2022-11-6 18:13 编辑
qinliouzhou 发表于 2022-11-6 13:49
按照您的这个方法,用rEFind,然后进ventoy就是显示Ventoy Scanning files,please wait...
笔记本和虚 ...

c盘那么多文件要扫半天的,你要用ventoy文件夹和放里面的ventoy.json限制扫描(c:\ventoy\ventoy.json)ventoy.json有很多实例的(官网也有介绍),还可以自定义主题等等
比如我的是这个:
  1. {
  2.      "control":[
  3.         { "VTOY_MAX_SEARCH_LEVEL": "1" },
  4.         { "VTOY_FILE_FLT_EFI": "1" },
  5.         { "VTOY_MENU_TIMEOUT": "10" },
  6.         { "VTOY_HELP_TXT_LANGUAGE": "zh_CN" },
  7.         { "VTOY_DEFAULT_SEARCH_ROOT": "/ventoy/ISO" },
  8.         { "VTOY_DEFAULT_IMAGE": "/ventoy/ISO/KuerPE_Win11-Net_Stable_APFS.iso" }
  9.     ]
  10. }
复制代码

点评

是的,感谢!  详情 回复 发表于 2022-11-6 20:22
qinliouzhou 发表于 2022-11-6 13:49:09
ksjifjui 发表于 2022-10-2 20:49
我的方法可以试试,应该是你想要的效果,可以手工部署到本地电脑上,不用格式化,拷贝复制Ventoy相关的启动 ...

按照您的这个方法,用rEFind,然后进ventoy就是显示Ventoy Scanning files,please wait...
笔记本和虚拟机皆如此,硬盘分区为5G的fat32 EFI分区+ntfs的C盘(win10系统),没有msr分区
Syl1us 发表于 2022-10-27 10:31:00
ksjifjui 发表于 2022-10-27 09:33
如果你需要的话,可以单独给你编译一个bios的版本,因为自己电脑是x64的,所以也就没编译其他架构的;
...

那就不麻烦了!我都是先用优盘做测试。
ksjifjui 发表于 2022-10-27 09:41:28
Syl1us 发表于 2022-10-27 00:14
我比较了你编译的文件,修改\grub\grub.cfg这里的数字就可以了。在第几个分区自己DiskGenius看看. [/back ...

只调整\grub\grub.cfg文件来修改iso分区的话,如果你只是用它来启动winpe镜像的话,是可行的;

但是如果你想启动ubuntu或者其他linux发行版的话,只修改grub.cfg这个一个文件是没法成功启动的,因为ventoy底层c代码逻辑调用了linux内核的device mapper功能,它需要生成一张真实块设备和新的虚拟设备的映射表,才能成功将指定块设备虚拟成新设备,然后才能顺利完成linux根文件系统的挂载;

点评

昨晚试了一下,这样可以启动windows系统iso,如果按F2浏览到第二分区的linux系统iso也可以正常启动。  详情 回复 发表于 2022-11-29 09:42
ksjifjui 发表于 2022-10-27 09:33:06
本帖最后由 ksjifjui 于 2022-10-27 10:01 编辑

如果你需要的话,可以单独给你编译一个bios的版本,因为自己电脑是x64的,所以也就没编译其他架构的;
但是bios版本的手动部署步骤要相对复杂了,而且操作危险性极高,因为需要手动写硬盘mbr,这个对于不太清楚mbr的来说,可是相当相当危险的操作了,一不小心可能将本地硬盘的分区表都搞丢了,如果再不清楚如何修复分区表的话,那简直是灾难

手动写mbr的话就需要提前给mbr代码预留扇区了,那么最好是ventoy建议的那样,第一个分区从2048号扇区开始,即第1个分区前保留1M的空闲空间;

我看了下ventoy的mbr占用的扇区情况,boot.img占用1了个扇区,core.img正好占用2047个扇区,两者正好是2048个扇区,所以ventoy支持mbr启动的话,磁盘第一分区的起始扇区号必须是2048
Syl1us 发表于 2022-10-27 00:14:44
ksjifjui 发表于 2022-10-25 21:13
同一个硬盘的话,ISO文件只能放到EFI后的那个分区里面,Ventoy只有一个ISO分区;
如果是2块以上的硬盘的 ...

我比较了你编译的文件,修改\grub\grub.cfg这里的数字就可以了。在第几个分区自己DiskGenius看看. (hd$vtid,数字)和efi_part就是efi分区,iso_part就是iso放置分区。例如,ISO在第3分区,EFI是第一分区。
  1.         if [ -f (hd$vtid,1)/ventoy/ventoy.cpio ]; then
  2.             set vtoy_iso_part=(hd$vtid,3)
  3.             set vtoy_efi_part=(hd$vtid,1)
  4.             set vtoydev=hd$vtid
  5.             break
  6.         fi
  7.     done
  8.     loadfont ascii

  9.     if [ -n "$vtoy_efi_part" ]; then
  10.         vt_load_file_to_mem "auto" $vtoy_efi_part/grub/fonts/unicode.pf2 vtoy_font_mem
  11.         loadfont mem:${vtoy_font_mem_addr}:size:${vtoy_font_mem_size}
  12.     fi

  13.     if [ -f $vtoy_iso_part/ventoy/ventoy.json ]; then
  14.         set vt_plugin_path=$vtoy_iso_part
  15.     else
  16.         set vt_plugin_path=$prefix
  17.         vt_load_plugin $vt_plugin_path
  18.     fi
  19. else
  20.     if [ "$prefix" = "(ventoydisk)/grub" ]; then
  21.         set vtoy_path=(ventoydisk)/ventoy
  22.     else
  23.         set vtoy_path=($root)/ventoy
  24.     fi

  25.     set vtoydev=$vtoy_dev
  26.     set vtoy_iso_part=($vtoy_dev,3)
  27.     set vtoy_efi_part=($vtoy_dev,1)
复制代码

点评

只调整\grub\grub.cfg文件来修改iso分区的话,如果你只是用它来启动winpe镜像的话,是可行的; 但是如果你想启动ubuntu或者其他linux发行版的话,只修改grub.cfg这个一个文件是没法成功启动的,因为ventoy底层c代  详情 回复 发表于 2022-10-27 09:41
Syl1us 发表于 2022-10-26 23:33:05
ksjifjui 发表于 2022-10-24 16:27
已经将1.0.80编译完成,还是原来的地址:https://note.youdao.com/s/UrducsjZ

bios的能改吗

点评

如果你需要的话,可以单独给你编译一个bios的版本  详情 回复 发表于 2022-10-27 09:33
pda8888 发表于 2022-10-26 18:21:26
牛人!回去试试。
ksjifjui 发表于 2022-10-26 15:46:07
mamer88 发表于 2022-10-25 19:58
试了deepin和ubuntu的livecd,都可以了。不过用F2启动不了这些镜像。这些镜像只能放在efi后的第一个分区 ...

Ventoy的1.0.81最新版已经发布了,顺带也一起编译了
ksjifjui 发表于 2022-10-25 21:13:38
本帖最后由 ksjifjui 于 2022-10-25 21:38 编辑
mamer88 发表于 2022-10-25 19:58
试了deepin和ubuntu的livecd,都可以了。不过用F2启动不了这些镜像。这些镜像只能放在efi后的第一个分区 ...

同一个硬盘的话,ISO文件只能放到EFI后的那个分区里面,Ventoy只有一个ISO分区;
如果是2块以上的硬盘的话,可以使用vlnk功能试试,生成一个指向另一个硬盘中ISO对应vlnk文件,然后将vlnk文件拷贝到这个硬盘的ISO分区下;
不过vlnk功能自己还没有时间测试验证,不清楚是不是都完全修改完了

点评

vlnk功能今天自己测试了一下,能正常使用,在原来的地址下载最新的压缩包替换一下就能正常使用了;当前硬盘内的ISO使用vlnk是无效的,需要直接写ISO路径;vlnk是指向的当前硬盘以外其他硬盘内的ISO文件  发表于 2022-10-26 11:16
mamer88 发表于 2022-10-25 19:58:37
ksjifjui 发表于 2022-10-24 15:52
谢谢你们的反馈,之前的确是没有修改完全,最近才有时间再研究研究,已经测试通过了,现在你可以再试试, ...

试了deepin和ubuntu的livecd,都可以了。不过用F2启动不了这些镜像。这些镜像只能放在efi后的第一个分区吗?其他分区的和其他硬盘都不行?

点评

Ventoy的1.0.81最新版已经发布了,顺带也一起编译了  详情 回复 发表于 2022-10-26 15:46
同一个硬盘的话,ISO文件只能放到EFI后的那个分区里面,Ventoy只有一个ISO分区; 如果是2块以上的硬盘的话,可以使用vlnk功能试试,生成一个指向另一个硬盘中ISO对应vlnk文件,然后将vlnk文件拷贝到这个硬盘的ISO分  详情 回复 发表于 2022-10-25 21:13
ksjifjui 发表于 2022-10-24 16:27:56
本帖最后由 ksjifjui 于 2022-11-6 16:22 编辑
brux 发表于 2022-10-5 12:18
可以麻烦你编译下最新版吗
谢谢

已经将1.0.80编译完成

点评

谢谢大佬。  详情 回复 发表于 2022-11-14 09:47
ksjifjui 发表于 2022-10-24 15:52:56
mamer88 发表于 2022-10-3 20:56
我的情况和plutoshen的差不多:
Deepin-20.6-LiveCD-1.1.iso启动不成功。
ubuntu-22.04-desktop-amd64. ...

谢谢你们的反馈,之前的确是没有修改完全,最近才有时间再研究研究,已经测试通过了,现在你可以再试试,下载地址还是原来的地址

点评

试了deepin和ubuntu的livecd,都可以了。不过用F2启动不了这些镜像。这些镜像只能放在efi后的第一个分区吗?其他分区的和其他硬盘都不行?  详情 回复 发表于 2022-10-25 19:58
ksjifjui 发表于 2022-10-24 15:50:35
本帖最后由 ksjifjui 于 2022-11-6 16:21 编辑
plutoshen 发表于 2022-10-3 13:40
比如引导Ubuntu的ISO,从优盘启动就完全正常,但是从硬盘启动就不行。

最近才有时间研究代码,的确有一个地方修改遗漏了,导致所有的linux镜像都无法启动,已经完全修复了,现在有时间你可以试试,

还是从这里获取:http://wuyou.net/forum.php?mod=v ... &fromuid=869921


用rEFInd引导Ventoy的实际的引导效果图

goyou 发表于 2022-10-18 11:20:32
1.把ventoy安装进vhd文件。
2.grub2引导ventoy.vhd。
Syl1us 发表于 2022-10-14 22:44:51
本帖最后由 Syl1us 于 2022-10-18 21:19 编辑

[ 本帖最后由 Syl1us 于 2022-10-18 21:17 编辑 ]\n\n[ 本帖最后由 Syl1us 于 2022-10-18 21:14 编辑 ]\n\n我的解决思路:
1.无损GPT安装;2.grub2再调用ventoy.
==========================
无损安装步骤:

DG备份ESP分区文件删除分区,有MSR分区也删除,调整变成第一分区的NTFS分区,分区前空闲1M(GPT的大小是1004.00KB,无损安装报错看log,自己计算大小)和后面空闲大于32MB以上。
ventoy软件分区类型选”GPT“,选【无损安装】,等待安装完成。
==========================================================
安装好后,DG打开那个32MB的分区把EFI\BOOT里除了grubx64.efi以外的文件删除(32MB空间太小了),以防重名,改名为ventoyx64.efi(都是小写)。

复制前ESP分区文件回去(如空间不足,删除那些非X64的文件)。修改grub2的grub.cfg(注意:不是ventoy的grub.cfg配置文件)文件添加下面的新启动项。
  1. <font face="微软雅黑">menuentry "1. Ventoy UEFI x64(not a secure boot)" --class windows --class os --hotkey='1' {
  2. #把VENTOYEFI的/EFI/BOOT改成VBOOT先启动grub2
  3.         search --no-floppy --set=root --file /EFI/VBOOT/grubx64_real.efi
  4.         chainloader /EFI/VBOOT/BOOTx64.efi
  5. }
  6. menuentry "2. Win PE UEFI x64(secure boot)       " --class windows --class os --hotkey='2' {
  7. #insmod ntfs
  8. # 搜索什么文件自己修改
  9. #        search --no-floppy --set=root --file /EFI/MICROSOFT/BOOT/BCD
  10.         search --no-floppy --set=root --file /USMPE.FIX
  11.         chainloader /EFI/BOOT/BOOTX64.EFI
  12. }</font>
复制代码

PS:
OracleLinux和RedHat的新版镜像里的grub2不用导入证书就支持安全启动(买了微软的签名证书)





评分

参与人数 1无忧币 +5 收起 理由
纯脆entropy + 5 学习了

查看全部评分

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

闽公网安备 35020302032614号

GMT+8, 2024-11-23 07:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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