yjqd 发表于 2016-9-15 09:24:36

不点 发表于 2016-9-15 07:21
干得漂亮!说说我的理解。第一阶段:我猜这个阶段纯粹是准备阶段(完全在实模式进行)。这一阶段的结果,就 ...

dos下安装xp(应该不管源盘是什么介质)比光驱(包括虚拟光驱)多一次复制过程

dos下安装xp第一次复制过程就是你所认为的0阶段吧

后面的阶段和光驱是一样的
--------------------------------------------------------------------------------------------------------------
dos下安装xp如果不需要加载磁盘驱动的情况,那么,只需要一个菜单就行了,最后一次安装不需要读取源盘

虚拟光驱安装时即使不需要加载磁盘驱动,最后一次安装还是需要读取源盘,所以还得map ISO   (关于这情况论坛有个帖子也说过),那么虚拟光驱安装需要grub4dos的两个菜单

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dos下安装xp如果第一次复制文件是复制到安装分区的,后面阶段如果你想删除安装分区再重建分区再安装,它会提示不允许删除这个分区

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我再试试你回复中建议的再做个试验
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
另外,大容量软盘安装xp已成功,但是这种方式是在软盘中添加了dos,并从dos安装的xp,直接从软盘安装,最先测试的菜单失败了

光驱变成软盘,是不是读取引导机制不一样了

不点 发表于 2016-9-15 09:40:01

yjqd 发表于 2016-9-15 09:24
dos下安装xp(应该不管源盘是什么介质)比光驱(包括虚拟光驱)多一次复制过程

dos下安装xp第一次复制 ...

你的话又让我有了启发。我们用 DOS 来安装,确实成功了。

那么如果不用 DOS,直接像光盘那样启动 setupldr.bin ,不知道行不行:

chainloader (fd0)/i386/setupldr.bin
rootnoverify (fd0)
boot

如果失败,再试试不要映射成 (fd0),而是映射成 (hd1),再从 hd1 启动 setupldr.bin,看看怎么样:

chainloader (hd1,0)/i386/setupldr.bin
rootnoverify (hd1)
boot

yjqd 发表于 2016-9-15 09:46:48

不点 发表于 2016-9-15 09:40
你的话又让我有了启发。我们用 DOS 来安装,确实成功了。

那么如果不用 DOS,直接像光盘那样启动 setu ...

chainloader (fd0)/i386/setupldr.bin
rootnoverify (fd0)
boot
这几句和前面的有点不一样
下面是你前面给出的

map (hd0) (hd1)
map (hd1) (hd0)
map --hook
find --set-root/winvblock.img
map --mem/winvblock.img (fd0)
map --hook
rootnoverify(fd0)
chainloader (fd0)/i386/setupldr.bin

我去试一试

不点 发表于 2016-9-15 10:12:41

从 https://support.microsoft.com/zh-cn/kb/295116 找到如下内容:

概要

本文介绍在 Windows Server 2003、Windows XP 和 Windows 2000 中可以使用的各种安装程序功能键。

更多信息

在安装过程中,您可以使用各种功能键激活某些功能和命令。下表详细介绍了当前的功能键,它们的作用,以及何时可以使用它们。

在加载安装程序期间,当提示您按 F6 功能键安装第三方小计算机系统界面 (SCSI) 和主控制器驱动程序时,可以使用三个键:
                  

[*]F5 - 用于计算机类型或硬件抽象层 (HAL) 选择
[*]F6 - 安装第三方 SCSI 和主控制器驱动程序
[*]F7 - 在不使用高级配置和电源界面 (ACPI) 的情况下运行安装程序

在“欢迎使用安装程序”屏幕显示后,可以使用下面的功能键:


[*]F2 - 自动启动“自动系统恢复”(ASR) 过程。
[*]F10 - 绕过菜单屏幕并加载“故障恢复控制台”


在图形用户界面 (GUI) 模式安装过程中,可以使用下面的功能键:
               

[*]Shift+F10 - 在 GUI 模式安装过程中启用对命令提示符的访问
[*]Shift+F11 - 显示提供更多详细信息的“旧式”向导


有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:242380 How to Use a Command Prompt During GUI-Mode Setup

属性

文章 ID:295116 - 上次审阅时间:05/14/2004 11:05:00 - 修订版本: 3.2

这篇文章中的信息适用于:
Microsoft Windows Server 2003, 64-Bit Datacenter Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003 Datacenter Edition, Microsoft Windows Server 2003 Enterprise Edition, Microsoft Windows Server 2003 Standard Edition, Microsoft Windows Server 2003 Web Edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional Edition, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Datacenter Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Server      
      
关键字:       
[*] kbinfo kbsetup KB295116

yjqd 发表于 2016-9-15 10:17:21

不点 发表于 2016-9-15 09:40
你的话又让我有了启发。我们用 DOS 来安装,确实成功了。

那么如果不用 DOS,直接像光盘那样启动 setu ...

还是不行,执行完后直接重启了

菜单如下:

map (hd0) (hd1)
map (hd1) (hd0)
map --hook
find --set-root/winvblock.img
map --mem/winvblock.img (fd0)
map --hook
chainloader (fd0)/i386/setupldr.bin
rootnoverify (fd0)
boot


下面是map为 (hd1)

map (hd0) (hd1)
map (hd1) (hd0)
map --hook
find --set-root/winvblock.img
map --mem/winvblock.img (hd1)
map --hook
chainloader (hd1,0)/i386/setupldr.bin
rootnoverify (hd1)
boot

我发现我是U盘安装的,于是map为 (hd0),还是不行

i386和setupldr.bin改为大写也不行

不点 发表于 2016-9-15 10:53:05

本帖最后由 不点 于 2016-9-15 10:56 编辑

yjqd 发表于 2016-9-15 10:17
还是不行,执行完后直接重启了

菜单如下:


哦,我忽视了。既然已经有 (hd0) 和 (hd1) ,那就应该使用 (hd2) 以免和它俩冲突。

估计都不行。这个 setupldr.bin 可能只用于光盘 2048 字节的大扇区设备,不能用于普通软盘、硬盘。

等以后再研究对策。

现在你可以试试彻底去掉 winvblock 驱动,能行吗?就是前面说的,用 fd0 作为空盘,在 fd1 上放硬盘驱动,试验一次。

yjqd 发表于 2016-9-15 10:55:47

不点 发表于 2016-9-15 10:53
哦,我忽视了。既然已经有 (hd0) 和 (hd1) ,那就应该使用 (hd2) 以免和它俩冲突。

估计都不行。这个...

好,以后再测试

yjqd 发表于 2016-9-15 11:05:51

不点 发表于 2016-9-15 07:21
干得漂亮!说说我的理解。第一阶段:我猜这个阶段纯粹是准备阶段(完全在实模式进行)。这一阶段的结果,就 ...

我成功的那个菜单第二启动的菜单中的软盘没有xp安装文件,只磁盘驱动和winvblock,加载了两者后就能进行全部的安装,也就是说第二阶段软盘不需要有xp安装文件

yjqd 发表于 2016-9-15 11:14:47

本帖最后由 yjqd 于 2016-9-15 11:21 编辑

不点 发表于 2016-9-15 07:21
干得漂亮!说说我的理解。第一阶段:我猜这个阶段纯粹是准备阶段(完全在实模式进行)。这一阶段的结果,就 ...

按你的
“假如你在第 0 阶段开始之前已经把 A:\I386 的内容复制到 C 盘的某个位置,比如说 c:\XP_CD_setup\I386,那么,你在第 0 阶段运行 winnt.exe 时,就可以修改源盘的位置为 c:\XP_CD_setup\I386,这样,它也会记住这个位置。那么,在第一阶段时,(推测)它就不会再去访问 A: 盘了。换句话说,(猜测)即使不存在 winvblock,也有办法完成安装”

我测试了,先把安装文件复制到C:\T   第 0 阶段运行 winnt.exe 时,修改源盘的位置为 C:\T\I386

第二阶段还是要加载winvblock和磁盘驱动才行


如果机子本身不加需要载磁盘驱动,那么也就不用加载winvblock,即使0 阶段开始之前不把 A:\I386 的内容复制到 C 盘的某个位置,第二阶段也能全部完成

不点 发表于 2016-9-15 12:59:26

yjqd 发表于 2016-9-15 11:14
按你的
“假如你在第 0 阶段开始之前已经把 A:\I386 的内容复制到 C 盘的某个位置,比如说 c:\XP_CD_s ...

还缺少了一个测试,试试同时创建两个虚拟软盘 fd0 和 fd1,让 fd0 里面是空的,让 fd1 里面含有硬盘驱动。这样试试,在完全不用 winvblock 的情况下,可否进行安装。

如果依旧失败,最后试试将 winvblock 驱动直接集成到 I386 底下,看看这次怎么样?

yjqd 发表于 2016-9-15 13:22:42

不点 发表于 2016-9-15 12:59
还缺少了一个测试,试试同时创建两个虚拟软盘 fd0 和 fd1,让 fd0 里面是空的,让 fd1 里面含有硬盘驱动 ...

是否要像下面一样map,还是就map fd0 和 fd1
只看下面加粗部分

map --mem (hd0,0)/boot/winvblock.img (fd1)
map --mem (md)0x6000+800 (fd0)
find --set-root /winxp.iso
map /winxp.iso (0xff)
map --hook
dd if=(fd1) of=(fd0) count=1
chainloader (0xff)

还是就map fd0 和 fd1
map --mem (hd0,0)/boot/winvblock.img (fd1)

map --mem (hd0,0)/boot/block.img (fd0)             block.img为空

不点 发表于 2016-9-15 13:45:38

yjqd 发表于 2016-9-15 13:22
是否要像下面一样map,还是就map fd0 和 fd1
只看下面加粗部分



我理解,这两种可能是等价的,你都试试吧。

yjqd 发表于 2016-9-15 14:17:37

不点 发表于 2016-9-15 13:45
我理解,这两种可能是等价的,你都试试吧。

Windows xp官方原始安装光盘的启动过程:
http://blog.sina.com.cn/s/blog_44c2ca000100l7ox.html

摘要了一些内容:
    读光盘第17扇区启动记录描述符 --> 启动目录文件BCF --> 启动映像文件BIF --> i386\bootfix.bin --> i386\setupldr.bin --> i386\ntdetect.com --> i386\txtsetup.sif --> i386\biosinfo.inf --> 加载驱动文件 --> 开始安装
    实验证明是首先读取txtsetup.sif,然后读取biosinfo.inf,开始加载各驱动文件。当i386目录下没有txtsetup.sif和biosinfo.inf及其它驱动文件时,安装程序会首先提示找不到txtsetup.sif,然后才提示找不到biosinfo.inf及其它驱动文件。

不点 发表于 2016-9-15 14:22:34

yjqd 发表于 2016-9-15 14:17
Windows xp官方原始安装光盘的启动过程:
http://blog.sina.com.cn/s/blog_44c2ca000100l7ox.html



好啊,找到前人的研究结果,那太好了。相信你最终总能搞定它的。慢慢来吧。

yjqd 发表于 2016-9-15 20:11:05

不点 发表于 2016-9-15 13:45
我理解,这两种可能是等价的,你都试试吧。

虚拟光驱安装时按F6如果只加载磁盘驱动,不加载winvblock,一会后出现7B蓝屏

大容量虚拟软盘用dos安装在按F6如果只加载磁盘驱动,不加载winvblock,不会出现7B蓝屏,而是出现本机硬盘(前面回复你时说过这一现象)
-----------------------------------------------------------------------------------------------------------------------------------------
我这时去测试一下同时创建两个虚拟软盘 fd0 和 fd1,让 fd0 里面是空的,让 fd1 里面含有硬盘驱动

不点 发表于 2016-9-15 20:39:49

yjqd 发表于 2016-9-15 20:11
虚拟光驱安装时按F6如果只加载磁盘驱动,不加载winvblock,一会后出现7B蓝屏

大容量虚拟软盘用dos安装 ...

大容量虚拟软盘用dos安装在按F6如果只加载磁盘驱动,不加载winvblock,不会出现7B蓝屏,而是出现本机硬盘(前面回复你时说过这一现象)
你说错了吧?先前你是这样说的:

在安装的第二阶段,手动按F6后如果只加载硬盘驱动器,不加载winvblock或firadisk,能出现本机硬盘,选择安装到C盘,一会底部出现正在创建要复制的文件列表,接着出现中文,请把标为“AMD AHCI Compatible RAID Controller Driver Diskette”的磁盘插入驱动A,就绪后按ENTER

“AMD AHCI Compatible RAID Controller Driver Diskette” 其实就是F6      加载的硬盘驱动

按ENTER没反应,怎么回事,我加载了了驱动怎么还要让我插入

难道是此时安装程序还要读取它,并且此时已处于保护模式,刚才没加载winvblock,map出来的软驱不能带入保护模式

于是按F3退出,重新进入第二阶段安装,手动按F6加载硬盘驱动器和winvblock,后面继续安装,一切OK,直到结束

yjqd 发表于 2016-9-15 20:51:16

不点 发表于 2016-9-15 13:45
我理解,这两种可能是等价的,你都试试吧。

大容量虚拟软盘用dos安装xp
-----------------------------------------------------------------------------------------------------------------------------------------
第二阶段创建两个虚拟软盘 fd0 和 fd1, fd0 里面是空的, fd1 里面含有硬盘驱动
先map的 fd1,后map的 fd0

map --/winvblock.img (fd1)   含有硬盘驱动
map --/k.img (fd0)                里面是空的

在按F6后,提示把磁盘插入驱动器A,按ENTER,提示找不到txtsetup.oem,按S键又不出现fd1盘,怎么办呢,还是按enter试一试,一会居然出现了硬盘,确认安装,这次没提示插入磁盘了,就开始复制文件了

这种方法成功了!

yjqd 发表于 2016-9-15 20:59:13

本帖最后由 yjqd 于 2016-9-15 21:03 编辑

不点 发表于 2016-9-15 20:39
你说错了吧?先前你是这样说的:

哪里说错了呢,难道是我搞昏了

先我说的也是只加载硬盘驱动器,不加载winvblock或firadisk,能出现本机硬盘,但不能继续安装
135#说的也是只加载硬盘驱动器,不加载winvblock或firadisk,能出现本机硬盘,没说能继续安装

不点 发表于 2016-9-15 21:28:10

yjqd 发表于 2016-9-15 20:59
哪里说错了呢,难道是我搞昏了

先我说的也是只加载硬盘驱动器,不加载winvblock或firadisk,能出现 ...

好的,都能显示本机硬盘,说明不加载 winvblock,本机硬盘的驱动已经起作用了。

我这样理解,你看对不对:只要软盘 img 里面有 “本机硬盘驱动”,那么,即使没有 winvblock,也能安装成功。无论是把软盘 img 加载在 fd0 还是 fd1,都能成功。对吧?【这里当然要假定,事先已经把 I386 拷贝到本机硬盘上了,并在 DOS 下指定了硬盘上的 I386 作为安装盘的路径。】

不点 发表于 2016-9-15 21:37:55

yjqd 发表于 2016-9-15 20:51
大容量虚拟软盘用dos安装xp
----------------------------------------------------------------------- ...

成功是成功了,不过,其原因是啥,还是有些神秘。

请你对比一下,把

map --/winvblock.img (fd1)   含有硬盘驱动
map --/k.img (fd0)                里面是空的

换成

map --/winvblock.img (fd0)   含有硬盘驱动

这两种安装的结果一样吗?我的意思是,都能成功吗?



再做一个试验:彻底删除 img 里面的 winvblock 驱动文件,看看还能成功吗?我的意思是,假如 img 里面存在 winvblock 的文件,安装程序有可能 “神不知鬼不觉地”、“自动地”、“偷偷地” 加载它。如果彻底删除掉,那么就可以确定,安装程序无法加载 winvblock 了。那么就试试,在这种情况下,安装还能完成吗?

yjqd 发表于 2016-9-15 21:47:10

不点 发表于 2016-9-15 21:28
好的,都能显示本机硬盘,说明不加载 winvblock,本机硬盘的驱动已经起作用了。

我这样理解,你看对不 ...

刚才又测试了,出现安装界面时不按F6,后面出现了本机硬盘,按确认安装,一会就开始复制文件了,根据现象来看也就是说不按F6,没有137#所说的步骤,而是自动读取了fd1(里面有磁盘驱动),两次测试都不需要 winvblock,而且能复制文件,原来没map 两个盘时,只加载磁盘驱动,能出现硬盘,但又要让插入磁盘

fd1和 fd0谁先map效果都一样
--------------------------------------------------------------
还有一点我说清楚:

这两次测试都没提前把 I386 拷贝到本机硬盘上了,并在 DOS 下指定了硬盘上的 I386 作为安装盘的路径



今天上午倒是按照你的建议把 I386 拷贝到本机硬盘上了,并在 DOS 下指定了硬盘上的 I386 作为安装盘的路径,但没map 两个镜像,还是不能只加载磁盘驱动(能出现硬盘)不加载winvblock就能复制文件继续安装
这个测试我记得没回复你


map 两个镜像的测试成功,我无法理解其中原因,可能要读一下前面你回复中的分析,请不点指点一下

yjqd 发表于 2016-9-15 21:52:35

不点 发表于 2016-9-15 21:28
好的,都能显示本机硬盘,说明不加载 winvblock,本机硬盘的驱动已经起作用了。

我这样理解,你看对不 ...

“无论是把软盘 img 加载在 fd0 还是 fd1,都能成功。对吧?”

我的测试是软盘 img 必须map成 fd1

我所说的fd1和 fd0谁先map效果都一样,不是指 img 可以map成 fd0

不点 发表于 2016-9-15 21:59:36

yjqd 发表于 2016-9-15 21:52
“无论是把软盘 img 加载在 fd0 还是 fd1,都能成功。对吧?”

我的测试是软盘 img 必须map成 fd1


我是问:只把 img 映射为 (fd0),不再多 map 一个 (fd1), 这也一样行,是不是?这里假定 winvblock 驱动文件已经被彻底删除掉了。

yjqd 发表于 2016-9-15 22:03:57

不点 发表于 2016-9-15 21:37
成功是成功了,不过,其原因是啥,还是有些神秘。

请你对比一下,把


“换成
map --/winvblock.img (fd0)   含有硬盘驱动
这两种安装的结果一样吗?我的意思是,都能成功吗?

没太明白意思,只map fd0 不是前面已测试过了吗 不能成功

-------------------------------------------------------------------------------------------
“再做一个试验:彻底删除 img 里面的 winvblock 驱动文件,看看还能成功吗?我的意思是,假如 img 里面存在 winvblock 的文件,安装程序有可能 “神不知鬼不觉地”、“自动地”、“偷偷地” 加载它。如果彻底删除掉,那么就可以确定,安装程序无法加载 winvblock 了。那么就试试,在这种情况下,安装还能完成吗?”

这个问题,你说得正好:

我第二次测试的时候把里面的winvblock firadisk 都删除了,只剩下磁盘驱动,也是怀疑“偷偷地” 加载它,我也担心这种情况出现


但是,根据以往我手动加载的时候来看,只能加载指定的驱动,比如我只加载磁盘驱动时,不加载winvblock,那么不能继续安装,要同时加载两都才能继续安装

不点 发表于 2016-9-15 22:08:43

yjqd 发表于 2016-9-15 21:47
刚才又测试了,出现安装界面时不按F6,后面出现了本机硬盘,按确认安装,一会就开始复制文件了,根据现象 ...

我不知道弄两个虚拟软盘和只弄一个虚拟软盘,两者之间究竟有何差别。

猜测一:系统有两个虚拟软盘,安装程序会认为用户的驱动程序很大也很多,有 N 多软盘。于是,安装程序知道,必须把软盘的内容拷到硬盘上才安全。既然都拷到硬盘上了,所以,在保护模式下就不用访问软盘了,因此,安装就可以继续下去了。

猜测二:系统有两个软盘,这让安装程序不敢轻易切换到保护模式,而是一直留在 DOS/BIOS 的实模式。于是,所有的安装都很顺利。

究竟哪个才是真实情况,还需要你加以判断。

yjqd 发表于 2016-9-15 22:15:53

不点 发表于 2016-9-15 21:59
我是问:只把 img 映射为 (fd0),不再多 map 一个 (fd1), 这也一样行,是不是?这里假定 winvblock 驱动 ...

我来理一下我们现在讨论的问题是什么:
首先是前面我回复你说dos安装大容量xp镜像,第二阶段如果只加载磁盘驱动,不加载 winvblock,能出现本机硬盘,但不能继续安装(那时的菜单只map了一个镜像,且是FD0),你大概提出了几个方案测试,目的是解决不加载 winvblock驱动也能继续安装

于是我测试了map两个 镜像,fd1 有磁盘驱动,fd0 空盘,得出的结果是能成功,且有磁盘驱动的镜像必须map成fd1

也就是说前面我只map 一个镜像时,且是fd0,不能成功

yjqd 发表于 2016-9-15 22:20:55

不点 发表于 2016-9-15 22:08
我不知道弄两个虚拟软盘和只弄一个虚拟软盘,两者之间究竟有何差别。

猜测一:系统有两个虚拟软盘,安 ...

时常有意外发生:
我刚学习grub4dos时,为了测试,一会在这个盘放grldr,一会在那个盘grldr,开始还记得删除其它,只保留一个grldr,后来有的就忘记删除了,以至后来测试时遇到明明自己改了菜单,为什么启动时还没变呢

yjqd 发表于 2016-9-15 22:23:40

不点 发表于 2016-9-15 22:08
我不知道弄两个虚拟软盘和只弄一个虚拟软盘,两者之间究竟有何差别。

猜测一:系统有两个虚拟软盘,安 ...

或许有更多的朋友来测试一下得到的答案更准确

也或许有的朋友早已知道是什么原因了

yjqd 发表于 2016-9-15 22:55:37

本帖最后由 yjqd 于 2016-9-15 22:57 编辑

不点 发表于 2016-9-15 22:08
我不知道弄两个虚拟软盘和只弄一个虚拟软盘,两者之间究竟有何差别。

猜测一:系统有两个虚拟软盘,安 ...

这种菜单也成功了:
由于我在另一台电脑是回复的,我没抄成功的菜单回复,但实质是一样的

map (hd0) (hd1)
map (hd1) (hd0)

map --hook

map --mem (hd0,0)/boot/winvblock.img (fd1)    只有磁盘驱动
map --mem (md)0x6000+800 (fd0)

dd if=(fd1) of=(fd0) count=1
map --hook
chainloader (hd0,2)/ntldr

不点 发表于 2016-9-16 00:07:29

本帖最后由 不点 于 2016-9-16 00:28 编辑

yjqd 发表于 2016-9-15 22:55
这种菜单也成功了:
由于我在另一台电脑是回复的,我没抄成功的菜单回复,但实质是一样的



只要你的 (fd1) 里面的 I386 能够用来安装,那就说明是在实模式下,未进入保护模式。

如果 (fd1) 里面的 I386 不能用来安装,而硬盘上的 I386 可以用来安装,那就说明安装程序切换到了保护模式,使得实模式下的 (fd1) 失效了。

为了验证这个推断,可以再做个试验。

你加载软盘 img 到 (fd1),而加载空盘为 (fd0)。把 img 里面的 “本地硬盘驱动” 删除掉,而换成一个无用的驱动,比如换成 winvblock 的驱动文件。看看安装还能进行吗?如果能进行,那就说明,安装程序一直处于实模式,而不进入保护模式,因此,即使没有本地硬盘驱动,也能安装。当然了,在安装完成后,最后要启动 XP 时,仍旧会出现 7B 蓝屏,因为那时是在保护模式了,而保护模式必须有硬盘驱动才行。
页: 1 2 3 4 [5] 6
查看完整版本: grub4dos安装原版xp镜像时出现的问题