(已解决)GRUB启动不能认后面的分区,help

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
youngblazer
帖子: 6
注册时间: 2008-11-15 19:08

(已解决)GRUB启动不能认后面的分区,help

#1

帖子 youngblazer » 2008-11-15 19:39

我是05年的HP-NX6120笔记本(256M+512M的内存,512M内存是买机时加的),为了装上ubuntu,支持WINXP的双操作系统,特意将机器的40G硬盘换成160G的硬盘,担心BIOS不支持137G以上的硬盘,上HP网站更换最新的BIOS。分区如下:
hd(0,1):20G NTFS WINXP
hd(0,5):30G fat32
hd(0,6):30G fat32
hd(0,7):30G fat32
Hd(0,8):22G ext3 \home
hd(0,9):21G ext3 \
hd(0,10):1G swap
hd(0,3):780M ext3 \boot
先将WINXP装上,然后通过ubuntu光碟在后面的分区装上ubuntu,硬盘后面几个分区都在ubuntu安装时,手动设置的,为了不影响WINXP的MBR,我的GRUB装在\boot分区。重启进入WINXP,修改boot.ini文件加上c:\grldr=Ubuntu保存,下载 grub4dos-0.4.3,拷下里面的grldr到C盘的根目录,再自己编写menu.lst文件,文件内容如下:
title ubuntu
root (hd0,3)
chainloader +1
保存后重启机器,可以在开机时看到操作系统选择菜单,选择Ubuntu,进入了grub启动界面,回车。这时问题就产生了,运行到屏幕出现:root (hd0,3),系统产生警告,说分区表不能识别,提示用msdos下的fdisk工具分区重做分区。警告一般是可以不理会的,系统自动执行下去,报出BIOS不能读出超过最大硬盘扇区的数据。估计是137G的限制。
我的这烂机器,光驱平时没有怎么用,现在时灵时不灵,可能是我的环境太恶劣(烟不离手:)),想找个同事的光驱来替代,IBM的光驱不能用在HP的机器上,晕~。烦请大家来帮忙,再重新分区装到硬盘前面去,这个办法就免了,我可不想再忍受这烂光驱去装机了,指点一下,不用再装系统,让两个系统跑起来。
上次由 youngblazer 在 2008-11-16 4:36,总共编辑 1 次。
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: GRUB启动不能认后面的分区,help

#2

帖子 adagio » 2008-11-15 20:39

写成类似这样的试试
title Ubuntu
root (hd0,3)
kernel /vmlinuz-2.6.24-21-generic root=/dev/sda4 ro quiet
initrd /initrd.img-2.6.24-21-generic
quiet
只需把内核换成你的

这个方式直接用grub4dos引导ubuntu,也就是说你装在hd(0,3)上的gnu grub没用了,不管它
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
youngblazer
帖子: 6
注册时间: 2008-11-15 19:08

Re: GRUB启动不能认后面的分区,help

#3

帖子 youngblazer » 2008-11-15 21:01

adagio,刚刚试了你的方法,不行啊,报出来的错误还是同以前一样的,我把信息抄下来了
warning: uncognized partition table for driver 80,please rebuild it using a microsoft-compatible FDISK tool(err=26),current C/H/S=16383/240/63
root(hd0,3)
error: selected cylinder exeeds maximum supported by BIOS

难道05年的机器真的不能支持大硬盘吗?郁闷了
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: GRUB启动不能认后面的分区,help

#4

帖子 adagio » 2008-11-15 21:07

奇怪,我的也是05年买的,没问题啊,你什么芯片组?很老的?
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
youngblazer
帖子: 6
注册时间: 2008-11-15 19:08

Re: GRUB启动不能认后面的分区,help

#5

帖子 youngblazer » 2008-11-15 21:23

不算老吧,是05年的新机器,915的芯片,问题应该还是发生在这块新硬盘上,日立160G IDE接口的硬盘换新原来富士通的40G硬盘
你的机器是跟我一样的型号吗?
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: GRUB启动不能认后面的分区,help

#6

帖子 adagio » 2008-11-15 21:39

不是,我台式的,320G都没问题,915肯定也没问题,比我的还新
我觉得可能你是分区表的问题,你怎么分的?
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
tigersmith
帖子: 53
注册时间: 2008-10-21 16:09

Re: GRUB启动不能认后面的分区,help

#7

帖子 tigersmith » 2008-11-15 23:45

grub4dos-0.4.4试试.
aoskas
帖子: 249
注册时间: 2007-11-06 13:56

Re: GRUB启动不能认后面的分区,help

#8

帖子 aoskas » 2008-11-16 0:06

错误。。。grub 是从hd0,0算起的。
主分区。hd0,0 hd0,1 hd0.2
逻辑分区。 hd0,4 hd 0,5........

看你的。试一下。

title Ubuntu 8.04.1 --2.6.24-21 new320

root (hd0,2)
kernel /boot/vmlinuz-2.6.24-21-generic root=/dev/sdb3 ro quiet splash

initrd /boot/initrd.img-2.6.24-21-generic

quiet

hd0,2 这个要去试。在1,2 中试一下。。sdb3 这个也要去试。2。3。4 去试!
vmlinuz-2.6.24-21 initrd.img-2.6.24-21这两个要与你的ubuntu中的版本一样!
aoskas
帖子: 249
注册时间: 2007-11-06 13:56

Re: GRUB启动不能认后面的分区,help

#9

帖子 aoskas » 2008-11-16 0:10

billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: GRUB启动不能认后面的分区,help

#10

帖子 billbear » 2008-11-16 0:49

有可能是 aoskas 说的问题。 (hd0,3) 是第四主分区。第三主分区应该是 (hd0,2)
如果你的 bios 没有 137g 限制的话,简单地把 c:\menu.lst 删除就行了,grub4dos 自然会找到并使用 /boot 分区下的 menu.lst
如果你的 bios 有问题,把 /boot 分区的东西统统拷贝到 xp 分区里 c:\boot 然后修改 c:\boot\grub\menu.lst 把 root (hd0,x) 改成 root (hd0,0) ,把所有的 /vmlinuz... 和 /initrd... 改成 /boot/vmlinuz... 和 /boot/initrd... 就行了。
上次由 billbear 在 2008-11-16 8:54,总共编辑 1 次。
youngblazer
帖子: 6
注册时间: 2008-11-15 19:08

Re: GRUB启动不能认后面的分区,help

#11

帖子 youngblazer » 2008-11-16 1:39

我的分区情况,刚才用分区魔法师在WINXP下做了一个图,发上来大家看看,如果还没有办法,打算在D盘下分个小区,将/boot分区转移过去图片
youngblazer
帖子: 6
注册时间: 2008-11-15 19:08

Re: GRUB启动不能认后面的分区,help

#12

帖子 youngblazer » 2008-11-16 3:31

billbear,按你的方法我做了一下,没有成功
通过Ubuntu光盘启动系统,进入后,在/分区下的/boot文件夹中没有发现任何东西,估计是我指定了sda3为/boot挂载点,同时grub安装点也在此分区,然后进入sda3盘发现了/grub文件夹,将其拷入c盘根目录下,再将initrd.img-2.6.27-7-generic,vmlinuz-2.6.27-7-generic这两个文件也拷入c盘根目录下。修改menu.lst文件,修改内容如下:
title Ubuntu 8.10, kernel 2.6.27-7-generic
root (hd0,0) #自己偷偷改回了,不再是hd(0,0) :em01 细心是多么的重要!
#uuid 8629d368-11ec-4ded-80c2-1407d1be4375
kernel /vmlinuz-2.6.27-7-generic root=/dev/sda9 ro quiet
#kernel /vmlinuz-2.6.27-7-generic root=UUID=49cb1eb7-8057-41f1-8168-a2f39d9aa48c ro ROOTFLAGS=sync quiet splash
initrd /initrd.img-2.6.27-7-generic
quiet

#title Ubuntu 8.10, kernel 2.6.27-7-generic (recovery mode)
#root (hd0,0)
#uuid 8629d368-11ec-4ded-80c2-1407d1be4375
#kernel /vmlinuz-2.6.27-7-generic root=UUID=49cb1eb7-8057-41f1-8168-a2f39d9aa48c ro ROOTFLAGS=sync single
#kernel /vmlinuz-2.6.27-7-generic root=/dev/hda9 ro ROOTFLAGS=sync single
#initrd /initrd.img-2.6.27-7-generic

#title Ubuntu 8.10, memtest86+
#root (hd0,0)
#uuid 8629d368-11ec-4ded-80c2-1407d1be4375
#kernel /memtest86+.bin
#quiet
--------------------------------------------------
uuid,在光驱启动ubuntu下使用ls -l /dev/sda by-uuid查看到49cb1eb7-8057-41f1-8168-a2f39d9aa48c 为sda9的编号,8629d368-11ec-4ded-80c2-1407d1be4375为sda3.

重新启动机器,进入选择项,选择进入ubuntu后,警告提示分区表不能识别,系统报错,错误为12号
上次由 youngblazer 在 2008-11-16 4:32,总共编辑 1 次。
youngblazer
帖子: 6
注册时间: 2008-11-15 19:08

Re: GRUB启动不能认后面的分区,help

#13

帖子 youngblazer » 2008-11-16 4:29

问题得到解决,非常感谢adagio,aoskas,billbear! :em02
原因已找到,是我自己太粗心,将root (hd0,0)写成root hd(0,0) :em06

我的机器问题还是存在的,虽然现在能够进入ubuntu,但是grub总是有警告说我的分区表不能识别,如果使用grub4dos在WINXP直接引导/boot分区的内容,还是找不到启动文件,是grub4dos不支持137G后的文件,还是BIOS本身有问题,不太清楚,但是在启动系统后可以访问137G后的内容,难道操作系统不是调用BIOS来访问硬盘的?废话少说, :em11 还是拿上我的具体解决方法,如下:
修改WINXP根目录下的boot.ini文件,加上c:\grldr=Ubuntu保存,下载 grub4dos-0.4.3,拷下里面的grldr到C盘的根目录,将/boot分区下的initrd.img-2.6.27-7-generic,vmlinuz-2.6.27-7-generic这两个文件也拷入c盘根目录下再自己编写menu.lst文件
timeout 0
hiddenmenu
title Ubuntu 8.10, kernel 2.6.27-7-generic
root (hd0,0)
kernel /vmlinuz-2.6.27-7-generic root=/dev/sda9 ro quiet
initrd /initrd.img-2.6.27-7-generic
quiet

---------------------------------------
#timeout设为0,因为WINXP会有一个启动选择菜单,选择ubuntu后,调用grldr读取 menu.lst又会再出现一个启动选择菜,有点重复,就设为直接启动,hiddenmenu项为菜单隐藏。kernel /vmlinuz-2.6.27-7-generic root=/dev/sda9 ro quiet 中的sda9为你的ubuntu的根分区,8.10的用户要使用命令查找UUID,如果知道也不用查
回复