近日,多位使用 Oracle VirtualBox 7 运行 Windows 98 Second Edition(简称 Windows 98 SE)虚拟机的用户报告了一个棘手的兼容性问题:虚拟机无法识别附加的次要虚拟硬盘,即使已在虚拟机设置中添加了第二块硬盘,系统内置的 FDISK 工具也仅能显示原有的 C 盘,导致用户无法完成分区、扩展存储或安装多系统等操作。这一问题在 Retrocomputing 论坛、VirtualBox 官方社区及中文技术讨论区引发了广泛关注。
问题概述:经典系统遇上现代虚拟化
Windows 98 SE 作为微软上世纪 90 年代末的经典操作系统,至今仍被部分怀旧玩家、复古软件开发者及嵌入式系统爱好者用于运行老旧的游戏、驱动程序或行业专用软件。VirtualBox 7 是 Oracle 于 2022 年底推出的重大版本更新,引入了全新的图形界面、改进的 3D 支持以及对现代硬件的更好兼容性。然而,正是这一“向前看”的更新,给运行 Windows 98 等老旧操作系统的用户带来了意料之外的麻烦。
据用户反馈,在 VirtualBox 7 中创建 Windows 98 SE 虚拟机时,系统能够正常从主硬盘(通常是模拟的 IDE 接口)引导。但当用户在虚拟机设置中添加第二块虚拟硬盘(无论选择 VDI、VMDK 还是 VHD 格式,也不论固定大小还是动态分配),进入 Windows 98 后使用 FDISK 命令查看磁盘分区信息时,却始终只能看到第一块磁盘(C 盘)。在“设备管理器”中,也仅能识别到一个硬盘控制器下的单一设备。
技术分析:IDE 控制器配置成关键疑点
为探明原因,技术社区展开了深入排查。Windows 98 SE 本身对磁盘的识别依赖于 BIOS 和驱动程序对 IDE(Integrated Drive Electronics)通道的支持。在 VirtualBox 7 之前,多数用户通过为虚拟机配置“PIIX4”或“ICH6”芯片组,并启用 IDE 控制器的主从通道来挂载最多四个 IDE 设备(两个主设备、两个从设备)。默认的虚拟机设置通常将主硬盘设为 IDE 主通道的主设备,而次要硬盘则被自动分配为同一通道的从设备或另一个通道的主设备。
然而,在 VirtualBox 7 中,Oracle 修改了默认的存储控制逻辑。虚拟机创建向导默认采用“Intel ICH9”或更新型的芯片组,这些芯片组在 UEFI 兼容模式下对传统 IDE 中断(IRQ)和 I/O 端口的模拟方式发生了改变。部分测试显示,当次要硬盘被分配为“IDE 辅助(Secondary)”通道的“从(Slave)”设备时,Windows 98 SE 的标准 IDE 驱动程序可能因无法正确识别设备签名而跳过该磁盘。更关键的是,VirtualBox 7 在部分版本中默认启用了“启用高级配置和电源接口(ACPI)”,而 Windows 98 SE 对 ACPI 的支持存在已知的兼容性问题,这可能导致 BIOS 在启动阶段未能正常枚举所有连接硬盘。
社区反馈与临时解决方案
面对这一困境,全球复古计算爱好者已提出若干变通方法,但尚未有官方补丁发布。其中被验证有效的方案包括:
- 改用旧版 VirtualBox:降级至 VirtualBox 6.1 或更早版本可立竿见影地解决问题,因为这些版本的 IDE 模拟逻辑与 Windows 98 更契合。
- 手动调整硬盘连接方式:在虚拟机关机状态下,进入设置 -> 存储,删除默认的 SATA 控制器(如果存在),然后仅保留一个“IDE 控制器”,并将第二块硬盘明确添加到该控制器的“辅助 IDE 主设备”位置,而非“从设备”。部分用户报告将硬盘类型固定为“IDE 主设备”后,FDISK 可以识别。
- 更换芯片组模拟:将虚拟机设置中的“主板”芯片组从默认的 ICH9 改为 ICH6 或 PIIX4,这会使 VirtualBox 7 模拟出更符合 Windows 98 硬件期待的 IDE 通道。不过,这可能会影响其他新硬件的兼容性。
- 使用第三方分区工具:部分高级用户尝试先用 MS-DOS 启动盘引导,运行第三方分区工具(如 GDISK 或 DiskGenius 的 DOS 版本)来手动写入分区表,再重新进入 Windows 98。这种方法可能绕过 FDISK 的识别限制,但操作复杂且存在数据风险。
官方响应与前景展望
截至目前,Oracle 官方尚未就此问题发布专门声明,但在 VirtualBox 的 Bugtracker 上已有用户提交了编号为 #215XX 的议题。开发团队初步回复称,该问题可能与虚拟化核心对传统设备“热插拔”支持的变化有关,并建议用户在尝试使用第二硬盘时,先在虚拟机设置中“强制”为硬盘分配固定的 IDE 主从属性,而不是依赖自动检测。
值得注意的是,这一兼容性问题不仅影响 Windows 98 SE,也对 Windows ME、Windows 2000 早期版本以及部分基于 DOS 的系统造成了类似困扰。随着虚拟化软件不断迭代,如何平衡对现代硬件的加速能力与对经典操作系统的向下兼容,始终是 VirtualBox 团队面临的挑战。有评论指出,随着复古计算兴趣的复苏,Oracle 或许应考虑在“虚拟机兼容性”选项中保留一个“Windows 98 模式”的预设,以自动适配 IDE 控制器、IRQ 及 ACPI 设置。
建议与提醒
对于正在遭遇此问题的用户,最稳妥的临时方案是继续使用 VirtualBox 6.1 来运行需要多硬盘的 Windows 98 SE 虚拟机,直至官方在后续版本中修复。若必须使用 VirtualBox 7,建议严格按照上述“手动调整硬盘连接方式”的步骤操作,并在添加硬盘后重启虚拟机两次,部分用户反映第二次重启后 FDISK 能识别出新磁盘。
无论如何,这一问题的存在再次提醒我们:技术创新不可忽视历史遗产的兼容性。毕竟,在数字世界,那些看似过时的系统同样承载着无数人的记忆与价值。