中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-22 18:20
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » Avldrng.exe: 从纯 DOS 方式转入到 ntldr 的启动 查看 8,762 回复 28
楼 主 Avldrng.exe: 从纯 DOS 方式转入到 ntldr 的启动 发表于 2005-09-09 23:02 ·  中国 北京 鹏博士BGP
中级用户
★★
CPU
积分 362
发帖 96
注册 2004-07-08 00:00
22年会员
UID 28010
性别 男
来自 北京
状态 离线

======================

借助于 Grldr 以及 VFloppy 的威力,我们可以在 nt 系统上加入对 DOS 环境

的美妙支持; 而借助于 AvldrNG 的魔力,我们可以将这个过程颠倒过来: 我们

可以让 DOS 环境跳转到 NT 系统的引导环境中去。 ;)


=============

诸位可还记得 Avldr for Grub 的 3 合一尝试? 是的,这个 AvldrNG 也是

在 Avldr for Grub 的尝试版本的基础上完善、改进二来的。由于, WinVI

的推出,我觉得这个工具应该是有用的。比如说:


◎ 我们没有安装 ntldr 的引导环境,但确需要从硬盘上载入一份 WinPE ,

比如这个 WinPE:

http://sysoft.zdwx.com/forum/viewthread.php?tid=169&fpage=1,那么

我们只需要在 C:\ 放置 setupldr.bin, bootdetect.com, winnt.sif 等文件,然后

在纯 dos 下运行

c:\>Avldrng /loader=setupldr.bin 就可以载入这个 PE 了。


◎ 安装有 ntldr 的引导环境,我们可以在 Windows 下运行 Avldrng.exe, 将

c:\setupldr.bin 拖放到 Avldrng.exe 的文件选择对话框中,然后选择“安装”,然

后打开 C:\boot.ini 粘贴一下,就能增加一行新的引导条目。重启计算机,选择

新增的条目,即可载入这个 WinPE 了。 当然,如果你知道 Windows Vista

那么,它有一种新的 PE 技术,叫做 Wim 方式。 对于这个 WimPE, 您可以参见

http://sysoft.zdwx.com/forum/viewthread.php?tid=158&fpage=1

在获取 bootmgr 后,我们就能使用 AvldrNG 去载入这个 WimPE 了。WinPE 并不遥远!


◎ 我可以用 AvldrNG 从软盘上载入 NTLDR/PELDR/Bootmgr/Grldr 嘛?

可以的。 但是,一定记住, AvldrNG 扫描指定引导器文件的顺序是

hd1 -> hd2 -> fd1 -> fd2

需要说明的是,如果第一硬盘不存在,它才会去寻找 hd2; 如果前面硬盘分区上没有

找到指定的载入器文件,它会尝试 A 盘的。如果 A 盘复位失败,才会去尝试 B 盘的。

当然,如果都没有的话,它会将你推到一个引导菜单中去。 ... ... ;-)


最新版,请从 http://sysoft.zdwx.com/forum/viewthread.php?tid=167&pid=1104&page=1 查询。

[ Last edited by Gandalf on 2005-9-9 at 23:12 ]
[已使用 Gemini 解答]
Gemini 解答

技术原理与可行性分析

Avldrng.exe 的核心功能是在 DOS 实模式下模拟 MBR 引导后的控制权转移流程,将系统从 DOS 环境切换到 NT 系列系统(或 WinPE)的引导加载器(如 ntldrsetupldr.binbootmgr)。其技术前提是:

  1. DOS 已完成硬件初始化(如磁盘控制器、内存分页机制的基础准备);
  2. 目标引导加载器文件(如 ntldr)所在介质(软盘、硬盘分区)可被 DOS 访问(例如,若目标文件在 NTFS 分区,需先加载 DOS 下的 NTFS 驱动);
  3. 引导加载器自身支持从“非 MBR 直接引导”的环境启动(ntldrsetupldr.bin 等设计时已考虑此类场景,因此兼容性较好)。

关键限制与当年的常见误解

1. 对“从 DOS 直接返回 WinXP”的澄清

Post #5 中“在 WinXP 安装前用 format c:/s 生成的 DOS 环境中直接启动 WinXP”的需求无法实现,原因是:

  • 该 DOS 环境是 WinXP 安装程序遗留的实模式维护环境(依赖 io.sys/command.com),而 WinXP 是保护模式操作系统,需通过 ntldr 完成实模式到保护模式的切换、硬件重新初始化等步骤;
  • DOS 实模式下无法直接加载保护模式内核,必须通过 ntldr 等引导器的完整流程。Post #6 中 Gandalf 的回复正确指出了这一点,当年此类误解常见是因为用户混淆了“DOS 维护环境”与“独立 DOS 系统”的本质差异。

2. 引导器文件的扫描顺序

Avldrng 对引导器文件的扫描顺序为 hd1 -> hd2 -> fd1 -> fd2(即第一硬盘、第二硬盘、A 盘、B 盘),这一设计是为了优先尝试硬盘上的引导文件,但需注意:

  • DOS 下的磁盘编号与 BIOS 可能存在差异(例如,部分克隆硬盘的 DOS 驱动会改变磁盘顺序),可能导致文件查找失败;
  • 若软盘(fd1)存在但复位失败(如软盘损坏),才会尝试 fd2(B 盘),这是当年软盘介质可靠性较低时的妥协设计。

3. 对 Vista/WinPE 的支持

Post #1 提到的 bootmgr(Vista 及以后的引导器)在当年属于较新的技术,Avldrng 对其支持依赖于 bootmgr 自身的兼容性——由于 bootmgr 设计时延续了 ntldr 的引导逻辑,因此实际测试中多数情况下可正常加载,但需确保 bootmgr 所需的辅助文件(如 BCD 配置文件)存在且路径正确。

历史意义与后续发展

Avldrng 在 2005 年的价值在于打通了 DOS 与 NT 系统的引导通路,解决了当年“用 DOS 启动盘修复 NT 系统引导”“从 DOS 启动 WinPE 进行系统维护”等实际需求。后续 Grub4dos(Post #15 提及)也实现了类似功能,且支持更多引导器类型,逐渐成为更主流的解决方案,但 Avldrng 作为早期尝试,为这类工具的设计提供了参考。

总结

Avldrng 是当年 DOS 与 NT 系统引导互操作的创新工具,其核心原理是模拟 MBR 引导流程实现控制权转移,可行性依赖于 DOS 对目标介质的访问能力和引导器的兼容性。需注意其扫描顺序、分区格式限制等细节,避免因环境差异导致失败。

附件
snap.png
AviBeta3.zip (80.05 KiB, 下载附件所需积分 1 点, 下载次数: 233)
2 发表于 2005-09-10 07:02 ·  中国 安徽 宿州 电信
银牌会员
★★★
积分 1,339
发帖 595
注册 2004-05-26 00:00
22年会员
UID 25306
性别 男
来自 安徽 宿州
状态 离线
这种方法能从Dos能进入WinXP吗?请版主分析一下它的可行性。
3 发表于 2005-09-10 11:59 ·  中国 北京 海淀区 联通
中级用户
★★
CPU
积分 362
发帖 96
注册 2004-07-08 00:00
22年会员
UID 28010
性别 男
来自 北京
状态 离线
这个完全可能的。两种方式:

1. 将 ntldr, ntdetect.com, boot.ini, bootfont.bin(可选)放到你的 dos 启动软盘

上;当然,我们这里将 ntldr 改名为 ntldr2, 然后用这张盘启动系统,在命令行下运行:

a:\>avldrng /loader=ntldr2 就可以载入你软盘上的那份 ntldr 。 而如果你的 boot.ini

配置得当,那么,你就可以启动你硬盘上的 WinXP 系统。 ;)

2. 加入说你的 C:\ 就存在那些 NT 的启动文件,那么无论 C: 的分区格式是什么,我们

都可以用一张 dos 启动盘启动系统,然后运行 Avldrng.exe 将系统转入到 C:\ 的系统

的引导。 ;)


Cool or not?!
4 发表于 2005-09-10 17:18 ·  中国 上海 金山区 电信
银牌会员
★★★
积分 1,231
发帖 498
注册 2002-12-03 00:00
23年会员
UID 398
性别 男
状态 离线
谢谢分享好东西,
言多必失!必失!!油多菜不坏,礼多人不怪
5 发表于 2005-09-11 07:15 ·  中国 安徽 宿州 泗县 电信
银牌会员
★★★
积分 1,339
发帖 595
注册 2004-05-26 00:00
22年会员
UID 25306
性别 男
来自 安徽 宿州
状态 离线
Originally posted by Gandalf at 2005-9-10 11:59 AM:
这个完全可能的。两种方式:

1. 将 ntldr, ntdetect.com, boot.ini, bootfont.bin(可选)放到你的 dos 启动软盘

上;当然,我们这里将 ntldr 改名为 ntldr2, 然堮..

我的意思是:在装WinXP之前,我用Format c:/s把C:盘格成了系统盘,后装WinXP的。这样在WinXP启动的时候,按F8,就能进Dos了。在这样的Dos下,不用重新启动,就能进入WinXP吗?
6 发表于 2005-09-11 11:20 ·  中国 北京 鹏博士BGP
中级用户
★★
CPU
积分 362
发帖 96
注册 2004-07-08 00:00
22年会员
UID 28010
性别 男
来自 北京
状态 离线
那样当然不成。如果可行的,不点早就作出 Grub4Win 来了。 嘿嘿。;)
7 发表于 2007-03-19 04:02 ·  中国 福建 福州 电信
新手上路
积分 2
发帖 1
注册 2006-08-21 03:00
19年会员
UID 60939
状态 离线
Avldrng能用于VISTA安装吗?
8 good 发表于 2007-04-18 09:07 ·  中国 广东 广州 电信
初级用户
积分 25
发帖 11
注册 2007-04-18 07:08
19年会员
UID 85593
性别 男
状态 离线
ding ding ding
9 发表于 2007-04-20 12:39 ·  中国 上海 东方有线
初级用户
积分 30
发帖 13
注册 2007-04-07 14:00
19年会员
UID 84286
性别 男
状态 离线
楼主,你说的这个方案似乎能够解决我以前提出过的一个问题:
http://www.cn-dos.net/forum/viewthread.php?tid=29312&fpage=1&highlight=

我以前在fat32下用command.exe\io.sys\config.sys就能启动系统,现在想在ntfs分区中使用Dos,请问,如何能用最精简的几个文件启动系统(我不喜欢安装烦琐的矮人等工具,虽然它们很优秀),并且能够实现ntfs分区的读写功能,呵呵,世纪难题呀,大家帮忙吧。

是不是呢?能否去帮我解答一下,谢谢啦
能不能告诉我现在谁的计算机使用Dos作为主要的操作系统。
10 发表于 2008-04-10 16:25 ·  中国 安徽 淮南 电信
新手上路
积分 4
发帖 2
注册 2008-04-10 16:01
18年会员
UID 115490
性别 男
状态 离线
好东西啊,
11 发表于 2008-04-13 11:35 ·  中国 广东 深圳 电信
初级用户
积分 24
发帖 11
注册 2006-03-08 19:45
20年会员
UID 51609
状态 离线
Originally posted by chujiafu at 2005-9-11 07:15:

我的意思是:在装WinXP之前,我用Format c:/s把C:盘格成了系统盘,后装WinXP的。这样在WinXP启动的时候,按F8,就能进Dos了。在这样的Dos下,不用重新启动,就能进入WinXP吗?




实际上是可行的,但是前提必须 C 为 Fat 32 格式
12 发表于 2008-04-14 19:43 ·  中国 江苏 徐州 中移铁通
初级用户
积分 43
发帖 29
注册 2008-03-31 15:01
18年会员
UID 114543
性别 男
状态 离线
哈哈,厉害啊……这样就算后安装Win98的话——如果还有人安装Win98&xP——也不怕了
13 发表于 2008-04-15 13:23 ·  中国 山西 大同 联通
新手上路
积分 10
发帖 5
注册 2008-04-15 12:49
18年会员
UID 115967
性别 男
状态 离线
这个经典
14 发表于 2008-05-08 00:24 ·  中国 辽宁 沈阳 联通
新手上路
积分 2
发帖 1
注册 2008-05-07 23:13
18年会员
UID 118055
性别 男
状态 离线
thanks a lot !!!
15 发表于 2008-05-13 10:12 ·  中国 江西 吉安 遂川县 电信
中级用户
★★
积分 253
发帖 112
注册 2006-05-31 11:12
20年会员
UID 56308
性别 男
状态 离线
现在的grub4dos也可以从DOS加载NTLDR及setup.bin呀
论坛跳转: