急问centOS+ubuntu双系统grub引导文件的奇怪问题

litcatfish 2009-07-04 12:14:52
我的电脑装了两个系统,/dev/sda1,/dev/sda2,是装的CentOS的,/dev/sda3是CentOS的swap区,可能当时分区时没太注意,都成primary的了,汗一个……
然后在剩下的空间装了Ubuntu。装过两次,第一次是分区分成了logic的,就在/dev/sda5。

在我的CentOS grub.conf文件里,unbuntu那段儿我是这么写的:
root (hd0,4)
kernel (hd0,4)/boot/vmlinuz-2.6.27-11-generic root=/dev/sda5 ro quiet splash
initrd (hd0,4)/boot/initrd.img-2.6.27-11-generic

但是引导的时候,出现了error 2, bad file or directories
我进入CentOs之后把sda5挂载上检查,发现文件的确在那个地方。
然后再次引导,直接在>grub 提示符后面输入引导命令,输到kernel 的时候,在路径那块儿,按Tab键不能补全,而且一直提醒我bad files or directories

实在没有办法,我重装了一次,把分区设成了Primary的,在/dev/sda4, grub.conf也作了相应的更改,改成了(hd0,3),但是引导的时候还是一样的问题。

大家帮我看看这到底怎么回事儿呢?我实在想不出来办法了……
...全文
800 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
litcatfish 2009-07-05
  • 打赏
  • 举报
回复
但是我在CentOS下挂载上那个分区后的确能找到那个文件呀,路径肯定是对的,就是识别不了。
我在网上查到可能的原因是inodes大小的问题,我去试下,要是可以了上来汇报
  • 打赏
  • 举报
回复
2 : Bad file or directory type
解释 :2号错误表示命令期望的是一个普通文件,但相应文件名的对象是一个符号链接、目录、FIFO
例子 :
grub> kernel /testdir root=LABEL=/
Error 2: Bad file or directory type
grub>
litcatfish 2009-07-05
  • 打赏
  • 举报
回复
这个问题我解决了,确实是inodes大小的问题。
CentOS的文件系统Inodes是128KB的,而Ubuntu是256KB的,所以centOS的grub根本就识别不了Ubuntu的分区,虽然都是ext3的文件系统。
方法如下,仅供参考:
1.先进入centOS将ubuntu所在的分区重新格式化为inodes为128KB的文件系统
# mkfs.ext3 -I 128 /dev/sda[n]

2.然后重装ubuntu,并且装的时候直接装在那个分区,不再重新格式化

然后就可以了。
Linux下面查看inodes的命令是:
tune2fs -l /dev/sda1 | grep -i 'inode size'

yhf365 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 litcatfish 的回复:]
但是我的Ubuntu是装在后面的分区的。开机时应该默认运行的是CentOS的Grub文件吧。会不会有冲突呢?
[/Quote]
系统启动前只会运行一个分区的grub。
看你哪个分区是活动分区了。
litcatfish 2009-07-04
  • 打赏
  • 举报
回复
对了,我的文件系统类型是ext3的
litcatfish 2009-07-04
  • 打赏
  • 举报
回复
但是我的Ubuntu是装在后面的分区的。开机时应该默认运行的是CentOS的Grub文件吧。会不会有冲突呢?
neohope 2009-07-04
  • 打赏
  • 举报
回复
装ubuntu时,再安装一次grub,会自动识别其他系统的
litcatfish 2009-07-04
  • 打赏
  • 举报
回复
我重装好几次都不行。而且现在看来应该不是内核文件位置的问题了,不知道咋会事儿,快崩溃了……
chssea 2009-07-04
  • 打赏
  • 举报
回复
我也快被Grub搞死了,系统重装了两次了...
litcatfish 2009-07-04
  • 打赏
  • 举报
回复
确实在这个分区。我用CentOS挂载上Ubuntu的分区查看了的。而且当时也试过别的,哪个都不行。后来就只分了一个区。
yhf365 2009-07-04
  • 打赏
  • 举报
回复
kernel = (hd0,4)/boot/....
这个地方出问题了?tab键不能补全?
可能是vmlinuz不在这个分区。
试下别的分区,
(hd0,5),(hd0,6)之类的.

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧