当前位置: 首页 > Linux相关 > 正文

双系统修复Ubuntu 12.04 GRUB引导

        由于linux采用的是GRUB引导,但是Windows没有采用了不同的引导程序,但是在MBR种只能存在一种引导方式,这就存在一个问题,如果安装Linux和Windows的双系统的话,那么势必将出现引导问题:

情况一:先安装安装的是Windows系统,然后安装的是LInux系统

由于linux使用的GRUB可以包含windows的引导,所以一般不会存在什么问题

如果先安装了Windows后安装Linux不能进入WIndows的话,那么进入恢复模式后,更新grub即可,grub会自动的添加WIndows的引导项

情况二:先安装linux。后安装的Windows,

      由于安装的Windows会覆盖原来的grub引导记录,因此这样的安装顺序将导致一个很普遍的问题:不能进入linux系统,因为linux系统的引导被覆盖了

  另外的可能还有意外的删除了LInux的引导或重新修改了mbr,那么也会导致不能进入Linux

结合网上的方法,本文侧重于Grub的恢复:

    首先,要申明的一点的是,对于不同的LInux系统而言,引导的命令是不同的,比如RedHat/Centos,如果丢失不能进入系统,那么可以增加一条如下的命令就可以重新进入系统:

root (hd0,6)    kernel /vmlinuzinitrd /initrd.img

我们假设linux 的root分区就在第一个磁盘的第六个分区上,那么就可以写root(hd0,6)

后面的两个命令”/”接的是具体的文件名,不同版本不同

但是对于Ubuntu,这样的通用方式却不能启动,那么只能借助LiveCD来重新安装GRUB:

1.从U盘或LiveCD进入Ubuntu(注意,这里进入的Ubuntu是你的U盘或LiveCD上的Ubuntu)

2.打开终端,输入:

sudo fdisk -h

上面的命令可以看到所有的分区,根据分区的block值来判断那个是LInux的/分区,可以根据大小来判断,那个的block值和原来linux系统的根分区相似,那么分区就是linux的根分区,

如果实在不知道,那么挂载全部的分区,然后依次查看所有的分区的文件也可以确定,确定完后,记得卸载挂载过的分区,这里我们假设分区为sda7

3.挂载根分区:

sudo mkdir /mnt/root #创建root目录用于挂在根分区
sudo mount /dev/sda7 /mnt/root #挂载分区到/mnt/root目录下 

4.如果你的boot分区和根分区不为同一个分区的话,那么将boot分区挂载到之前挂载的根分区的boot目录下,:

     假设boot分区为:sda10

sudo mount /dev/sda10 /mnt/root/boot #因为之前已经将根分区挂载到/mnt/root目录下了,因此将boot分区挂载到该目录的boot目录下 

5.安装grub:

sudo grub-install --root-direcotory=/mnt/root /dev/sda 

6.安装完成后重启即可,如果原先的WIndows的引导消失,进入恢复模式的linux,然后选择更新grub即可

希望本文能够帮助到大家,本方法亲测成功,如果失败或有疑问的话,欢迎大家留言,我会尽力帮助解决



本文固定链接: http://kuaile.in/archives/1247 | 蒲公英的博客

该日志由 蒲公英 于2012年11月26日发表在 Linux相关 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 双系统修复Ubuntu 12.04 GRUB引导 | 蒲公英的博客
关键字:

双系统修复Ubuntu 12.04 GRUB引导:等您坐沙发呢!

发表评论


You must enable javascript to see captcha here!

快捷键:Ctrl+Enter