无忧启动论坛

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

国产开源U盘启动工具——Ventoy 【2024/01/24 1.0.97 版本发布】

    [复制链接]
发表于 2020-4-9 09:00:18 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-4-9 09:02 编辑
longpanda 发表于 2020-4-9 08:51
我记得你说过, 同样的Ventoy,U盘,你这个老电脑是能启动WePE那个ISO的,但是启动不了 SXWIN10PEX64_177 ...

是的啊。我感觉就是grub2的exfat文件解析模块有问题。
感觉楼主的方案对于新电脑支持要比老电脑支持好点。
另外我仔细看了下一楼,原来一楼就有说支持的操作系统是WIN7以上,没说支持XP。

点评

Win7以上,是因为当前只支持WIM格式的。其实如果是启动后不需要挂载ISO的,理论上XP也可以。因为Ventoy就是模拟一个CDROM嘛, 你只要光驱能启动,是不管里面的系统是什么的。  详情 回复 发表于 2020-4-9 09:07
还有一个可能, 我分析了一下, WePE那个ISO文件是 ISO9660和UDF双格式的, 你那个ISO文件是纯UDF格式的。一般来说ISO9660是最标准的光盘启动格式,尤其是对老电脑。你可以试试重新打包一下那个ISO,做成ISO9660文件  详情 回复 发表于 2020-4-9 09:02
回复

使用道具 举报

 楼主| 发表于 2020-4-9 09:02:27 | 显示全部楼层
本帖最后由 longpanda 于 2020-4-9 09:03 编辑
liuzhaoyzz 发表于 2020-4-9 09:00
是的啊。我感觉就是grub2的exfat文件解析模块有问题。

还有一个可能, 我分析了一下, WePE那个ISO文件是 ISO9660和UDF双格式的, 你那个ISO文件是纯UDF格式的。一般来说ISO9660是最标准的光盘启动格式,尤其是对老电脑。你可以试试重新打包一下那个ISO,做成ISO9660文件格式,试试,这个只是猜测。

点评

一个ISO还能够是 ISO9660和UDF双格式吗?不懂。ISO9660是最标准的光盘启动格式,是否适用于新电脑呢? 我晚点试下。 ventoy不能对于这种udf格式做个适配吗?  详情 回复 发表于 2020-4-9 09:10
回复

使用道具 举报

 楼主| 发表于 2020-4-9 09:07:05 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 09:00
是的啊。我感觉就是grub2的exfat文件解析模块有问题。感觉楼主的方案对于新电脑支持要比老电脑支持好点。 ...

Win7以上,是因为当前只支持WIM格式的hook。其实如果是启动后不需要挂载ISO的,理论上XP也可以。因为Ventoy就是模拟一个CDROM嘛, 你只要光驱能启动,是不管里面的系统是什么的。
回复

使用道具 举报

发表于 2020-4-9 09:10:04 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-4-9 09:35 编辑
longpanda 发表于 2020-4-9 09:02
还有一个可能, 我分析了一下, WePE那个ISO文件是 ISO9660和UDF双格式的, 你那个ISO文件是纯UDF格式的 ...

一个ISO还能够是 ISO9660和UDF双格式吗?不懂。ISO9660是最标准的光盘启动格式,是否适用于新电脑呢?
我晚点试下。
看了篇文章,http://wuyou.net/forum.php?mod=viewthread&tid=419724
Oscdimg工具支持三种文件系统格式:ISO 9660、Joliet和UDF。其中ISO 9660选项不能与Joliet或UDF选项组合,Joliet选项不能与ISO 9660选项组合,UDF选项也不能与ISO 9660选项组合。
ISO9660和UDF双格式怎么做出来的?

ventoy不能对于这种udf格式做个适配吗?

点评

OSCdimg这个工具我没用过,不是很懂。 我是看用UltraISO打开的时候,在 文件——属性里面, WePE ISO9660 和 UDF两个都是勾上的, 你这个只有UDF是勾上的。所以才有这么一猜。  详情 回复 发表于 2020-4-9 09:33
适配是可以的,现在不是还不确定嘛,这个只是猜测,不一定就是这个原因。 而且原版的Windows也是UDF格式,我也测过没问题的。对了,你可以拷贝个原版的Windows安装镜像在老电脑上试试。 至于格式,如果改起来麻烦  详情 回复 发表于 2020-4-9 09:30
回复

使用道具 举报

发表于 2020-4-9 09:30:19 | 显示全部楼层
再来支持一下
回复

使用道具 举报

 楼主| 发表于 2020-4-9 09:30:47 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 09:10
一个ISO还能够是 ISO9660和UDF双格式吗?不懂。ISO9660是最标准的光盘启动格式,是否适用于新电脑呢?
...

适配是可以的,现在不是还不确定嘛,这个只是猜测,不一定就是这个原因。 而且原版的Windows也是UDF格式,我也测过没问题的。对了,你可以拷贝个原版的Windows安装镜像在老电脑上试试。

至于格式,如果改起来麻烦,还有两种简单点的方法,选哪种都可以,你有空可以试试。
1. 做好备份后,直接用 010Editor修改你这个ISO文件, 把从 0x8260 (33376) 偏移开始的 17个字节的数据改成 56 45 4E 54 4F 59 20 43 4F 4D 50 41 54 49 42 4C 45
iso.PNG
2.重新打包这个ISO文件,什么都不改,就是在根目录下放上这个文件 (不要改名)http://www.ventoy.net/download/ventoy.dat

这两种效果和改成ISO9660格式一样。

点评

用了这个方法,用ultraiso注册版打开这个iso,拖入entoy.dat,保存,然后老电脑BIOS下面可以启动了!  详情 回复 发表于 2020-4-9 12:40
回复

使用道具 举报

 楼主| 发表于 2020-4-9 09:33:33 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 09:10
一个ISO还能够是 ISO9660和UDF双格式吗?不懂。ISO9660是最标准的光盘启动格式,是否适用于新电脑呢?
...

OSCdimg这个工具我没用过,不是很懂。 我是看用UltraISO打开的时候,在 文件——属性里面, WePE ISO9660 和 UDF两个都是勾上的, 你这个只有UDF是勾上的。所以才有这么一猜。

点评

你说错了吧, wepe是勾上了Joliet和udf,我的pe是勾上了udf,直接上图吧。都没有勾上ISO9660。 wepe [attachimg]415810[/attachimg] 我的pe [attachimg]415811[/attachimg]  详情 回复 发表于 2020-4-9 09:44
回复

使用道具 举报

发表于 2020-4-9 09:33:46 | 显示全部楼层
longpanda 发表于 2020-4-8 22:23
更新了 1.0.02 版本,可以试试闪迪U盘是否能识别。另外,也可以用新版本再试试Windows7那个。
http://ww ...

刚刚试过了,闪迪盘可以识别并正常使用了。,win7我再从网上下载几个试试,感谢楼主。
回复

使用道具 举报

发表于 2020-4-9 09:44:12 | 显示全部楼层
longpanda 发表于 2020-4-9 09:33
OSCdimg这个工具我没用过,不是很懂。 我是看用UltraISO打开的时候,在 文件——属性里面, WePE ISO9660 ...

你说错了吧,

wepe是勾上了Joliet和udf,我的pe是勾上了udf,直接上图吧。都没有勾上ISO9660。
wepe
QQ截图20200409094151.jpg

我的pe
QQ截图20200409094209.jpg

点评

他那个ISO9660虽然是灰的,但是也是有勾的,下面这个没有。  详情 回复 发表于 2020-4-9 09:49
回复

使用道具 举报

 楼主| 发表于 2020-4-9 09:49:51 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 09:44
你说错了吧,

wepe是勾上了Joliet和udf,我的pe是勾上了udf,直接上图吧。都没有勾上ISO9660。

他那个ISO9660虽然是灰的,但是也是有勾的,下面这个没有。

点评

wepe应该是没有启用ISO9660. http://wuyou.net/forum.php?mod=viewthread&tid=419724 Oscdimg工具支持三种文件系统格式:ISO 9660、Joliet和UDF。其中ISO 9660选项不能与Joliet或UDF选项组合,Joliet选项不能与ISO  详情 回复 发表于 2020-4-9 09:53
回复

使用道具 举报

发表于 2020-4-9 09:53:48 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-4-9 09:55 编辑
longpanda 发表于 2020-4-9 09:49
他那个ISO9660虽然是灰的,但是也是有勾的,下面这个没有。

wepe应该是没有启用ISO9660.
http://wuyou.net/forum.php?mod=viewthread&tid=419724
Oscdimg工具支持三种文件系统格式:ISO 9660、Joliet和UDF。其中ISO 9660选项不能与Joliet或UDF选项组合,Joliet选项不能与ISO 9660选项组合,UDF选项也不能与ISO 9660选项组合。
文章里面写的很清楚啊。
ISO 9660选项不能与Joliet或UDF选项组合连用啊。Oscdimg似乎是微软的工具吧,可以算作是“行业标准”了。

点评

wepe 用 oscdimg 生成iso的时候,应该用了 -u1 参数。 -u1 生成包含UDF和ISO 9660文件系统的映像,其中ISO 9660文件系统将使用兼容DOS 8.3的文件名写入,UDF文件系统将使用Unicode文件名写入。  详情 回复 发表于 2020-4-9 10:51
那怎么解释他那个有勾呢? 而且按照ISO9660的格式解析,WePE的确实能解析出目录树来,SXWIN这个确实解析不出来。  详情 回复 发表于 2020-4-9 10:04
回复

使用道具 举报

 楼主| 发表于 2020-4-9 10:04:46 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 09:53
wepe应该是没有启用ISO9660.
http://wuyou.net/forum.php?mod=viewthread&tid=419724
Oscdimg工具支持 ...

那怎么解释他那个有勾呢? 而且按照ISO9660的格式解析,WePE的确实能解析出目录树来,SXWIN这个确实解析不出来。
回复

使用道具 举报

发表于 2020-4-9 10:51:03 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 09:53
wepe应该是没有启用ISO9660.
http://wuyou.net/forum.php?mod=viewthread&tid=419724
Oscdimg工具支持 ...

wepe 用 oscdimg 生成iso的时候,应该用了 -u1 参数。

-u1  生成包含UDF和ISO 9660文件系统的映像,其中ISO 9660文件系统将使用兼容DOS 8.3的文件名写入,UDF文件系统将使用Unicode文件名写入。

点评

是不是还可能用了-j1参数。 ② Joliet选项 Joliet文件系统允许较长的文件名称和Unicode字符,其文件夹深度可以大于8。 注:-j2选项不能与任何UDF选项一起使用。 -j1 对Joliet Unicode文件名进行编码,在  详情 回复 发表于 2020-4-9 10:53
回复

使用道具 举报

发表于 2020-4-9 10:53:07 | 显示全部楼层
adef 发表于 2020-4-9 10:51
wepe 用 oscdimg 生成iso的时候,应该用了 -u1 参数。

-u1  生成包含UDF和ISO 9660文件系统的映像,其 ...

是不是还可能用了-j1参数。
②   Joliet选项
Joliet文件系统允许较长的文件名称和Unicode字符,其文件夹深度可以大于8。
    注:-j2选项不能与任何UDF选项一起使用。
-j1  对Joliet Unicode文件名进行编码,在 ISO 9660 命名空间中生成兼容DOS 8.3的文件名,这些文件名可以被 Joliet 系统或传统的ISO 9660系统读取,但是Oscdimg可能会更改ISO 9660名称空间中的一些文件名以符合DOS 8.3的命名限制。Joliet文件系统将具有最多64个字符的Unicode文件名。
回复

使用道具 举报

发表于 2020-4-9 12:40:47 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-4-9 12:42 编辑
longpanda 发表于 2020-4-9 09:30
适配是可以的,现在不是还不确定嘛,这个只是猜测,不一定就是这个原因。 而且原版的Windows也是UDF格式 ...
2.重新打包这个ISO文件,什么都不改,就是在根目录下放上这个文件 (不要改名)http://www.ventoy.net/download/ventoy.dat

用了这个方法,用ultraiso注册版打开这个iso,拖入ventoy.dat,保存,然后老电脑BIOS下面可以启动了!

udf应该是可以的,只不过是兼容性问题吧,微软原版iso太大了,应该可以吧,没尝试。

点评

你这个保存之后应该也是UDF格式吧,可能ISO9660也没有勾。我知道问题在哪了,不在格式,在于hook,老机器对应hook过的ISO文件不认。其实你这个PE不需要hook,启动之后不需要挂载ISO的,都不需要。只不过Ventoy当前版  详情 回复 发表于 2020-4-9 13:13
回复

使用道具 举报

 楼主| 发表于 2020-4-9 13:13:43 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 12:40
用了这个方法,用ultraiso注册版打开这个iso,拖入ventoy.dat,保存,然后老电脑BIOS下面可以启动了!
...

你这个保存之后应该也是UDF格式吧,可能ISO9660也没有勾。我知道问题在哪了,不在格式,在于hook,老机器对应hook过的ISO文件不认。其实你这个PE不需要hook,启动之后不需要挂载ISO的,都不需要。只不过Ventoy当前版本把你的ISO认成标准Windows镜像了,做了hook.  加这个文件就是告诉Ventoy不要去hook.

点评

应该还是udf格式的。没细看。 这个问题,ventoy能否在代码层面解决,使之适配,而不是让我们去修改ISO?  详情 回复 发表于 2020-4-9 13:36
回复

使用道具 举报

发表于 2020-4-9 13:36:42 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-4-9 13:48 编辑
longpanda 发表于 2020-4-9 13:13
你这个保存之后应该也是UDF格式吧,可能ISO9660也没有勾。我知道问题在哪了,不在格式,在于hook,老机器 ...

应该还是udf格式的。
QQ拼音截图20200409134727.png

这个问题,ventoy能否在代码层面解决,使之全自动地适配,而不是让我们去修改ISO?


点评

不做hook对Ventoy更简单,就是怎么判断的问题了。 各路大神的PE真的是五花八门,很难判断。对于像原版镜像这种,如果不hook,是没法安装的,对于需要有外置程序的PE,也是不行的,除非它里面兼容Ventoy。而对于全内  详情 回复 发表于 2020-4-9 15:52
回复

使用道具 举报

发表于 2020-4-9 13:52:27 | 显示全部楼层
谢谢分享,用一用再说
回复

使用道具 举报

 楼主| 发表于 2020-4-9 15:52:34 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 13:36
应该还是udf格式的。

不做hook对Ventoy更简单,就是怎么判断的问题了。 各路大神的PE真的是五花八门,很难判断。对于像原版镜像这种,如果不hook,是没法安装的,对于需要有外置程序的PE,也是不行的,除非它里面兼容Ventoy。而对于全内置的PE,是不需要hook的。确实不太好办。我初步的想法有两个:一个是一刀切,比如对于1G一下的Windows镜像,全部当成全内置的PE对待,全部不hook; 还有一种是我在界面上做一个模式,你选择镜像之前按个快捷键,这一次就按照不 hook来启动。

点评

这个判断逻辑感觉太暴力了,不科学啊! 按快捷键启动,这样子也是太麻烦了。 还是要想个更好的办法,全自动才好。  详情 回复 发表于 2020-4-9 15:58
回复

使用道具 举报

发表于 2020-4-9 15:58:01 | 显示全部楼层
longpanda 发表于 2020-4-9 15:52
不做hook对Ventoy更简单,就是怎么判断的问题了。 各路大神的PE真的是五花八门,很难判断。对于像原版镜 ...
一刀切,比如对于1G一下的Windows镜像,全部当成全内置的PE对待,全部不hook;

这个判断逻辑感觉太暴力了,不科学啊!

还有一种是我在界面上做一个模式,你选择镜像之前按个快捷键,这一次就按照不 hook来启动。

按快捷键启动,这样子也是太麻烦了。

还是要想个更好的办法,全自动才好。

点评

不好想啊,比如你这个PE,我怎么知道你里面是全内置的还是需要挂载外置工具的呢? 另外,单独针对你这个PE的话,其实hook了在新电脑上也是没问题的, 那要判断电脑的BIOS的兼容性的话就更难了。 其实,我最初的想  详情 回复 发表于 2020-4-9 16:06
回复

使用道具 举报

 楼主| 发表于 2020-4-9 16:06:45 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 15:58
这个判断逻辑感觉太暴力了,不科学啊!

不好想啊,比如你这个PE,我怎么知道你里面是全内置的还是需要挂载外置工具的呢?
另外,单独针对你这个PE的话,其实hook了在新电脑上也是没问题的, 那要判断电脑的BIOS的兼容性的话就更难了。
其实,我最初的想法,就是只支持原版Windows镜像的,对于PE全部不做hook, 对于需要外置应用的PE,只能它在里面兼容Ventoy了,Ventoy不再去主动兼容了。 我并不追求能兼容每一个PE。 Ventoy Compatible能被接受才是我的最终目标。

点评

世上没有绝对的,只有相对的。  详情 回复 发表于 2020-4-14 22:10
回复

使用道具 举报

发表于 2020-4-9 16:20:32 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-4-9 16:41 编辑

我不太理解ventoy的hook是什么机制。

用我通俗的理解,对于BIOS下用grub4dos map --mem pe.iso来说,map --mem之后也是需要hook的,这个hook只在grub4dos环境下生效,如果没有firadisk这一类的驱动配合,pe.iso在进入windows保护模式之后就会失效。

ventoy的启动是不是类似于grub4dos的直接map pe.iso,然后从上面启动?这个hook生效保持到什么时候?如果没有firadisk这一类的驱动加持,pe.iso进入保护模式也是找不到外置的,这个hook和grub4dos的hook是不是一个意思?不明白。
你在63楼http://wuyou.net/forum.php?mod=r ... 7370&fromuid=298214已经有解释,我看得似懂非懂。
其实,我最初的想法,就是只支持原版Windows镜像的,对于PE全部不做hook, 对于需要外置应用的PE,只能它在里面兼容Ventoy了,Ventoy不再去主动兼容了。 我并不追求能兼容每一个PE。

现在很多的PE,比如WIN7 8 10PE,外置版本的,似乎也很少集成firadisk之类的驱动,grub4dos用map --mem pe.iso模式启动,很多是看不到外置的吧,外置程序一般需要提前放置到根目录下某个指定的文件夹里面,不集成firadisk,就相当于没有进行hook操作,ventoy启动的时候,判断一个pe.iso是内置还是外置确实很难,感觉ventoy是不是也可以考虑参考grub4dos的这种map和map --mem,grub4dos的map --mem还是很稳定的,无论PE是内置版本还是外置版本map都没问题。我不懂map深层次原理,我只能从结果看问题,胡乱说的。

点评

这个内置外置,实际上是Ventoy在启动的时候是虚拟了一个CDROM,在启动过程中是没问题的。但是起来之后, 如果是正常的通过真实的CDROM或者是普通制作的可启动U盘启动的话,那很容易找到这个CDROM或者U盘对应的盘符,  详情 回复 发表于 2020-4-9 16:54
回复

使用道具 举报

 楼主| 发表于 2020-4-9 16:54:03 | 显示全部楼层
本帖最后由 longpanda 于 2020-4-9 16:56 编辑
liuzhaoyzz 发表于 2020-4-9 16:20
我不太理解ventoy的hook是什么机制。

用我通俗的理解,对于BIOS下用grub4dos map --mem pe.iso来说,map ...

实际上是Ventoy在启动的时候是虚拟了一个CDROM,这个CDROM是BIOS层面的,只在启动过程中存在。但是起来之后这个虚拟CDROM就没有了。如果是正常的通过真实的CDROM或者是普通制作的可启动U盘启动的话,那很容易找到这个CDROM或者U盘对应的盘符,然后去那里加载外置应用就可以了。
但是Ventoy是虚拟的CDROM嘛, 系统起来之后,这个就不存在了,然后PE里面我们自己的脚本起来之后,去找盘符的时候发现找不到,没有CDROM,只有一个U盘,但是U盘里咋都是一个个的ISO文件呀, PE1.iso  PE2.iso ...

我是从哪里来的呀。。。
我是咋启动起来的呀。。。
我的外置程序去哪里找呀。。。。
完事就懵逼了嘛。。

其实Ventoy的hook就是在安装程序(原版镜像)或者是我们自己的PE的程序(winpeshl.exe或者PECMD.exe) 启动之前,悄悄地把U盘里面对应的那个ISO给挂载起来了。 然后等后面程序跑起来之后,一下找到一个盘符,然后就认为自己是从这个光驱启动的,然后就很愉快地走下去了。。。。

点评

如果 pe 内置了 firadisk 驱动,可以通过创建一个小内存盘,里面包含正确的 Firadisk 配置文件及 ISO 路径,就可以让 firadisk 驱动自动找到 ISO 并挂载。 https://github.com/a1ive/grub/issues/24 当然 只适用于  详情 回复 发表于 2020-4-9 17:36
大概明白了ventoy的hook的意思,跟grub4dos的hook还是有区别的。 grub4dos的map --mem pe.iso (0xff),在实模式下虚拟出一个光驱(0xff)出来,并从上面启动,如果有firadisk这一类的驱动加持的话,这个光驱在实模  详情 回复 发表于 2020-4-9 17:15
回复

使用道具 举报

发表于 2020-4-9 17:15:43 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-4-9 17:33 编辑
longpanda 发表于 2020-4-9 16:54
实际上是Ventoy在启动的时候是虚拟了一个CDROM,这个CDROM是BIOS层面的,只在启动过程中存在。但是起来之 ...

大概明白了ventoy的hook的意思,跟grub4dos的hook还是有区别的。

grub4dos的map --mem pe.iso (0xff),在实模式下虚拟出一个光驱(0xff)出来,并从上面启动,如果有firadisk这一类的驱动加持的话,这个光驱在实模式和进入windows保护模式之后都不会失效,从而让PE能够正常找到虚拟光驱(0xff)里面的外置程序。

而ventoy的hook,只是在BIOS的实模式下有效,切换到保护模式会失效,因此在pe核心启动之前,ventoy在windows保护模式,用windowsAPI或者imdisk虚拟出一个光驱,并把pe.iso挂载到这个光驱里面,这样子的话,进入windows保护模式之后,pe可以从这个虚拟光驱里面找到外置程序。

现在的问题就是,对于某些pe,对于老电脑,ventoy用windowsAPI或者imdisk虚拟出一个光驱之后,winpeshl.exe无法继续启动,这是个问题。

大概是这样子吧,ventoy的这套方案,是一套全新的方案啊,不同于grub4dos的map机制。

我这个PE是完全不同的架构,没有用pecmd.exe作为启动命令解释器,没有用explorer.exe作为shell,用的slore大神的winxshell作为shell,用winxshell内嵌的lua解释器代替pecmd.exe来作为启动命令登录器,不知道是不是这个原因导致的ventoy虚拟光驱挂载之后,pe内核继续启动失败。

点评

楼主安装原版的原理跟grubfm有点类似,就是注入文件到"pe环境" 但方式不同,代码层面的原理我猜也差不多 (我不懂代码) boot.wim启动后挂载真实的iso.类似ipxe+wimboot注入挂载代码,所以楼主的方式我虚拟机启win7原  详情 回复 发表于 2020-4-9 22:09
另外,grub4dos -mem memdisk的机制下,fradisk驱动能生效的前提是镜像已经加载到内存里了。对PE适用,但我给你一个Windows的原版ISO安装镜像,4GB+ 甚至 6GB+,加载到内存是不现实的。  发表于 2020-4-9 20:34
你这个老电脑不能启动我觉得还没到winpeshl.exe执行这一步可能就挂死了。 Ventoy的hook是在ISO文件层面的,也就是说,Ventoy虚拟出来的这个CDROM和原始的ISO文件是有差异的,大小也不一样,注入了一些东西。然后这  详情 回复 发表于 2020-4-9 17:49
回复

使用道具 举报

发表于 2020-4-9 17:36:04 | 显示全部楼层
longpanda 发表于 2020-4-9 16:54
实际上是Ventoy在启动的时候是虚拟了一个CDROM,这个CDROM是BIOS层面的,只在启动过程中存在。但是起来之 ...

如果 pe 内置了 firadisk 驱动,可以通过创建一个小内存盘,里面包含正确的 Firadisk 配置文件及 ISO 路径,就可以让 firadisk 驱动自动找到 ISO 并挂载。
https://github.com/a1ive/grub/issues/24
当然 只适用于 Legacy BIOS

点评

嗯,这个我还真不知道。 其实我是真心不想做这些hook呀, Ventoy只想安心做好把ISO文件虚拟成CDROM这一步。 这套机制能应用在原版的Windows安装镜像上我就已经满意了,不强求更多的。  详情 回复 发表于 2020-4-9 17:51
回复

使用道具 举报

发表于 2020-4-9 17:43:33 来自手机 | 显示全部楼层
wintoflash 发表于 2020-4-9 17:36
如果 pe 内置了 firadisk 驱动,可以通过创建一个小内存盘,里面包含正确的 Firadisk 配置文件及 ISO 路 ...


你说的创建小内存盘,放上firadisk.sys,firadisk.ini这种是吗?这种firadisk驱动外置的方案似乎只适用于NT5.x,对于NT6似乎必须要内置到windows内核中才行的吧。
回复

使用道具 举报

 楼主| 发表于 2020-4-9 17:49:39 | 显示全部楼层
liuzhaoyzz 发表于 2020-4-9 17:15
大概明白了ventoy的hook的意思,跟grub4dos的hook还是有区别的。

grub4dos的map --mem pe.iso (0xff) ...

你这个老电脑不能启动我觉得还没到winpeshl.exe执行这一步可能就挂死了。
Ventoy的hook是在ISO文件层面的,也就是说,Ventoy虚拟出来的这个CDROM和原始的ISO文件是有差异的,大小也不一样,注入了一些东西。然后这个“新的” ISO文件结构,可能有些老机器的BIOS不认。
回复

使用道具 举报

 楼主| 发表于 2020-4-9 17:51:51 | 显示全部楼层
wintoflash 发表于 2020-4-9 17:36
如果 pe 内置了 firadisk 驱动,可以通过创建一个小内存盘,里面包含正确的 Firadisk 配置文件及 ISO 路 ...

嗯,这个我还真不知道。
其实我是真心不想做这些hook呀, Ventoy只想安心做好把ISO文件虚拟成CDROM这一步。 这套机制能应用在原版的Windows安装镜像上我就已经满意了,不强求更多的。
回复

使用道具 举报

发表于 2020-4-9 19:24:54 | 显示全部楼层
太优秀了!!!!
回复

使用道具 举报

发表于 2020-4-9 19:28:30 | 显示全部楼层
我从网站 i tell you 下载的cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso和cn_windows_7_professional_vl_build_x64_dvd_x15-71029.iso这两个win7我测试启动后只跳出winpeshl.exe命令框(我小白不懂这个),不显示安装界面,我用虚拟光驱加载系统是正常的,还有一个问题就是之前有人反映过的问题,我的闪迪2.0把n个pe文件删除之后,跳出来n个随机命名的启动项iso,启动后卡死只能重启(朗科3.0无此问题,轻松改名删除都没问题)

点评

另外还有一个问题, 你方便的话,可以用比如rufus工具刻录同一个镜像,然后同一个环境测试下是否能正常安装。排除一下硬件问题,比如会不会是Windows 7 缺少对应USB驱动之类的。  详情 回复 发表于 2020-4-10 11:44
感谢测试! 这两个镜像我会下载来测试一下。 另外,你的环境是虚拟机还是实体机? UEFI还是Legacy? 闪迪盘的那个, 你之前删除文件之后,是直接拔的吗? 有试试按照谨慎点的,安全移除U盘之类的操作之后,看看还  详情 回复 发表于 2020-4-10 09:01
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 16:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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