LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1558|回复: 9

FEDORA启动后grub找不到menu.lst.

[复制链接]
发表于 2011-5-18 23:57:47 | 显示全部楼层 |阅读模式
我在虚拟机中装了Fedora,分了2个区,(hd0,0)为/boot,(hd0,1)为/根分区.
今天用grub-install 和setup(hd0)重新安装了grub,结果重启后就只能到grub提示符,无法自动加载menu.lst文件了.
只有手动加载内核后才能启动系统.检查/boot/grub/menu.lst和/boot/grub/grub.conf文件内容没有问题.
在启动时的grub提示符下我用configfile (hd0,0)/grub/menu.lst命令可以加载menu.lst文件,
我也多次重新安装了grub,并且menu.lst和grub.conf都没有问题,可每次重启还是停在grub提示符下,无法自动加载menu.lst.
请大家指教?多谢!
发表于 2011-5-19 11:33:28 | 显示全部楼层
估计是你的安装设置有问题。grub没有装到/boot上。

进入系统后运行
  1. df -lh
复制代码
把结果贴出来,再运行,
  1. cat /etc/fstab
复制代码
也把结果贴出来。

其实你自己先写一个也可以。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-19 13:46:53 | 显示全部楼层
Post by pingz;2139653
估计是你的安装设置有问题。grub没有装到/boot上。

进入系统后运行
  1. df -lh
复制代码
把结果贴出来,再运行,
  1. cat /etc/fstab
复制代码
也把结果贴出来。

其实你自己先写一个也可以。
我是先运行了grub-install --root-directory=/boot /dev/sda
然后再运行root (hd0,0);setup (hd0)
第一条命令应该就装到/boot了吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-19 15:40:00 | 显示全部楼层
原因找到了,可是不知道怎么解决.
原来在启动的时候grub找的是/boot/boot/grub/menu.lst
而不是找/boot/grub/menu.lst,前面那个地址当然没有那个文件了.
也就是说grub把/boot=(hd0,0)当作根目录了
我在安装grub的时候是用root (hd0,0);setup (hd0)是这两个命令的关系吗?root 把根目录指向(hd0,0)?
但是我不使用root ,直接用Setup提示不能挂载分区.
各位大侠,怎么才能让grub知道正确的menu.lst路径呢?
回复 支持 反对

使用道具 举报

发表于 2011-5-19 18:06:41 | 显示全部楼层
grub-install --root-directory=/boot /dev/sda
貌似这个写的有问题,
你要么直接写grub-install  /dev/sda ,默认就会在/boot下建grub系列文件;要么grub-install --boot-directory=/boot /dev/sda。

举例来说,在U盘/dev/sdb1上安装grub2引导程序。
1、先挂载U盘到 /mnt
2、grub-install --root-directory=/mnt /dev/sdb
这样就会在u盘上建立/boot/grub/
如果grub-install --boot-directory=/mnt /dev/sdb
则会在U盘上建立/grub,而省去了/boot路径。
不过我说的是grub1.99版的情况。

你在本系统安装grub2,默认直接安装到/boot/grub/下,不需要指定--root-directory参数,这两个参数一般是给别的系统指定安装引导路径的,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-19 20:39:31 | 显示全部楼层
Post by 32idea;2139689
grub-install --root-directory=/boot /dev/sda
貌似这个写的有问题,
你要么直接写grub-install  /dev/sda ,默认就会在/boot下建grub系列文件;要么grub-install --boot-directory=/boot /dev/sda。

举例来说,在U盘/dev/sdb1上安装grub2引导程序。
1、先挂载U盘到 /mnt
2、grub-install --root-directory=/mnt /dev/sdb
这样就会在u盘上建立/boot/grub/
如果grub-install --boot-directory=/mnt /dev/sdb
则会在U盘上建立/grub,而省去了/boot路径。
不过我说的是grub1.99版的情况。

你在本系统安装grub2,默认直接安装到/boot/grub/下,不需要指定--root-directory参数,这两个参数一般是给别的系统指定安装引导路径的,
是的,我后面已经去掉--root-directory参数重新grub-install了一次,
然后又setup (hd0),
结果还是一样,唉.
回复 支持 反对

使用道具 举报

发表于 2011-5-19 21:12:20 | 显示全部楼层
你用的是grub还是grub2?
如果是grub的话,网上应该有很多修复教程,
你是单独/boot分区,因此,修复方法也和常规有些许差别。
你最好搜个grub的教程看看,因为偶近来主要用grub2,这个和grub区别比较大,很多东西都忘了,你自己搜一下,教程很多
回复 支持 反对

使用道具 举报

发表于 2011-5-20 15:14:50 | 显示全部楼层
如果是grub的话,看这个:
http://www.gnu.org/software/grub ... ng-grub_002dinstall

你没给出你的分区表,我没法给出详细命令。一般的环境,只需要使用类似于
  1. grub-install /dev/sda
复制代码
这个命令就行了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-20 21:46:53 | 显示全部楼层
/dev/sda1 是/boot
/dev/sda2 是/
我后面用grub-install /dev/sda 重新装过,文件都装在/boot/grub下了,
然后运行
root (hd0,0)
setup (hd0)
结果还是不行
回复 支持 反对

使用道具 举报

发表于 2011-5-21 18:31:07 | 显示全部楼层
Post by axjlhy;2139806
/dev/sda1 是/boot
/dev/sda2 是/
我后面用grub-install /dev/sda 重新装过,文件都装在/boot/grub下了,
然后运行
root (hd0,0)
setup (hd0)
结果还是不行

把你能想到的一些东西,比如说menu.lst之类都贴出来,不要这么惜字如金的。

检查一下你的/dev/sda1下面有没有一个boot的链接,没有就自己链一下。再不行的话,好好反思自己的人品,或者回的时候多分享一点信息。
回复 支持 反对

使用道具 举报

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

本版积分规则

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