通过误操作带来的grub菜单丢失
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yahoon.blog.51cto.com/13184/47848 | |||||||||||||||||||||||||||||||||||||
通过误操作带来的grub菜单丢失
由于本地的一台测试服务器分区十分不合理,我准备做适当的调整,可是又不能损坏当前正在运行的linux环境.有点费劲.
机器只有一个硬盘,大小80g,linux下面显示为/dev/had,当前的分区情况如下
将整个扩展分区都划给了逻辑驱动器:windows下的D盘,linux下显示为/dev/hda5
由于分区已经划满了(3主+1扩展),导致40G的空间不能使用.
所以我就想把20G的干掉,用40G的来做D盘.毕竟损失20G要划算点.
我在windows下删除了扩展分区,然后将最后的40G划为主分区,然后格式化,盘符为windows下的D盘.所以当前的情况是4个主分区.具体信息如下
注:这里说”正常情况下”是因为现在我们还未进linux,所以这只是我推测的应该的情况.
分区格式化都进行完毕了,重启机器,发现grub列表没有了,机器直接进grub>提示符.我知道自己在windows下忘记grub这个东东了…
先看能不能进windows
在grub>下执行
chainloader (hd0,0)+1
boot
启动windows完全正常
注:grub下与linux的磁盘表达方式稍微有不同,hd0即为linux下的hda,后面接的0,实际上是第一个分区,即(hd0,0)相当于linux下的hda1
翻阅了相关资料,知道需要重建MBR才能找回grub的启动菜单,所以重启机器进入grub后执行
root (hd0,1)
setup (hd0)
注:这个就是重建mbr的过程,(hd0,1)即为hda2,也就是linux所在的分区,即grub配置文件grub.conf所在的分区.
好了以后会提示success,这个时候重启机器,发现花屏,grub菜单有,但是启动linux提示路径错误.这是因为grub.conf中的路径还未修改,我们需要登陆到linux系统以后才能修改.既然能够启动windows,当然也是可以启动linux的.如何启动呢?查看grub.conf的内容就可以了.在grub>提示符下面cat是可以用的.所以执行
cat (hd0,1)/boot/grub/grub.conf
因为(hd0,1)就是linux的根分区,所以上面的命令实际上就是cat /boot/grub/grub.conf
很显然 (hd0,2)这个路径是不对的,应该是(hd0,1).我们按照上面的内容在grub>下执行
root (hd0,1)
kernel (hd0,1)/boot/vmlinuz-2.4.20-8smp ro root=/LABEL=/
initrd (hd0,1)/boot/initrd-2.4.20-8smp.img
然后执行boot 就可以正常启动linux了
我们既然已经知道是grub.conf路径设置的错误导致的问题,所以我们现在直接在linux里面将它改过来就应该OK了.分两步:
1.首先在启动linux的时候,提示swap分区所在的/hda4未找到,我们知道现在的swap应该是/hda3了,所以进linux之后,我们先编辑/etc/fstab文件,将swap的分区改为/dev/hda3
2.然后我们来修改grub.conf
vi /boot/grub/grub.conf
将里面的(hd0,2)都改为(hd0,1)
别忘记了要重新的修改一次MBR才行.在linux命令行下输入grub,等几秒钟就进去了grub>提示符,同样的执行
root (hd0,1)
setup (hd0)
退出以后,重启机器,一切正常!
另外,请教一下,我如何才能使用那未分配的20G硬盘,实在是浪费啊.希望大家提点一下. 本文出自 “yahoon的小屋” 博客,请务必保留此出处http://yahoon.blog.51cto.com/13184/47848 本文出自 51CTO.COM技术博客 |



yahoon
博客统计信息
热门文章
最新评论
友情链接