对 MS-DOS 启动过程的误解?

对 MS-DOS 启动过程的误解?

我使用最新版本的 Rufus(更准确地说,Rufus 4.1.2045 Portable)创建可启动的 MS-DOS USB 驱动器。这很有效,启动后,命令ver显示以下内容。

Windows Millennium [Version 4.90.3000]

由于我手头有 MS-DOS 6.22 系统的旧备份,因此我尝试将系统文件(即msdos.sysio.syscommand.com)复制到 USB 驱动器。我希望能够启动 MS-DOS 6.22。

然而事实并非如此——相反,我收到了以下错误消息。

Invalid system disk
Replace the disk, and then press any key

为什么这没有像我预期的那样工作?我相信 MBR 会直接加载io.sysmsdos.sys然后继续从文件系统启动。显然事情更复杂;发生了什么?MBR 是否特定于它所属的 MS-DOS 版本?低级系统文件是否需要位于文件系统中的特定物理位置?

任何帮助均感激不尽。

编辑:请注意,文件系统是 FAT32;这可能是问题的一部分吗?

答案1

通常,DOS 样式的 MBR 仅搜索活动(可引导)分割;该分区的 VBR 负责加载 IO.SYS。这样的 MBR 有点通用,而 VBR 则特定于操作系统以及它需要理解的文件系统。如果 Rufus 将您的 USB 棒创建为未分区的 FAT32,那么 MBR 和 VBR 是同一个东西,但我相信它们通常是分开的(您有一个大分区)。

据我所知知道,标准 DOS 或 Windows VBR 非常基础,需要 IO.SYS 作为第一次进入在 FAT 根目录中;同样,MSDOS.SYS 必须是第二个条目。此外,至少根据维基百科(以及它引用的 MS KB),这些文件的物理位置必须尽可能靠近文件系统的开头。如果你手动复制这些文件,它们最有可能的位于文件系统和/或 FAT 中的错误位置。

过去,sys会使用命令将这些文件插入到正确的位置。

(许多其他引导扇区也有类似的要求;有时引导加载程序安装涉及将“下一阶段”文件的物理位置嵌入到 VBR 中的程序。)

最重要的是——是的,据我所知,MS-DOS 6.22 无法识别 FAT32,因此即使 Windows ME VBR 仍然存在于你的磁盘上无法启动 IO.SYS,DOS 内核将无法找到 shell。(Rufus 使用 Windows ME 文件可能是有原因的,毕竟,他们有支持 FAT32 的较新版本的 MS-DOS。)

直到最近,微软才开始在其自己的网站上发布 MS-DOS 6.22 的安装软盘映像,供免费下载(在网上搜索en_msdos622.exe)。

相关内容