我正在向我的计算机添加一个小的 MS-DOS 分区,主要用于使用 QuickBasic 测试旧的自定义硬件。是的,我仍然使用并行端口。
我确实设法创建了可启动的 MS-DOS CD,但我不想每次想要启动 MS-DOS 时都必须将 CD 插入驱动器。
以下是我尝试过但迄今为止没有成功的方法:
- 我将映像作为驱动器安装在 Linux 中。
- 我对映像进行了磁盘复制(使用 DD),因此映像的原始内容被转储到新分区上。
- 我检查了目标文件夹的列表,发现所有文件都已正确复制(约 1.5MB)。
- 我修改了 LILO 配置以添加指向正确设备路径的新 DOS 分区,以便在重新启动时,我可以将其作为一个选项。
现在,当我尝试访问新分区(从 LILO 菜单中选择它后)时,我的系统首先扫描软盘驱动器(我相信是启动盘?),然后我收到此消息:
Non-System disk or disk error
Replace and press any key when ready
无需插入介质,我按下了一个键,然后返回到 LILO 菜单。
我能想到的唯一解决办法是(因为软盘不再可用)以某种方式获取可启动的软盘并运行 sys 命令,但这很麻烦。
有什么方法可以让我以某种方式sys.com
在仅限 Unix 的 shell 中执行此命令,或者有没有更好的方法可以让此文件系统启动而不用进行制作软盘的繁琐工作?
答案1
好吧,如果你能从软盘启动,那么我认为从 USB 闪存驱动器启动可以满足你的需求。你可以下载开源程序rufus
并创建您自己的可启动闪存驱动器,可以从任何 10 年前制造的计算机启动。
rufus
即使您没有原始的 DOS 映像,也可以使用 DOS 映像构建可启动闪存驱动器,但您需要了解一些细节,作者提供了两个映像 - 原生 DOS 和 FreeDOS。FreeDOS 并不总是适用于一些挑剔的 DOS 程序和从您运行的机器中提取的 DOS 版本rufus
。(为了避免法律冲突,从中提取 DOS 映像的程序diskcopy.dll
存在于所有 Windows 上,但不包括 Windows 10)虽然这仍然是刻录它的合法方式,但如果您需要真正的真实 CPU 模式,它并不总是有效,因为 DOS 映像的副本实际上diskcopy.dll
是 DOS 7+,它删除了实模式支持,因此 DOS 启动到受保护模式,并集成了 HIMEM。有关它的更多详细信息,您可以从原作者处找到rufus
这里我的建议是找到 MSDOS 6.22 的原始映像并使用上面描述的程序刻录它。
另一个解决方案是设置远程文件传输协议服务器并使用许多计算机上可用的 PXE 功能。这样,您可以在 TFTP 服务器上托管 MSDOS 映像并直接通过网络启动。如果您熟悉 Linux,您可以使用ISOLINUX并根据需要托管尽可能多的不同图像并根据需要启动它们(如果您需要不同的工具,这非常方便)。
有什么方法可以让我以某种方式在仅限 Unix 的 shell 中执行此 sys.com 命令,或者有没有更好的方法可以使此文件系统启动而不用进行制作软盘的繁琐工作?
Unix 的内核在保护模式下工作,从 shell 运行任何东西都不会给你实模式的自由。如果你真的不需要直接访问硬件,那么有一些软件包可以模拟 DOS:道塞姆,DOS盒你可以用你的程序来尝试。
答案2
将 CD-ROM 映像放在硬盘 DOS 分区上不起作用。CD 映像的格式不同。
硬盘分区(确保它是第一个分区)需要格式化为 FAT,并且需要 DOS 引导加载程序。原则上应该可以使用 复制引导加载程序dd
,但我无法快速在 Google 上找到合适的映像。
因此,另一种方法是启动dosemu
或dosbox
使用qemu
DOS 映像,编辑配置以使该硬盘可用于 VM,然后sys
在 VM 内运行。
当然,您也可以首先从虚拟机中进行所有测试,只要您可以使硬件可用于虚拟机(并行端口应该不是问题)。然后您无需重新启动,也不需要为其设置特殊分区。