|
楼主 |
发表于 2004-6-3 16:50:10
|
显示全部楼层
原因已经查明,不是GRUB的错。谢谢楼上兄弟的提醒,我用fdisk –l命令一看分区信息,觉得得整个硬盘的分区表就像重写一样,分区变了,变得我不认识,但规范了。我做梦也没想到root (hd0,2)会变。
我真不知道该向“比尔”大叔说一声谢谢呢还是骂他一句。都是XP光盘惹的祸,重写MBR的时候,把我的分区表的顺序调了一下。
===============================================
我原来买电脑的时候分了一个主分区[8G],一个扩展分区[32](N个逻辑分区),后来装Linux的时候为了了谨慎期间,从[8G]的主分区劈开了两个区用于Linux,追加到MBR-64字节分区表的“后两个分区”部分,分区信息为:
--------------------------------------------
hda: hda1 hda2 <hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12> hda3 hda4
分区表第一段(16B):hda1
分区表第二段(16B):hda2
分区表第三段(16B): hda3
分区表第四段(16B): hda4
--------------------------------------------
hda3,hda4正是从那8G劈出来的。但是物理磁道上,它是介于hda1与hda2之间的,当初这样的情况我是有所考虑的,怕有一天会给我带来麻烦,但不幸的是事情还是发生了,一年前的预言变成了活生生的现实。用XP光盘启动过之后,它把分区表信息按物理磁道重写了一遍,hda3,hda4往前挪,变成如下:
-----------------------------------------------------------------
hda: hda1 hda2 hda3 hda4 <hda5 hda6 hda7 hda8 hda9 hda10 hda11 hda12>
分区表第一段(16B):hda1
分区表第二段(16B):hda2(原来的hda3分区信息)
分区表第三段(16B): hda3(原来的hda4分区信息)
分区表第四段(16B): hda4(原来的hda2分区信息)
-----------------------------------------------------------------
至此变区表也变成按物理磁道编排,规范了,但给了我致命一击。我也有所感慨,第一次认识到到LABEL的好处并且学了GRUB的命令环境,/etc/fstab文件第一列它是由LABEL所控,不是定义了哪个具体的分区,以此用LILO启动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 Id System
/dev/hda1 * 1 750 6024343+ b Win95 FAT32
/dev/hda2 751 769 152617+ 83 Linux
/dev/hda3 770 1018 2000092+ 83 Linux
/dev/hda4 1021 4865 30884962+ f Win95 Ext'd (LBA)
/dev/hda5 1021 1412 3148708+ b Win95 FAT32
/dev/hda6 1413 2065 5245191 7 HPFS/NTFS
/dev/hda7 2066 2718 5245191 b Win95 FAT32
/dev/hda8 2719 3570 6843658+ 7 HPFS/NTFS
/dev/hda9 3571 4355 6305481 7 HPFS/NTFS
/dev/hda10 4356 4388 265041 82 Linux swap
/dev/hda11 4389 4413 200781 83 Linux
/dev/hda12 4414 4865 3630658+ 83 Linux
#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda3 1.9G 460M 1.4G 26% /
/dev/hda2 145M 12M 126M 9% /boot
/dev/hda11 190M 73M 108M 41% /home
none 62M 0 62M 0% /dev/shm
/dev/hda12 3.5G 2.7G 604M 82% /usr
/dev/hda5 3.0G 578M 2.5G 19% /mnt/winxp
修改grub.conf文件如下:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,2)
# kernel /vmlinuz-version ro root=/dev/hda4
# initrd /initrd-version.img
#boot=/dev/hda
default=1
timeout=10
splashimage=(hd0,1)/grub/splash.xpm.gz
title Red Hat Linux (2.6.6-lids)
root (hd0,1)
kernel /vmlinuz-2.6.6-lids ro root=/dev/hda3
initrd /initrd-2.6.6-lids.img
title Red Hat Linux (2.4.20-8)
root (hd0,1)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
title DOS
rootnoverify (hd0,0)
chainloader +1
再次谢谢好心人的帮助! |
|