ubuntu下修复grub

1.livecd 修复
这种方法方便,解决比较彻底。
(1)准备容量大于1G的U盘一个,windows下用UltraIso制作livecd启动盘,重启,设置开机U盘启动,重启。
(2)进入u盘的ubuntu体验版,ctrl+alt+t打开终端,
        输入命令sudo fdisk -l 查看ubuntu在哪个分区,一般来说格式是linux(ext4)和出现83的那个/dev/sdax(x不一定是几)即为ubuntu,如果装了多个linux操作系统,还需仔细甄别,我的方法是都用mount /dev/sdax /mnt来一遍,然后根据/mnt下面的目录来看是哪个。
(3)假如你的ubuntu的 / 分区是sda7,又假如 /boot分区是 sda6,用livecd启动,在终端下输入

sudo -i
mount /dev/sda7 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt/boot /dev/sda

如果grub.cfg己丢失,或grub.cfg出现错误,需要重建的继续执行下面操作(不知道有没有就执行一遍):

mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt update-grub
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc

然后重启,grub就回来了。

(4)如果(3)中chroot时提示update-grub命令没找到,就重启。开机会出现grub>提示符,在该提示符下找回ubuntu可按照以下步骤:
(引自百度文库《grub2_全程讲解》)
比如启动第1硬盘第一逻辑分区的ubuntu系统:
grub>set root(hd0,4)
grub>linux /boot/vmlinux-xxx-xxxx root=/dev/sda4    //内核文件
grub>initrd /boot/initrd.img-xxx-xxxx
grub>boot
进入ubuntu之后执行
sudo update-grub
sudo grub-install /dev/sda
重启,引导找回
注:(1)(hd0,4)和dev/sda4要根据实际情况调整,ubuntu在哪个分区则选择对应的分区。可以grub>ls -l或者grub>ls (hd0,x)查看哪个是ubuntu的分区。
      (2) xxx指的是版本号,可以在命令输入到不确定的地方时按Tab获取。
2.grub rescue>
这种方法也是从网上看来的,http://www.2cto.com/os/201111/112327.html
(1) 先使用ls命令,找到Ubuntu的安装在哪个分区:
在 grub rescue>下输入以下命令:
 grub rescue>ls

会罗列所有的磁盘分区信息,比方说:

(hd0,0),(hd0,msdos1),(hd0,msdos2),(hd0,msdos3)或(hd0,1),(hd0,5),(hd0,3),(hd0,2)

(2) 然后依次调用如下命令: X表示各个分区号码
如果/boot没有单独分区,用以下命令:

 grub rescue>ls (hd0,X)/boot/grub

如果/boot单独分区,则用下列命令:

 grub rescue>ls (hd0,X)/grub
会列出一些文件,原帖说是几百个,我的/grub下只有不到十个文件。每个都试一遍,肯定有一个是。linux不能识别ntfs,可以识别fat,出现不能识别的文件系统说明肯定不是。出现bad filesystem(好像是这个名字)八成就是这个盘。

(3)如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:
以下是/boot没有单独分区的命令:

grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/boot/grub
grub rescue>insmod /boot/grub/normal.mod

以下是/boot 单独分区的命令:(这几句有待验证)

grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/grub
grub rescue>insmod /grub/normal.mod
这时字体变成纯白色,说明insmod成功。然后输入如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
重启,进入ubuntu之后,在终端执行:

代码:
      sudo update-grub
      sudo grub-install /dev/sda
到此grub彻底修复好了。

ps:第二种方法不万能,笔者经历过找不到normal.mod的情况, 最后还是用livecd修好的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值