虚拟化 MS-DOS 桌面并逐字复制 HDD

虚拟化 MS-DOS 桌面并逐字复制 HDD

在工作中,我们有一位用户拥有一些专门的遗留软件,其开发人员很久以前就已经“破产”了。

当尝试将程序复制到其他系统(尝试检查它是否在兼容模式下工作)时,我们会收到程序发出的严厉警告,告诉我们如果使用碎片整理或压缩工具,该软件可能会丢失其“序列号”。我理解该软件正在尝试对硬盘内容进行一些检查(可能是程序存储在哪些扇区中),以检查它是否是合法副本。

用户告诉我们,她很喜欢这个程序,但现代的替代品并不有趣(更不用说没有预算了)。

因此,我认为唯一可行的解​​决方案是虚拟化,但我不知道它如何实现低级磁盘访问。虚拟化过程是否会创建磁盘的逐字副本?我必须使用特定的工具/设置吗?

到目前为止,我们的虚拟 PC 已使用 VMWare(ESXi 和 Player)设置,但如果 Virtuabox 运行得更好,我们也愿意使用它。

*考虑到该软件的年代久远,也许整个开发团队现在都已经“破产了”,真的。

答案1

首先,我会启动一张 Linux CD,然后使用“dd”将整个硬盘复制到其他地方,最好是复制到另一个更大的驱动器上的文件(例如,“dd if=/dev/hda of=/path/to/mounted/usb/drive/filename”)。这样,如果发生愚蠢的事情,你还有补救措施。

如果是 MS-DOS,你有没有考虑过像DOS盒?它主要用于在现代硬件上玩旧的 DOS 游戏。我无法从文档中看出这一点,但您可能能够在 DOSBox 中安装从 dd 创建的磁盘映像文件。如果您不能直接执行此操作,应该有一种方法可以转换映像文件。

啊,看起来有工具可以将 dd 输出转换为虚拟盒,所以如果 DOSBox 不起作用,还有那条路。我相信 VMWare 会有类似的工具(搜索词可能是“将原始图像隐藏到”(无论 VMWare 虚拟硬盘格式叫什么)。

更新:

这是 DOSbox 的工具:http://www.dosbox.com/wiki/IMGMOUNT 但是我还没有尝试过,而且指定磁盘几何的整个过程让我认为它可能很烦人。

答案2

我同意 CJC 创建磁盘映像的想法,但无论如何你都可能会遇到麻烦。

A) 如果这是旧驱动器,它将具有特定的磁盘几何结构(柱面、扇区、磁头),我想知道磁盘映像是否可以转录到新硬盘上。如果程序真的那么旧,并且正在搜索特定扇区(顺便说一句,糟糕的 DRM...),当您将映像放回新磁盘时,驱动器不一定能正常工作。

也就是说,如果您的驱动器出现故障并且您不使用相同型号的驱动器或非常相似的驱动器来替换它,那么您就会陷入困境。

B) 如果您模拟并创建精确副本,则所使用的操作系统最好是通用的;您的网卡、驱动器控制器和其他驱动程序将用于模拟环境,而不是物理 PC。如果我制作 HP 计算机的映像并将该映像放在戴尔中,它将无法工作;新系统将寻找与 HP 匹配的驱动程序。除非操作系统灵活……由于系统的启动时间探测器,当今的 Linux 发行版很少需要额外的驱动程序,而 Windows改变一些东西,但如果它是一个低级驱动程序,它变得混乱,你可能会遇到一些问题。

如果幸运的话,操作系统会启动到可以为模拟环境安装“正确”驱动程序的状态。如果运气不好,系统就会崩溃或出现蓝屏。

如果您仍想尝试,请先创建备份,以便在磁盘出现问题时可以恢复磁盘,然后使用 Linux 磁盘将驱动器 dd 到原始磁盘映像,然后使用 Virtualbox 的实用程序将原始磁盘转换为可以读取的 vhd 映像并将其附加到新 VM。这将告诉您它是否可以与 Virtualbox 一起使用;这是我尝试的第一步。确保您安装了第二个磁盘,可以容纳您要映像的整个磁盘。

根据您的工作职责和时间价值,您可能最终不得不强迫用户使用受支持且在过去十年内发布的程序。否则,您将花费数天时间尝试让这个宠物项目正常运行,而真正的解决方案可能是“不要这样做”。

相关内容