|
|
发表于 2005-9-21 09:44:45
|
显示全部楼层
http://blog.csdn.net/xiaoshao_0_0/archive/2005/09/15/481810.aspx
硬盘分区的变化和grub不能启动的困扰
grub是目前linux系统普遍采用的启动管理工具
它有很多有点:
支持多种系统启动
支持很多文件系统
支持一个很简单的shell界面,包括了TAB补齐的功能(这个很重要)。
但是也有时候让你很苦恼,我今天就碰到了这种情况。就是在你的分区表发生变化以后,你没有即使修改你的grub.conf,有的时候甚至要重新setup grub,否则你就没有办法重新启动了。
我们具体通过grub.conf来看grub的机制:
default=0 #默认的启动选项
timeout=5 #倒计时
title Fedora Core (2.6.12-1.1398_FC4) #只是标题
root (hd0,7) #注意hd0,7=hda8
#grub.conf所在的分区,如果你有/ot分区的话,就是 /boot 的分区,如果没有就是 / 分区
kernel /vmlinuz-2.6.12-1.1398_FC4 ro root=LABEL=/ quiet
# 指定要加载的内核 ro=readonly root也可以 root=/dev/hda8
initrd /initrd-2.6.12-1.1398_FC4.img
# 指定最初的init指令的来源
如果你的分区表变了,而且变化发生在grub.conf所在的分区前边,这一般是你删除了某个分区,我是把windows分区D:,E:相当于 /dev/hda5,/dev/hda6 给删除了,那么,grub就会找不到你的grub.conf,结果是,它给我一个grub>
或者他即使找到了,比如,你有/boot分区,而且它的号码没变,这一般是你新建了一个分区或者是删除了/boot后面的分区,但是如果这个变化影响了你的/ 分区的话,你仍然会失败,在你开机的时候,内核init会报找不到文件的错误,这是由于这些文件在/分区上,而现在/分区的号码变了,这时候就要改到
kernel /vmlinuz-2.6.12-1.1398_FC4 ro root=LABEL=/ quiet
这一句,
我这次是直接指定了 root的目标:
kernel /vmlinuz-2.6.12-1.1398_FC4 ro root=/dev/hda8
grub.conf 是在 /boot/grub里面? 还是在/etc里面?或者是别的地方?
实际上,grub.conf 应该是 menu.1st,这个是grub的标准名字,在FC4里
/etc/grub.conf 是指向 /boot/grub/grub.conf的一个连接
/boot/grub/menu.1st也是这样的
我碰到的实际情况是,我修改了grub.conf但是启动的时候还是不行,我采用命令的方式,把上面这几行,依次输入:
root (hd0,5) 因为我删除了两个分区,/boot分区成为第5个
kernel /vmlinux-2.6.12.1447 root=/dev/hda8
这里没用/boot/vmlinuz**是因为我有/boot分区,而且第一句已经指定现在的root就是/boot分区
initrd /initrd-2.6.12.1447.img
这个是要与内核想对应的版本的。
然后就是输入
boot
我改了/boot/grub里面的grub.conf,但是重新启动以后没有作用。
改了/boot/grub里面的grub.conf应该有用的。
你要仔细看看有没有改错,有没有存盘。
实在不行你可以运行命令:grub
在grub里运行如下命令:
root (hd0,5) /*hd0是你第一个主盘,6是你的grub安装所在的分区减一*/
setup (hd0) /*这是写到MBR上*/ |
|