QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1244|回复: 6

是ML更改了分区的顺序号?导致win2k3无法启动

[复制链接]
发表于 2006-2-15 23:47:16 | 显示全部楼层 |阅读模式
过程:
1先使用专门硬盘软件(winhdm)重写mbr代码,使其象普通ms系统一样引导,然后删除扩展分区以外的所有分区,也就是只留扩展分区一个主分区,扩展分区前剩余12g的自由空间;
在硬盘的最前面划分5g的主分区;
全新安装win2k3到这个5g的主分区,正常完成,正常启动,正常运行,此时c盘下boot.ini文件中内容为:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="2003" /fastdetect /NoExecute=OptOut

可见这个分区的顺序标识是第一个分区,物理上也确是第一个主分区;

再安装ML2.0f,安装过程中将剩下的7g自由空间全部划给/(swap分区原经在扩展分区中建有),物理上该分区应该是第二个主分区。安装顺利,启动顺利,运行正常;
重启,在grub命令行模式输入:
grub>root (hd0,0)
grub>chainloader +1
grub>boot
启动win2k3失败。

进入ML,看到挂载的分区,win2k3所在的物理第一分区是hda4.

重启,在grub命令行模式输入:
grub>root (hd0,3)
grub>chainloader +1
grub>boot
启动win2k3失败,Ntldr 文件丢失。

进入ML,修改hda4下面boot.ini文件内容为:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="2003" /fastdetect /NoExecute=OptOut

重启,在grub命令行模式输入:
grub>root (hd0,3)
grub>chainloader +1
grub>boot
启动win2k3成功。连windows自己也认为其所在分区为2了。

疑问:
是否ML的安装程序一定要把boot所在分区设置成hda1(hd0,0)?
另外的主分区设置的顺序号是依据什么来排的呢?我的硬盘一共只有三个主分区,物理位置第一主分区却是hda4(hd0,3)?为何会跳过hda2?
在已有windows的系统上安装双系统不就破坏了windows的启动吗?对了,安装过程中并没有检测到我已安装的windows而将它加入启动菜单,我记得以前1.2f版的时候有这个功能的啊?

大家探讨。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2006-2-16 14:58:21 | 显示全部楼层
你直接看看MBR的最后四行二进制数据。

最后一个的分区标志肯定是0F了,

但前面几个分区标志的位置在哪里?是按照顺序来的么?
回复

使用道具 举报

 楼主| 发表于 2006-2-16 20:53:01 | 显示全部楼层
[quote:07849e674f="wanglaow"]你直接看看MBR的最后四行二进制数据。

最后一个的分区标志肯定是0F了,

但前面几个分区标志的位置在哪里?是按照顺序来的么?[/quote]

能介绍一下linux下看MBR数据的命令吗?谢谢!
回复

使用道具 举报

发表于 2006-2-17 06:54:53 | 显示全部楼层
我也不知道。

你用dos下的工具看看吧。
回复

使用道具 举报

 楼主| 发表于 2006-2-20 13:57:14 | 显示全部楼层
看了,最后四行数据为:
41 7f 83 fe ff fb bf e2 5d 00 3d 26 9c 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c1 fc 0f fe ff ff fc 08 fa 00 c5 88 ae 03 80 01
01 00 07 fe 7f 7e 3f 00 00 00 80 e2 5d 00 55 aa

linux下显示硬盘分区情况为:
                                                               
[root@MagicLin ~]# fdisk -l

Disk /dev/hda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1             384        1020     5116702+  83  Linux
/dev/hda3            1021        4865    30884962+   f  W95 Ext'd (LBA)
/dev/hda4   *           1         383     3076416    7  HPFS/NTFS
/dev/hda5            1021        1275     2048256    7  HPFS/NTFS
/dev/hda6            1276        4814    28426986    b  W95 FAT32
/dev/hda7            4815        4865      409626   82  Linux swap / Solaris

Partition table entries are not in disk order

第一个分区标志是83,就是linux分区,
第二个分区标志是00,跳过了第二分区,
第三个分区标志是0f,是整个扩展分区,
第四个分区才是07,ntfs分区。
怎么会这样?
回复

使用道具 举报

 楼主| 发表于 2006-2-20 21:01:06 | 显示全部楼层
今天手工修改mbr中的分区表,将分区顺序调整回与物理位置相同。修改linux中相关设置(fstab、grub.conf),修改windows中boot。ini。正常启动。
也许有时间再重现一下,或许不是ML的安装程序引起,而是我原来的分区表还是不万全附合物理位置?
回复

使用道具 举报

发表于 2006-2-20 21:24:06 | 显示全部楼层
不一定吧?我用双硬盘,hda1是win,hdb1才是linux。。。一切正常
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-25 07:55 , Processed in 0.047498 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表