【发布时间】:2012-02-12 02:16:56
【问题描述】:
我有一个关于 dos 和 win7 启动过程的问题。
是否有可能在win7启动之前dos启动并执行一些dos-app而不重新启动? 我的意思是像win95或win3.1这样的启动过程。
我会详细解释。
- dos 引导->
- 执行一些dos应用->
- 清理内存->
- 加载win7卷启动记录到内存7c00->
- win7开机不重启
这可能吗?
【问题讨论】:
我有一个关于 dos 和 win7 启动过程的问题。
是否有可能在win7启动之前dos启动并执行一些dos-app而不重新启动? 我的意思是像win95或win3.1这样的启动过程。
我会详细解释。
这可能吗?
【问题讨论】:
您描述的场景基本上是热重启,中断 0x19 的行为几乎就是这样,除了它总是加载主引导记录(带有分区表)。 Win3.1 或 Win95 是作为正常的可执行文件从 DOS 启动的,而不是从它们的引导记录启动的。 Win7在启动过程中没有任何DOS阶段。
但是,我认为这是可能的,但并不容易。以下是几个选项:
最简单的解决方案是,如果您能找到合适的启动管理器软件来为您完成此任务。看看GRUB 和GRUB4DOS 和this 问题。
如果足够(您要运行的 DOS 程序并不严格要求 16 位 DOS 环境),我不确定,但也许您可以调整 Win7 的 boot.ini 以在安全模式下启动命令行并从那里启动它,然后重新启动。
在最坏的情况下,您必须手动编写一个小型 DOS 程序,将 Win7 引导扇区读取到地址 0000:7C00 并执行它。为此,您现在必须准确定位 Win7 引导扇区在磁盘中的位置。请注意,在支持它的硬件上,Win7 将更喜欢 EFI 启动方法,而不是旧的基于 MBR 的启动方法。您必须检查您的 Win7 安装使用的方法。可能还有其他困难,例如如何选择活动分区或DOS分区必须驻留在磁盘的开头等等。
【讨论】: