无忧启动论坛

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

[讨论] 关于xpvhd的加载问题

[复制链接]
跳转到指定楼层
1#
发表于 5 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想研究下关于在win10下面加载xp的vhd,但是有几个问题:
1.点击自动安装vhd的批处理后,将boot.ini和grldr,vboot目录都自动复制到了D盘,但是重启后,记得有时能自动出现xp的启动菜单,有时不能,不知机关在哪里?
2.目前研究的是vboot,似乎还有fradisk+winblock的方案,但是没有找到后者的手动的教程,不知哪种更稳?目前单独划分出一个10G的物理分区,能成功启动xp,但是搞成vhd再启动,死活出现A5蓝屏问题,不知道如何解决。
欢迎讨论。
2#
发表于 5 天前 | 只看该作者
本帖最后由 liangzr1976 于 2025-11-12 15:36 编辑

论坛里面肯定有,但不建议再去研究。印象是 必须在硬盘上是连续存放,当做某种 image格式 映射来完成。对应 应该 是 winvblock什么的,在xp的驱动程序。
之前的一些信息,应该是细细哥之类大佬的,
========================
(USBWinXP+USBWin2003)VHD系统安装驱动注意事项:
1、如果不动用“EWF保存”操作,可随意使用系统任何操作,前提是:EWF值不能超过800MB。
2、因为“显卡驱动安装不能及时生效”,所以当不需要显卡驱动时,安装驱动时应取消显卡前的“勾”(不动用“EWF保存”操作)。
3、当需要显卡驱动时,安装驱动时只在显卡前“打上勾”,其它的全部“取消勾”,然后动用“EWF保存”操作后重启电脑。重启电脑后按照步骤2操作(不动用“EWF保存”操作)。
4、如果要永久再某台电脑上使用该系统,应对照“设备管理器”,仅安装没驱动的设备(包括显卡),然后动用“EWF保存”操作后重启电脑。。
5、注意:系统不能安装USB2.0驱动,但是可以安装USB3.0驱动。(如果系统是在本地硬盘上使用则没有此限制!)
8、如果系统是在本地硬盘上使用,可关闭EWF,这样就没有EWF800MB的限制,与正常系统完全一样!
                            细细哥~
                        2017年10月16日

====================================

[分享] [原创]移动(U盘)VHD系统(USBWinXP+USBWin2003_R2)      细细哥~
发表于 2015-2-13 12:29:01 | 只看该作者 |只看大图 回帖奖励   
助力无忧,捐助本站,加入VIP会员,赠积分,送勋章,获无忧最高级会员权限 !
本帖最后由 细细哥~ 于 2015-7-27 23:02 编辑
链接: http://pan.baidu.com/s/1kTCBDcF
密码: 2f9f

一、使用方法
1、U盘有GRUB4DOS引导(这个应该都会吧),加入下面菜单内容:
------------
01.title 【XX】 启动 USB-Windows XP 移动系统
02.find --set-root /USBWinXP.vhd
03.map /USBWinXP.vhd (hd0)
04.map (hd0) (hd1)
05.map --hook
06.chainloader (hd0)+1
07.
08.title 【YY】 启动 USB-Windows 2003 移动系统
09.find --set-root /USBWin2003.vhd
10.map /USBWin2003.vhd (hd0)
11.map (hd0) (hd1)
12.map --hook
13.chainloader (hd0)+1

-----------
不完整资料,想不起来怎么用了。仅用学习研究用,请勿非法使用。


通过网盘分享的文件:USB移动XP系统,可从VHD启动
WindowsXP-sp3-usboot-winvblock-vhd-clean.gho

链接: https://pan.baidu.com/s/1Ds8PurUouEXM-GV3L9EesQ?pwd=1234 提取码: 1234

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=362494
[分享] [原创]移动(U盘)VHD系统(USBWinXP+USBWin2003_R2)    BY 细细哥~ 于 2015-7-27 23:02 编辑


http://bbs.wuyou.net/forum.php?mod=viewthread&tid=379605
[分享] 修改了一个XP_VHD,2G U盘都可以使用  by 2011mtw35

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=380990
[分享] Grub4Dos - 直接启动Win10,...,Win7, 第1个XP, XP.VHD, ISO, WIM, PE, WIN.VHD  by tools241

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=423569
[发布] vhd-xp简单安装(WinVBlock)  by k71g

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=422355    (这种确实没玩过)
[原创] 【XP到Win10系统全兼容】通用ISO WIM VHD挂载驱动分享   by 朱玛12345678


=====================
好久没留意了,相信楼主也搜过论坛了,这里我只是回忆一下,经验不多





点评

01.title 【XX】 启动 USB-Windows XP 移动系统 02.find --set-root /USBWinXP.vhd 03.map /USBWinXP.vhd (hd0) 04.map (hd0) (hd1) 05.map --hook 06.chainloader (hd0)+1 07. 08.title 【YY】 启动 USB-Win  详情 回复 发表于 5 天前
请教下,vhd放在硬盘启动和放在U盘启动性质不一样么?  详情 回复 发表于 5 天前
感谢分享!  发表于 5 天前
回复

使用道具 举报

3#
发表于 5 天前 | 只看该作者

    你运行的“自动安装 VHD 的批处理”是否正确添加了 BCD 启动项?
    Windows 10 使用的是 UEFI/GPT 或 BIOS/MBR 引导方式,而 XP 只支持 BIOS/MBR。
    如果你的系统是 UEFI 模式启动的 Windows 10,而 XP VHD 是按 MBR 模式引导,就会无法识别或偶尔识别不到。

XP 在 VHD 下启动时出现 A5 蓝屏(0x000000A5),通常是因为:
    HAL(硬件抽象层)不匹配,或者 硬件检测失败。

点评

肯定是MBR啦,而且我是在一台机器测试成功后,才将同样的操作用于另一台电脑的。就是另一台电脑提示A5蓝屏,但是直接在物理分区引导能正常进入系统。  详情 回复 发表于 5 天前
回复

使用道具 举报

4#
发表于 5 天前 | 只看该作者
个人理解,

确定 主板是按 传统BIOS/CMS启动,还是 uefi启动。

如果是 uefi 应该 没有机会成功。但楼主已经搞定 真实硬盘启动,应该就是 CMS模式。

如果 是 CMS应该 就是转 grub4dos,并选对版本 的问题,没有其它问题,其它问题 应该 都在 真实硬盘中解决了。

另外本论坛曾经有个大文件包:
这里转发一下,但比较做的作品因为个人百度网盘早已堆满,而删除了。

通过网盘分享的文件:USB版 (仅分享30天)
链接: https://pan.baidu.com/s/1vq8OhJ8ngPzbWU3zcMM2Bg?pwd=1234 提取码: 1234

评分

参与人数 1无忧币 +5 收起 理由
zhanglei1371 + 5 很给力!

查看全部评分

回复

使用道具 举报

5#
 楼主| 发表于 5 天前 | 只看该作者
a66 发表于 2025-11-12 14:48
你运行的“自动安装 VHD 的批处理”是否正确添加了 BCD 启动项?
    Windows 10 使用的是 UEFI/GPT ...

肯定是MBR啦,而且我是在一台机器测试成功后,才将同样的操作用于另一台电脑的。就是另一台电脑提示A5蓝屏,但是直接在物理分区引导能正常进入系统。
回复

使用道具 举报

6#
发表于 5 天前 来自手机 | 只看该作者
后期基本用svbus了
回复

使用道具 举报

7#
 楼主| 发表于 5 天前 | 只看该作者
liangzr1976 发表于 2025-11-12 13:52
论坛里面肯定有,但不建议再去研究。印象是 必须在硬盘上是连续存放,当做某种 image格式 映射来完成。对应 ...

请教下,vhd放在硬盘启动和放在U盘启动性质不一样么?
回复

使用道具 举报

8#
发表于 5 天前 | 只看该作者
个人认为,主要看主板 及 引导选项 是否是 USB-HDD,否则没有很大不一样。
一般情况下,
1、对于 win10以后,MS认为有明显的差异,因为 MS以发布了 WinToGO,代表MS以想严格区分了。

2、由于启动引导的关系,MS不管是 xp 还是 win7、win10,都和主板优先兼容 硬盘的线路及驱动。
     所以一般情况下,从硬盘引导启动,不容易出现问题。

3、对于USB-HDD之类存储器,特别高速一点的读写,MS-XP以上的系统就不太友好。
    MS系统对于非存储的USB设备,特别是鼠标、键盘,具有较好的 低驱动兼容(BIOS/uefi级)。
   但不管是否南北桥设计,其高速驱动总线及芯片 对于 USB-HDD储存的高速 兼容性就不太友好/优先。

   故 从USB-HDD引导,容易导致高速驱动蓝屏。但低速状态反而没有问题,比如它能正常在非MS-win6.x状态下 以 特别的驱动 先将 win-PE 从 USB-HDD读进去,但读进去后,反而容易在 ms-win6.x状态下驱动不兼容。可能是 实模式 与 保护模式 之类的差别。

4、xp 本身没对 USB-HDD 启动做任何优化,其PE本身是按 光驱引导做的优化。系统本身就更加没有考虑 USB-HDD 启动的的兼容。应该来说USB-XP(非VHD)好像都是特别改造过的xp,USB-XP-VHD完全是靠 硬盘镜像及特殊第3方驱动来实现的。

    win7 有进一步的 USB-HDD兼容,没有正式的全兼容 USB-HDD启动,但比 xp好很多。特别是 USB-win7-VHD,无需通过 文件镜像,无需特殊 vhd驱动,主要是调整 注册表参数就行,印象中,好像还有3个dll文件需要补充。 这个是起步阶段,所以对   license/版权识别限制  不大,一个USB-VHD-win7换不同主板、电脑主机,经常都显示已激活,反而在真实本地硬盘上 往往需要激活。

    win8起是完全兼容 USB-VHD启动引导,但MS自己开始发布 WinToGo,开始对 win8/win10在 USB-HDD启动做了更严格的 license/版权识别限制。USB-VHD-win6.x   非经过ToGo类软件处理,换主机启动,必然遇到 需激活的问题。
回复

使用道具 举报

9#
 楼主| 发表于 5 天前 | 只看该作者
liangzr1976 发表于 2025-11-12 13:52
论坛里面肯定有,但不建议再去研究。印象是 必须在硬盘上是连续存放,当做某种 image格式 映射来完成。对应 ...

01.title 【XX】 启动 USB-Windows XP 移动系统
02.find --set-root /USBWinXP.vhd
03.map /USBWinXP.vhd (hd0)
04.map (hd0) (hd1)
05.map --hook
06.chainloader (hd0)+1
07.
08.title 【YY】 启动 USB-Windows 2003 移动系统
09.find --set-root /USBWin2003.vhd
10.map /USBWin2003.vhd (hd0)
11.map (hd0) (hd1)
12.map --hook
13.chainloader (hd0)+1
这个测试失败。提示片段过多。
用ventoy也失败,提示00000f的错误。

点评

大哥 你 到底做了 文件连续性 整理 没有?  详情 回复 发表于 5 天前
回复

使用道具 举报

10#
发表于 5 天前 | 只看该作者
本帖最后由 liangzr1976 于 2025-11-12 21:40 编辑
zhanglei1371 发表于 2025-11-12 21:31
01.title 【XX】 启动 USB-Windows XP 移动系统
02.find --set-root /USBWinXP.vhd
03.map /USBWinXP.v ...

大哥
1、 你 到底做了 文件连续性 整理 没有?
2、不能用 动态VHD,只能用固定大小 VHD

点评

哦,我vhd是动态的,不是固定大小的,估计问题出在这里了  详情 回复 发表于 5 天前
回复

使用道具 举报

11#
 楼主| 发表于 5 天前 | 只看该作者
liangzr1976 发表于 2025-11-12 21:38
大哥
1、 你 到底做了 文件连续性 整理 没有?
2、不能用 动态VHD,只能用固定大小 VHD

哦,我vhd是动态的,不是固定大小的,估计问题出在这里了
回复

使用道具 举报

12#
发表于 5 天前 | 只看该作者
1、由于 XP 原生不支持 VHD,所以 fradisk+winVblock 并不是直接 支持 VHD,而是 当 VHD 是一个文件镜像 进行驱动。
2、由于 xp 大多是 32位系统,不支持 4GB以上内存,所以 其驱动方式 不是 直接将 VHD完全读进内存 RAM。 因为那样太耗内存。且那个时代,内存一般不太大,基本是 128~256MB。
3、这样 驱动方式,是需要 将 硬盘文件 做连续性 整理,对应 内存 4GB内一段连续的 地址,但不占用 真实的 内存 ,这样不会将 128~256MB的内存耗尽。
4、 为了 和内存连续地址 一 一对应,也要求在 硬盘地址上 完全 连续存放。
5、要维持这样 的 一 一 对应,那么 VHD硬盘文件 也 必然是固定大小的呀。 假设 VHD硬盘名义容量大小是 1GB、动态占硬盘实际500MB,在内存地址1GB 如何对应 真实硬盘的 500MB内容呢?

评分

参与人数 1无忧币 +5 收起 理由
zhanglei1371 + 5 很给力!

查看全部评分

回复

使用道具 举报

13#
发表于 5 天前 | 只看该作者
本帖最后由 liangzr1976 于 2025-11-12 22:26 编辑

如果没理解错,VHD 是用 虚拟内存地址映射的话,VHD大小肯定不能太大,因为内存地址 最大 才 4GB。

如果理解错误,那VHD文件 可以 大于 3.2GB 大于 4GB。
初次尝试,要按 VHD 固定大小 2GB 来尝试。
参考 2# 标题 修改了一个XP_VHD,2G U盘都可以使用  by 2011mtw35
========================================
腾讯元宝回应以下问题的结果是:
winVblock/fradisk并没有将整个VHD文件映射到内存地址空间。它们是通过重定向I/O请求的方式来工作,因此VHD的大小不受32位系统4GB内存寻址限制的影响。它的限制主要来自于我们上次讨论的MBR分区表、文件系统以及驱动本身的兼容性。


提的问题是:
用 fradisk+winVblock   驱动 VHD文件内的 XP,VHD为固定大小的VHD,不能是动态的,那么它受 32位操作系统的内存地址4GB的限制,限制了 VHD文件的容量大小吗?
你好,XP原生不支持在 VHD内使用,winVblock/ fradisk  也是 第三方驱动,其驱动方式 好像是 用 RAM地址映射的方式  将 VHD在真实硬盘的 资料 映射到 虚拟扩展的内存地址上 吧?


---------------------------------
补充问AI:
补充确认一下,这种驱动,要求 VHD是固定大小模式,这个没有理解错吧?


您这个问题问得非常关键,您的理解完全正确,没有错。
使用 winVblock或 fradisk这类驱动从 VHD 内部启动 Windows XP时,强烈要求甚至必须使用固定大小的 VHD。
这并非 XP 操作系统本身的限制,而是由 引导过程和 驱动的工作方式共同决定的。



您这个问题问得非常关键,您的理解完全正确,没有错。

使用 winVblock或 fradisk这类驱动从 VHD 内部启动 Windows XP时,强烈要求甚至必须使用固定大小的 VHD。

这并非 XP 操作系统本身的限制,而是由 引导过程和 驱动的工作方式共同决定的。
----
详细解释:为什么必须是固定大小的 VHD?
主要原因如下:

1. 引导阶段的驱动能力限制
这是最核心的原因。启动过程分为几个阶段:

阶段一:BIOS/UEFI 和引导管理器(如 GRUB4DOS)
它们负责读取 VHD 文件的前几个扇区(包含引导代码)。
对于固定大小 VHD,其文件数据在磁盘上是连续存储的。引导程序可以像访问普通磁盘一样,通过简单的“扇区号 × 扇区大小”计算出文件偏移量,直接读取所需数据。
对于动态扩展 VHD,文件数据是稀疏存储的。文件内部有一个复杂的“扇区位图”结构,用于记录哪些数据块是已分配的。引导程序(如 GRUB4DOS 的 map命令)通常没有内置完整的动态 VHD 解析器。它无法准确地将虚拟磁盘的“第 N 个扇区”映射到 VHD 文件内部的正确位置。

2. winVblock驱动在启动初期的角色
在 Windows 启动的非常早期,在它的文件系统驱动加载之前,winVblock就需要开始工作。

此时,它扮演的是一个最基础的“磁盘控制器”驱动。它向 Windows 内核报告一个虚拟的硬盘。
为了高效和可靠,winVblock在此时也需要一种简单直接的方式来转换磁盘请求:虚拟扇区号 -> VHD 文件内的偏移量。

固定大小 VHD的转换公式极其简单:偏移量 = 数据起始偏移(如 512字节) + 虚拟扇区号 * 512。

动态扩展 VHD的转换则需要查询复杂的元数据块和扇区位图,这个计算在系统启动的敏感阶段显得过于沉重且容易出错。

3. 稳定性和兼容性
winVblock和 fradisk是社区开发的驱动,其主要目标是实现“从 VHD 启动 XP”这个核心功能。
支持动态磁盘会极大地增加驱动的复杂度和代码量,同时引入更多的不稳定性。因此,开发者很可能会选择只支持结构简单的固定大小 VHD,以确保核心场景的稳定。

在动态 VHD 运行时,如果它需要动态扩展(因为写入了新数据),可能会在底层驱动层面引发不可预知的问题,甚至导致系统崩溃。

简单比喻
固定大小 VHD就像一栋已经建好的、每层楼格局都一模一样的大楼。引导程序和驱动只需要知道楼高和每层面积,就能轻松找到任何一个房间(扇区)。

动态扩展 VHD则像一栋只有框架的大楼,房间是随需加盖的,并且有一个复杂的图纸(位图)记录哪些房间已盖好。要找某个房间,你必须先查阅这张图纸,过程复杂且缓慢。

结论
您的记忆和理解是准确的。在 Windows XP + winVblock/fradisk这个特定技术组合中,使用固定大小 VHD是一项硬性要求。这是由引导程序和驱动在系统启动初期的能力和设计目标所决定的,目的是为了确保最大的兼容性和稳定性。

如果您尝试使用动态扩展 VHD,极有可能在 GRUB4DOS 的 map步骤或 Windows 启动的初始阶段(黑屏状态)就失败。








回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-11-17 07:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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