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