是ML更改了分区的顺序号?导致win2k3无法启动
过程:1先使用专门硬盘软件(winhdm)重写mbr代码,使其象普通ms系统一样引导,然后删除扩展分区以外的所有分区,也就是只留扩展分区一个主分区,扩展分区前剩余12g的自由空间;
在硬盘的最前面划分5g的主分区;
全新安装win2k3到这个5g的主分区,正常完成,正常启动,正常运行,此时c盘下boot.ini文件中内容为:
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
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文件内容为:
timeout=5
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
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版的时候有这个功能的啊?
大家探讨。 你直接看看MBR的最后四行二进制数据。
最后一个的分区标志肯定是0F了,
但前面几个分区标志的位置在哪里?是按照顺序来的么? 你直接看看MBR的最后四行二进制数据。
最后一个的分区标志肯定是0F了,
但前面几个分区标志的位置在哪里?是按照顺序来的么?
能介绍一下linux下看MBR数据的命令吗?谢谢! 我也不知道。
你用dos下的工具看看吧。 看了,最后四行数据为:
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下显示硬盘分区情况为:
# 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 IdSystem
/dev/hda1 384 1020 5116702+83Linux
/dev/hda3 1021 4865 30884962+ fW95 Ext'd (LBA)
/dev/hda4 * 1 383 3076416 7HPFS/NTFS
/dev/hda5 1021 1275 2048256 7HPFS/NTFS
/dev/hda6 1276 4814 28426986 bW95 FAT32
/dev/hda7 4815 4865 409626 82Linux swap / Solaris
Partition table entries are not in disk order
第一个分区标志是83,就是linux分区,
第二个分区标志是00,跳过了第二分区,
第三个分区标志是0f,是整个扩展分区,
第四个分区才是07,ntfs分区。
怎么会这样? :roll: 今天手工修改mbr中的分区表,将分区顺序调整回与物理位置相同。修改linux中相关设置(fstab、grub.conf),修改windows中boot。ini。正常启动。
也许有时间再重现一下,或许不是ML的安装程序引起,而是我原来的分区表还是不万全附合物理位置? 不一定吧?我用双硬盘,hda1是win,hdb1才是linux。。。一切正常
页:
[1]