|
|
原帖由 2011泥土清香 于 2011-5-9 15:54 发表 
- -你这算不算转移话题了。。。。
能告诉我出现这个状况,是什么原因吗。。。
我想知道的是这个问题的原因,而不是一味的绕过问题,不然下次还是同样绊倒啊
想到一些关于xp启动和win7启动相关的东西
关于boot.ini- [boot loader]
- timeout=3
- default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
- [operating systems]
- multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /noexecute=optout /fastdetect
复制代码 ntldr读取boot.ini然后参照default=来确定默认启动的系统
[operating systems]段可以有多行...
可以使用multi(0)disk(0)rdisk(0)partition(1)\WINDOWS这种路径来指定启动的windows路径...
也可以使用类似C:\Windows这种路径来来指定Windows的路径
第一种启动方式(multi(0)disk(0)rdisk(0)partition(1)\WINDOWS)
multi是指ide控制器(包括sata)设备号,pc规范中ide控制器只有一个所以括号中恒为0,,,如果是scsi硬盘此处会是scsi,括号中是一个0或正整数
disk是指控制器(ide/scsi)设备上的磁盘的盘号..括号中是一个0或正整数...按照bios标准..当前启动盘是0,其他盘按主次从排序...
rdisk用于启动内存盘
partition是指前面确定的磁盘上的分区的号码...这个特殊,不是从0开始计数...第一个分区就编号1..其他按物理位置依次排序...也不分主分区和逻辑分区...
第二种方式(C:)
这种需要依赖已有的ntldr支持的系统..
ntldr首先会读取ntldr所在分区的系统的注册表...然后按照注册表中个挂载点来确定各个分区的盘符...(换句话说...再这个系统中各个盘的盘符就是此时各个盘的盘符)
至此..第一个问题就可以解释了..
首先ghost的xp系统..boot.ini是ghost之前xp安装程序制作的一个当时系统的设备/磁盘/分区...其实也是大多数人所遇到的情况..
但是现在我们装的是多系统...于是问题来了....
如果你把ghostxp还原到了第一磁盘..第一分区.而且是主分区..那没有问题
但是...如果你把ghostxp还原到了第二个分区..那可不妙了...ntldr会被boot.ini误导...他认为你的xp装在了第一分区..于是...我就不说了...结果可想而知
ghost程序是能识别boot.ini中引导路径不正确..并修改的..但是我不知道具体需那个版本..最新的肯定支持...但是..还有个问题..
安装过程中某一次(不记得是哪一次,好像是第一层次)重启的时候...xp会愚蠢的认为ghost修改后的boot.ini是不对的...他会把boot.ini改回来...于是悲剧了..
另外...如果ntldr在boot.ini的误导下..确实在multi(0)disk(0)rdisk(0)partition(1)\WINDOWS找到一个windows系统...他可能是xp/2003/win7等..windows安装程序会错误的认为这个系统是一个安装中的系统...他会用你ghost进去的文件"继续"安装这个系统...于是装出来一个win7和xp的混合物...这个系统肯定不能启动..这就是第二种结果...
关于boot.ini各项的定义可以查msdn..有些地方可能记忆不准确...问题的原因基本上就是这样...这两种情况都遇到过...当时的办法是两次修改boot.ini
[ 本帖最后由 2011足迹 于 2011-5-22 00:22 编辑 ] |
|