由于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