无忧启动论坛

标题: ventoy中不配置vhd信息启动vhd的原理 [打印本页]

作者: wavelu    时间: 2023-6-20 10:46
标题: ventoy中不配置vhd信息启动vhd的原理
最近在研究ventoy启动vhdx镜像时发现,ventoy_vhdboot.img中的bcd/BCD文件并没有包含启动vhdx文件的device/osdevice配置,但却可以在界面选择任意vhdx就可以直接启动,不明白原理。有网友了解这个原理吗?
作者: wsdyleon    时间: 2023-6-20 14:43
没用过。原理应该是检测到vhd之类的文件都会自动启动吧
作者: qiufeng2010    时间: 2023-6-20 17:04
ventoy想换启动图,不知道怎么捣鼓,有知道的吗
作者: wintoflash    时间: 2023-6-20 18:18
本帖最后由 wintoflash 于 2023-6-20 18:44 编辑

Ventoy 启动 Windows VHD/VHDX 的功能还是我先给作者提的。
这类功能的想法都是源自 GRUB4DOS 的 NTBOOT。
预置一个 BCD 模板,在 启动微软的 loader 之前根据 VHD 路径,修改 BCD 上的设置。
可以用偷懒的方法,比如用 16 进制编辑器先在对应位置做标记,在启动的时候查找标记进行修改。
比如:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417518&extra=
也可以高级一点,写个简单的注册表解析器 (BCD 实际上就是注册表),然后解析修改。
注册表解析:https://github.com/grub4dos/ntloader/blob/main/reg.c
BCD修改替换:https://github.com/grub4dos/ntloader/blob/main/bcd.c

至于 osdevice 和 device 两个注册表项,微软并没有公开它们的结构定义。因此 bcdedit 生成模板 bcd 时,要预留足够长的空间:
https://github.com/grub4dos/ntloader/blob/main/utils/bcd.bat

作者: qinxz1414    时间: 2023-6-20 19:50
6啊,原来vhdx也可以,我还以为只支持vhd
作者: wavelu    时间: 2023-6-20 20:08
wintoflash 发表于 2023-6-20 18:18
Ventoy 启动 Windows VHD/VHDX 的功能还是我先给作者提的。
这类功能的想法都是源自 GRUB4DOS 的 NTBOOT。 ...

按照注册表修改的方法,我之前就考虑了,也做了些测试代码验证。后来看了ventoy,发现只是修改了winload.exe为winload.efi,感觉更简单,但研究代码也没看到修改vhd配置的地方。整个代码看得也挺晕的,现在也没看明白过程。
作者: 布特300    时间: 2023-7-14 21:01
qinxz1414 发表于 2023-6-20 19:50
6啊,原来vhdx也可以,我还以为只支持vhd

vhdx和vhd有什么区别?
作者: 布特300    时间: 2023-7-14 21:06
wintoflash 发表于 2023-6-20 18:18
Ventoy 启动 Windows VHD/VHDX 的功能还是我先给作者提的。
这类功能的想法都是源自 GRUB4DOS 的 NTBOOT。 ...

牛人啊,vhd是否支持写入
作者: 布特300    时间: 2023-7-18 23:27
win7是不是不支持vhdx?
作者: wavelu    时间: 2023-7-20 00:31
布特300 发表于 2023-7-18 23:27
win7是不是不支持vhdx?

是的,只能vhd了。
作者: 布特300    时间: 2023-7-20 01:25
wavelu 发表于 2023-7-20 00:31
是的,只能vhd了。

ventoy支持老机器vhd启动系统么?




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