鸿 网 互 联 www.68idc.cn

通过误操作带来的grub菜单丢失推荐

来源:互联网 作者:佚名 时间:2018-02-25 10:28
由于本地的一台测试服务器分区十分不合理,我准备做适当的调整,可是又不能损坏当前正在运行的linux环境.有点费劲.机器只有一个硬盘,大小80g,linux下面显示为/dev/had,当前的分区情况如下 将整个扩展分区都划给了逻辑驱动器:windows下的D盘,linux下显示为/dev/h
  由于本地的一台测试服务器分区十分不合理,我准备做适当的调整,可是又不能损坏当前正在运行的linux环境.有点费劲. 机器只有一个硬盘,大小80g,linux下面显示为/dev/had,当前的分区情况如下
将整个扩展分区都划给了逻辑驱动器:windows下的D盘,linux下显示为/dev/hda5 由于分区已经划满了(3主+1扩展),导致40G的空间不能使用. 所以我就想把20G的干掉,用40G的来做D盘.毕竟损失20G要划算点.   我在windows下删除了扩展分区,然后将最后的40G划为主分区,然后格式化,盘符为windows下的D盘.所以当前的情况是4个主分区.具体信息如下
/dev/hda4 注:这里说”正常情况下”是因为现在我们还未进linux,所以这只是我推测的应该的情况.   分区格式化都进行完毕了,重启机器,发现grub列表没有了,机器直接进grub 提示符.我知道自己在windows下忘记grub这个东东了… 先看能不能进windows 在grub 下执行 chainloader  (hd0,0)+1 启动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
# Note that you do not have to rerun grub after making changes to this file # NOTICE:  You do not have a /boot partition.  This means that #  all kernel and initrd paths are relative to /, eg. #  root (hd0,2) #  kernel /boot/vmlinuz-version ro root=/dev/hda3 #  initrd /boot/initrd-version.img #boot=/dev/hda default=1 timeout=10 splashimage=(hd0,2)/boot/grub/splash.xpm.gz title Red Hat Linux (2.4.20-8smp)   root (hd0,2)   kernel /boot/vmlinuz-2.4.20-8smp ro root=LABEL=/   initrd /boot/initrd-2.4.20-8smp.img title winXP   rootnoverify (hd0,0)   chainloader +1   很显然 (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硬盘,实在是浪费啊.希望大家提点一下.
网友评论
<