无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: longpanda
打印 上一主题 下一主题

国产开源U盘启动工具——Ventoy 【2024/06/08 1.0.99 版本发布】

    [复制链接]
631#
 楼主| 发表于 2020-5-12 16:28:50 | 只看该作者
本帖最后由 longpanda 于 2020-5-12 16:30 编辑
从此消失 发表于 2020-5-12 15:42
这个其实就是一个grub2的引导工具,看着还不错。

不仅是引导, 引导简单, 难的是完成整个安装过程。

点评

反馈一个问题:一个优盘用1.09版本点全新安装,拷贝进去一个pe.iso。 1、重启之后在BIOS界面能够看到优盘BIOS启动项,看不到UEFI启动项。 选择BIOS启动项,结果直接从硬盘启动了。猜测是MBR GAP那2048个上去的  详情 回复 发表于 2020-5-12 19:40
回复

使用道具 举报

632#
发表于 2020-5-12 17:32:30 | 只看该作者
谢谢楼主分享啊
回复

使用道具 举报

633#
发表于 2020-5-12 18:20:18 | 只看该作者
很强啊,下来试试看如何
回复

使用道具 举报

634#
发表于 2020-5-12 19:40:01 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-12 19:56 编辑
longpanda 发表于 2020-5-12 16:28
不仅是引导, 引导简单, 难的是完成整个安装过程。

反馈一个问题:

一个优盘用1.09版本点全新安装,拷贝进去一个pe.iso。

1、重启之后在BIOS界面能够看到优盘BIOS启动项,看不到UEFI启动项。
选择BIOS启动项,结果直接从硬盘启动了。猜测是MBR GAP那2048个扇区前一个版本点ventoy的引导信息没有被清除。


2、然后我用diskgenius对该优盘重新分区,默认是勾选了对齐到2048扇区,然后用bootice写入grub4dos引导,BIOS启动时,结果左上角居然显示“Missing Help.”,这应该是ventoy的提示。(前面也有网友提到这个“Missing help.”的提示。)
注意哦,我可是对该优盘进行了重新分区了的哟,为啥还会有ventoy的提示?证明MBR GAP那2048个扇区的引导信息还没有被清除,影响了BIOS下的启动,grub4dos没有获取到控制权,所以启动失败。


3、于是,我用diskgenuis对该优盘重新进行分区,不勾选对齐到2048扇区,其实也就是对齐到63扇区,然后清除保留扇区,再写入grub4dos引导,BIOS下就可以成功引导了。


所以,我想要说的是:
1、ventoy的安装按钮,并没有对MBR GAP的引导代码进行更新,或者更新不完整,导致前一个版本的引导代码如果有问题,新版本没有重建MBR GAP,导致引导出错,这从前面第1条、第2条的启动过程就可以看出来,所以新版本应该完全重写MBR GAP,确保启动成功率。


2、建议增加个恢复默认空间的按钮,就是完全清除MBR GAP的那些引导代码(如果可能的话,恢复MBR GAP,恢复其默认的63扇区)。




点评

GAP的引导代码会更新的, 实际上每次更新, 从 sector1 到 sector 2047 都会强制重写。 因为这部分是Legacy BIOS下的全部,我每次出新版本,新功能都是靠这部分的在legacy下实现功能的,不可能不更新。 这部分数据  详情 回复 发表于 2020-5-12 22:04
回复

使用道具 举报

635#
发表于 2020-5-12 19:56:42 | 只看该作者
赶上更新了,点赞开源大佬,EFI时代的新选择!
回复

使用道具 举报

636#
 楼主| 发表于 2020-5-12 22:04:26 | 只看该作者
liuzhaoyzz 发表于 2020-5-12 19:40
反馈一个问题:

一个优盘用1.09版本点全新安装,拷贝进去一个pe.iso。

GAP的引导代码会更新的, 实际上每次更新, 从 sector1 到 sector 2047 都会强制重写。
因为这部分是Legacy BIOS下的全部,我每次出新版本,新功能都是靠这部分的在legacy下实现功能的,不可能不更新。 这部分数据实际上就是每个安装包中  boot\core.img.xz 文件解压后的数据。
你可以 新老两个版本升级前后吧 这2048个扇区数据导出来对比看看。

要说是特殊情况下更新没成功倒是有可能,但是程序没报错正常来说写入函数是返回成功的。
回复

使用道具 举报

637#
发表于 2020-5-12 22:36:10 | 只看该作者
今天用8G优盘试了下ventoy,格式化成功。然后弄了个两年前の porteus32.iso 放到U盘里。
在bios网络本上启动失败。。。可能氏 iso 没做 ventoy 兼容。。。明天换个别のiso再试下。。。

回复

使用道具 举报

638#
发表于 2020-5-13 00:04:35 | 只看该作者
学习一下。。。。。。。。。。
回复

使用道具 举报

639#
发表于 2020-5-13 06:58:06 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-13 11:05 编辑
longpanda 发表于 2020-5-12 22:04
GAP的引导代码会更新的, 实际上每次更新, 从 sector1 到 sector 2047 都会强制重写。
因为这部分是Leg ...

又测试了多次,再次反馈下:
1、1.09版本我再次用ventoy全新安装,BIOS下面出现了启动项,但是选择之后直接从硬盘启动;UEFI没有启动项。
2、然后我用1.06版本再次ventoy全新install,BIOS/UEFI下都出现了启动项,选择之后wepe.iso启动没问题。
3、然后我再用1.09版本ventoy全新安装,BIOS下面出现了启动项,可以启动;UEFI下面没有启动项。
4、在微PE里面,无论是1.06还是1.09版本,选择全新install,磁盘里的WePE_64_V2.0.iso居然还存在,没有被格式化掉;在正常的WIN10系统里面不存在此问题。为什么要跑去PE里面用ventoy-install?因为我已经在PE里面了,没必要再重启一次到正常系统使用ventoy安装,再重启进行测试。


就是说1.09版本的ventoy安装之后,主板能否出现ventoy的BIOS/UEFI引导项,完全要看人品,不稳定,有时候有,有时候又没有。这台电脑的主板是华硕Z97,感觉对于优盘识别能力还挺强的,支持全部是NTFS分区UEFI启动,感觉不应该是主板识别能力强弱的问题,因为同一个主板,用fat32单分区就没有问题。

我把1.06和1.09版本安装之后的MBR GAP导出来,请看下,都是16进制的bin文件,我不知道怎么搞成txt文件进行对比?https://liuzhaoyzz.lanzous.com/b00nl2umj


如果搞成MBR-FAT32单分区,从没遇到优盘F12选择启动项,没有出现在启动列表的问题。我这是测试了很多次的结果。

2048扇区ventoy.rar

891.99 KB, 下载次数: 1, 下载积分: 无忧币 -2

log1.09.txt

162.61 KB, 下载次数: 0, 下载积分: 无忧币 -2

log-1.06.txt

96.89 KB, 下载次数: 0, 下载积分: 无忧币 -2

点评

我对比了一下,GAP里面的数据分别和06 09安装包里的 core.img 是一致的,也就是说这部分数据是写成功了的。 另外,06 和 09 两份数据,第一个扇区(前512个字节)数据对比,只有一个16字节的UUID和4字节的signatu  详情 回复 发表于 2020-5-13 08:50
回复

使用道具 举报

640#
 楼主| 发表于 2020-5-13 08:50:16 | 只看该作者
liuzhaoyzz 发表于 2020-5-13 06:58
又测试了多次,再次反馈下:
1、1.09版本我再次用ventoy全新安装,BIOS下面出现了启动项,但是选择之后 ...

我对比了一下,GAP里面的数据分别和06 09安装包里的 core.img 是一致的,也就是说这部分数据是写成功了的。

另外,06 和 09 两份数据,第一个扇区(前512个字节)数据对比,只有一个16字节的UUID和4字节的signature不一样,这两个是每次安装时写入随机数,肯定不一样。
其他都是完全一样的,尤其是分区表这块是完全一致的。

按道理来说,BIOS是否把U盘识别为可启动项,最多看看你的分区是什么样的,有没有活动分区,UEFI下看看有没有ESP分区。
尤其是Legacy模式下,应该不会依据GAP里的数据来决定是否成为一个可启动项。

所以我始终想不明白为什么两个版本表现不一样。

至于格式化后文件还在的问题,我再看看。



回复

使用道具 举报

641#
发表于 2020-5-13 09:29:01 | 只看该作者
感谢分享,拿来装linux mint试试,不过我貌似没有找到这个项目的github页面?
回复

使用道具 举报

642#
发表于 2020-5-13 10:22:36 | 只看该作者
gnuxwy 发表于 2020-5-12 22:36
今天用8G优盘试了下ventoy,格式化成功。然后弄了个两年前の porteus32.iso 放到U盘里。
在bios网络本上启 ...

部分ISO需要使用MEMDISK模式才能启动。
回复

使用道具 举报

643#
发表于 2020-5-13 10:57:13 | 只看该作者
longpanda 发表于 2020-5-13 08:50
我对比了一下,GAP里面的数据分别和06 09安装包里的 core.img 是一致的,也就是说这部分数据是写成功了的 ...

如果格式化的时候,不抹掉根目录,则原有的根目录数据就还在。
回复

使用道具 举报

644#
发表于 2020-5-13 11:06:54 | 只看该作者
关于计划中的 2.X 版

我认为,只要把现有的 exFAT 分区去掉,再做一些必要的调整(比如把 ESP 分区做成 FAT32 而不是 FAT16),就很简单地成为了 2.X 版。

搜索 iso 的时候,也把 ESP (即 FAT32 分区)也加入搜索范围中即可。

这样,用户就可以把小型的 iso 文件放在 ESP 分区里面了。

就是说,2.X 不需要做很多工作,一个初步的版本,应该很快就能完成。

点评

意思是, U盘格式化为 单 FAT32分区, 然后只要超过4G的ISO文件,都让用户再插个U盘? 或者放到本地硬盘上? 也不太好吧,要是搞个隐藏分区啥的,普通人也不会用啊。  详情 回复 发表于 2020-5-13 16:06
同意不点大的意见。 ESP分区完全可以大一些,而不止于32M。 你做成2G也行啊。 另外,你这个引导器应该可以chainloaer grldr/bootmgr,这样子bios下的兼容性就强了。 UEFI下应该能列举添加.efi文件来启动引导,  详情 回复 发表于 2020-5-13 15:01
回复

使用道具 举报

645#
发表于 2020-5-13 11:24:31 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-13 12:28 编辑
longpanda 发表于 2020-5-13 08:50
我对比了一下,GAP里面的数据分别和06 09安装包里的 core.img 是一致的,也就是说这部分数据是写成功了的 ...

我来胡乱地猜测下:

1、普通优盘在WIN10.1703及以下,包括xp/win7 8等,只能给第一个分区分配盘符,也就是不能同时读写所有的分区,超过一个分区不显示盘符;在WIN10.1703以上的版本,可以显示多个分区。固态优盘、移动硬盘在windows xp 7/8/10里面都是可以显示多个分区,可以同时读写任意一个分区。   
这是微软的搞法,微软基本上可以看做事实上的行业标准,不管他这样做倒底对不对。
优盘在BIOS启动的情况下,BIOS可能会查找第一个活动分区,如果活动分区是第一个分区,应该能够找到并启动,这是当MBR是windows NT系引导器,比如ntldr/bootmgr的前提下;当MBR时grub4dos的时候,grub4dos可以查找全部分区的grldr。
diskgenius对优盘进行两分区,第一个分区是活动分区,这更加符合windows的规范(也可以说是行业规范);对比下ventoy,ventoy的第二个EFI分区才是活动分区,实模式下我感觉BIOS找不到活动分区,可能不一定会把优盘加入到启动列表中,需要看人品。但是前面测试了diskgenius双分区没问题,可ventoy采用第一分区活动分区的方案似乎更差,原因不明。
2、UEFI下又为啥按F12/F8的时候看不到启动项呢?我总感觉也是和两分区有关。这说的都是普通优盘的情况。前面江南一根葱经过很多的优盘实战,他的经验告诉我们,有些主板识别放在前面的FAT32/ESP分区上的引导文件效果好,有的主板识别放在后面的FAT32/ESP分区上的引导文件效果好,可能是这个问题。

可是为啥1.09不行,但是1.06又可以?分区方式都是一样的啊,费解。难道与主板安全启动有关?

3、对于固态优盘、移动硬盘原生支持多分区分配盘符并显示,肯定不存在上面的情况。
   


点评

如果 ventoy 第一分区(活动分区)是 exFAT 分区,而不是 FAT32 分区,则在(故意制造)混乱的 BIOS 环境下,主板启动兼容性差,是可以理解的。 因此,我认为,单一 FAT32 的方案(计划中的 2.X版),也到了该尽  详情 回复 发表于 2020-5-13 11:34
回复

使用道具 举报

646#
发表于 2020-5-13 11:34:38 | 只看该作者
liuzhaoyzz 发表于 2020-5-13 11:24
我来胡乱地猜测下:

1、普通优盘在WIN10.1703及以下,包括xp/win7 8等,只能给第一个分区分配盘符,也 ...

如果 ventoy 第一分区(活动分区)是 exFAT 分区,而不是 FAT32 分区,则在(故意制造)混乱的 BIOS 环境下,主板启动兼容性差,是可以理解的。

因此,我认为,单一 FAT32 的方案(计划中的 2.X版),也到了该尽快上马的时候,不能拖延了。

点评

如果ventoy第一分区是活动的exfat分区,UEFI一般是不可能启动的。一般情况下,UEFI需要找到FAT32/ESP分区上面的bootx64.efi并将之加入UEFI引导列表;部分主板,比如华硕原生支持从NTFS分区的bootx64.efi直接  详情 回复 发表于 2020-5-13 11:52
回复

使用道具 举报

647#
发表于 2020-5-13 11:52:26 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-13 18:50 编辑
不点 发表于 2020-5-13 11:34
如果 ventoy 第一分区(活动分区)是 exFAT 分区,而不是 FAT32 分区,则在(故意制造)混乱的 BIOS 环境 ...

        如果ventoy第一分区是活动的exfat分区,ventoy现有的方案难以实现BIOS/UEFI双启动,因为BIOS查找活动分区引导文件,ventoy引导文件全部在第二分区。

NTFS分区是windows下常用的分区格式,稳定;exfat感觉不如NTFS稳定,要想更好地适用于windows,NTFS是较好的选择。而要想利用exfat在windows和linux中搭建个桥梁,使之通用于两种操作系统,感觉比较难。
回复

使用道具 举报

648#
发表于 2020-5-13 15:01:08 | 只看该作者
不点 发表于 2020-5-13 11:06
关于计划中的 2.X 版

我认为,只要把现有的 exFAT 分区去掉,再做一些必要的调整(比如把 ESP 分区做成  ...

同意不点大的意见。
ESP分区完全可以大一些,而不止于32M。
你做成2G也行啊。

另外,你这个引导器应该可以chainloaer grldr/bootmgr,这样子bios下的兼容性就强了。
UEFI下应该能列举添加.efi文件来启动引导,那么EFI启动也不是问题。
单独适配某些ISO,窃以为这个工作永远做不完。

点评

Ventoy不做大全的启动器呀, 只负责启动和安装ISO文件,其他不管。 grubfilemanager 在这方面做的更好。 适配尽量多的ISO,尤其是Linux系统 是Ventoy的目标和追求。 现在讨论的兼容性更多的是BIOS不把你这个U盘  详情 回复 发表于 2020-5-13 16:18
回复

使用道具 举报

649#
 楼主| 发表于 2020-5-13 16:06:19 | 只看该作者
本帖最后由 longpanda 于 2020-5-13 16:23 编辑
不点 发表于 2020-5-13 11:06
关于计划中的 2.X 版

我认为,只要把现有的 exFAT 分区去掉,再做一些必要的调整(比如把 ESP 分区做成  ...

意思是, U盘格式化为 单 FAT32分区, 然后只要超过4G的ISO文件,都让用户再插个U盘? 或者放到本地硬盘上?  那不就 不符合你 高大上 的定位了嘛。毕竟您那隐藏NTFS分区的搞法普通人也不会用啊。

这样的话和我规划的 2.X 差不多呀, 只不过在我规划中,这个FAT32单分区中也不放ISO文件,全部放别处, 你这里意思就是小点的ISO文件也可以放这里,就这点差别吧。

当前的方案已经是我能想到的最优的了。 虽然启动兼容性上不够完美,但是大部分机器还是能兼容的。 我想除非要区分不同的场景做不同的分区选择,否则是没办法一种分区法满足所有场景的。
回复

使用道具 举报

650#
 楼主| 发表于 2020-5-13 16:18:51 | 只看该作者
microlaf 发表于 2020-5-13 15:01
同意不点大的意见。
ESP分区完全可以大一些,而不止于32M。
你做成2G也行啊。

Ventoy不做大全的启动器呀, 只负责启动和安装ISO文件,其他不管。 grubfilemanager 在这方面做的更好。
适配尽量多的ISO,尤其是Linux系统 是Ventoy的目标和追求。

现在讨论的兼容性更多的是BIOS不把你这个U盘当成可启动U盘,这个和分区格式选择有关系, 和启动器关系不大。


回复

使用道具 举报

651#
发表于 2020-5-13 16:57:11 来自手机 | 只看该作者
longpanda 发表于 2020-5-13 16:18
Ventoy不做大全的启动器呀, 只负责启动和安装ISO文件,其他不管。 grubfilemanager 在这方面做的更好。
...

嗯,我的意思就是这样,整体启动ISO,并且从底层动手解决适配,这是ventoy的特色。
然而当有的ISO启动不了时,如果ventoy有接口引导其它引导器加载成功,这样就解决问题了。

也就是说如果有grldr或者bootmgr或者.efi文件,可以列表出来并尝试启动之。这应该是ventoy的有益补充。
回复

使用道具 举报

652#
发表于 2020-5-13 17:56:18 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-13 18:10 编辑
longpanda 发表于 2020-5-13 16:06
意思是, U盘格式化为 单 FAT32分区, 然后只要超过4G的ISO文件,都让用户再插个U盘? 或者放到本地硬盘 ...

ventoy的卖点,在于其简约,简单之美。如果引入不点的方案,FAT32+隐藏的NTFS分区,反而弄复杂了,有违KISS原则(Keep it Simple & Stupid)。多分区方案已经有很多了,感觉更新起来比较复杂。
如果要引入不点的方案,建议远景做个选项吧。
回复

使用道具 举报

653#
发表于 2020-5-13 18:07:05 | 只看该作者
本帖最后由 qingyi78 于 2020-5-13 18:28 编辑

其实就安装界面加一个NTFS exfat二选一的选项即可。完全不碰LINUX的人就可以选NTFS,否则可以选EXFAT还有为了安全起见,跟安全启动有关的文件不必提供。需要的人自己会想办法的。我自己就存了一份在自己的硬盘。像CLOVER这种常用且稳定的引导器我就直接做成过安全启动的了。
回复

使用道具 举报

654#
发表于 2020-5-13 21:08:40 | 只看该作者
这个很耳目一新,牛逼,支持!
回复

使用道具 举报

655#
发表于 2020-5-13 21:38:59 | 只看该作者
aimbot 发表于 2020-5-13 10:22
部分ISO需要使用MEMDISK模式才能启动。

今天试了Memdisk模式,iso约344MiB,约花费一分钟仍然启动失败。
屏幕提示进入grub4dos环境:
GRUB4DOS 0.4.6a 2016-12-12 ,  root is 0xE0
......
[Mininal ...  TAB... filename]
grub > ls
EFI boot  grldr konexec32.exe  konexec64.exe menu.lst porteus

看来这个两年前win2flash老大定制porteus32.iso ,还氏不兼容 ventoy 。。。

又试了另一个坛友在Linux板块新发布のslitaz0510core64.iso ,结果不错 ,ventoy 可以
成功引导进入立服(live)环境。。。
回复

使用道具 举报

656#
 楼主| 发表于 2020-5-13 22:53:07 | 只看该作者
本帖最后由 longpanda 于 2020-5-13 22:55 编辑
gnuxwy 发表于 2020-5-13 21:38
今天试了Memdisk模式,iso约344MiB,约花费一分钟仍然启动失败。
屏幕提示进入grub4dos环境:
...

memdisk 模式直接使用的是 syslinux 的  memdisk,兼容性应该很好的,它都没法启动的会不会ISO文件有点问题呀。之前QQ群里有反馈 一个 Porteus-3.2-UD-i586-20160715.iso  启动有问题。就是它里面的bootloader比较怪异,所以没有特别再去适配它。但是有办法能启动它。

回复

使用道具 举报

657#
发表于 2020-5-14 02:47:00 | 只看该作者
更新了,很不错
回复

使用道具 举报

658#
发表于 2020-5-14 08:10:59 | 只看该作者
@longpanda

我现在在用 1.0.06 版,目前够用,在 1.X 系列不打算跟进。

问一下:

现在还有没有计划做 “单一 FAT32” 分区的版本?若有,预计啥时候能实现?

点评

现在还没有计划哈  详情 回复 发表于 2020-5-14 09:29
回复

使用道具 举报

659#
发表于 2020-5-14 08:26:07 | 只看该作者
longpanda 发表于 2020-5-13 22:53
memdisk 模式直接使用的是 syslinux 的  memdisk,兼容性应该很好的,它都没法启动的会不会ISO文件有点问 ...

syslinux 的 memdisk 兼容性不好。
如果 ISO 使用的 bootloader 是 GRUB4DOS,或者 ISO 里面有 GRUB4DOS,那么用 memdisk 启动这个 ISO,进入里面的 GRUB4DOS 时就会出问题。
回复

使用道具 举报

660#
 楼主| 发表于 2020-5-14 09:00:10 | 只看该作者
本帖最后由 longpanda 于 2020-5-14 09:57 编辑
wintoflash 发表于 2020-5-14 08:26
syslinux 的 memdisk 兼容性不好。
如果 ISO 使用的 bootloader 是 GRUB4DOS,或者 ISO 里面有 GRUB4DOS ...

是吗。
会不会是grub4dos的问题呢? 之前那个 Porteus-3.2-UD-i586-20160715.iso 就是里面的 bootloader访问ISO文件会越界的问题,把ISO文件最后补点数据,撑大一点就可以了。
虽然直接用在实体机或者虚拟机上是能启动的,但是终归是有点问题。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-23 10:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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