按照国际惯例,先说明我的环境:
硬件配置如下:
CPU:AMD A10-5800K (APU,HD 7660D)
主板:技嘉(GIGABYTE) F2A85X-D3H主板(大板)
内存:芝奇(G.SKILL)DDR3 1600 8G(4G×2双通道)
软件配置如下:
先用
UEFI + GPT
安装windows 7,然后安装ubuntu,用boot-repair成功修复引导。后面把ubuntu折腾得不行了,打算换linuxMint玩玩,又觉得前面给ubuntu的分区不合理,顺便
调整一下分区
,即原来的/boot分区的位置有变化。然后就正常安装linuxMint,可惜重启后就悲剧了。
重启后没出现可爱的grub引导界面,而是给我这个东东:
error: unknown filesystem
grub rescue >
下面提供解决类似这种启动问题的三种招式(
并不一定你也是出现和我同样的问题,但只要是grub引导问题,都可以按照以下方法解决
):
1:平淡无奇:使用boot-repair
开机用安装媒介引导(我是用u盘来安装系统的,如果你用光盘也没问题)进入linux环境,只是试用而已,不选安装。ubuntu/linuxMint都会有一个安装前的桌面环境提供给你,进入后调出 终端(可以按ctrl+alt+T),当然,你得首先把网络连通,再输入以下命令启动boot-repair:
$ sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
$ sudo apt-get install -y boot-repair && (boot-repair &)
你应该得到一个类似上图的界面,还犹豫什么,猛击”Recommended repair“吧,等几分钟后,你会得到一个类似下面的提示:
直接点OK,然后重启看看是否可以成功引导了,如果还是不能引导,请使用下面的第二招
2:渐入佳境:使用chroot
前面的步骤和招式1一样,先进入linux的安装桌面环境,联网,调出终端。首先
确认你的系统是安装在哪个分区的,最简单的方式是通过GParted依据分区大小来看,例如:
以上是我的分区,如果不能用gparted,可以用fdisk,或者blkid来看看:
$ sudo fdisk -l /dev/sda
$ sudo blkid
例如,我这里的分区规划是: sda5 挂到/ sda8 挂到 /usr sda9挂到/tmp
先做一些chroot前的准备工作:
$ sudo mkdir -p /mnt/mint
$ sudo mount /dev/sda5 /mnt/mint/ #sda5 对应到真实系统的 / 目录
$ sudo mount /dev/sda9 /mnt/mint/tmp #sda9 对应到真实系统的 /tmp 目录
$ sudo mount /dev/sda8 /mnt/mint/usr
$ sudo mount -t proc none /mnt/mint/proc
$ sudo mount -o bind /dev /mnt/mint/dev
$ sudo mount -o bind /sys /mnt/mint/sys
$ sudo mount -t devpts devpts /mnt/mint/dev/pts
由于我没有将/boot单独分区,所以/boot是在 sda5 里面,以上的主要是为chroot后的系统挂载必要的文件系统,如果你还有其他分区是单独分区的,尤其是 /etc /boot /usr 等分区,
一定要挂载
到对应的目录下。然后就是change root了:
$ sudo chroot /mnt/mint
输入以上命令后出现一个另外不同的提示符,那就表示你成功change过去了。这里的
/mnt/mint 就是真实系统
/ 分区对应的挂载点。
然后是进行grub的修复工作,依次输入以下命令:
# grub-install --recheck /dev/sda
# update-grub
然后就是退出change root环境了,依次输入以下命令:
# sync
# exit
这时候应该就会退回到原有的终端中来了,再倒着顺序卸载前面挂载的分区:
$ sudo umount /mnt/mint/dev/pts
$ sudo umount /mnt/mint/dev
$ sudo umount /mnt/mint/sys
$ sudo umount /mnt/mint/proc
$ sudo umount /mnt/mint/usr
$sudo umount /mnt/mint/tmp
$ sudo umount /mnt/mint
最后就是重启看看效果了,基本上一般的启动问题都会这样被修复掉,如果你的还是无法启动,就只有用第三招了
3:天地同归:删掉grub重装
重装grub的方式有手动和自动,这里提供最简单的自动方式。
前面的步骤和招式1一样,先进入linux的安装桌面环境,联网,调出终端。启动boot-repair:
$ sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
$ sudo apt-get install -y boot-repair && (boot-repair &)
不同的是这次不点"Recommended repair
",而是点下面三角符号后面的"Advanced options",会出现下面的界面,切换到“Grub Options”选项卡,
选第一项
"Purge Grub...",最新的可能和下面的图不一样,但还是有Purge 字样的:
然后点apply,会自动帮你干活的,期间会有对话框弹出来,要求你将弹出对话框的命令放到终端中去执行,照做就行(复制粘贴即可):
当然最后完成的时候也会弹出如招式1最后的对话,不用关心,直接重启,你会有惊喜的。
后记:我的启动问题就是用最后这种方式解决的,前面两种方式对调整分区后的系统无效,尤其是UEFI + GPT分区的时候,猜测可能是/boot位置有改动导致的。