注:此问题适合使用mbr分区进行的安装,就是老版安装方法,uefi进行安装的,此方法不适用
问题描述
硬盘已分区,在一个分区上安装了Linux,在另一个分区上安装了windows,或者本来安装了双系统,重新安装了Windows,都会导致启动时不会进入Linux的grub引导界面,而是直接进入windows
这是因为linux会认windows的启动,但是windows会覆盖linux的启动,所以一般都是先安装windows再安装ubuntu,就可以从ubuntu的引导选择系统进入;或者使用EasyBCD在windows先建立索引,再安装Ubuntu
在网上找了许多解决办法,有说使用EasyBCD进行引导的,但是失败了,有说直接重装Ubuntu的,bullshit,我的文件全在Ubuntu的系统上呢,环境什么的很难搭建好吗!!
解决办法
需要用到
Ubuntu系统,一个4G及以上大的U盘,UltraISO制作映像
步骤
1. 用UltraISO在U盘上制作Ubuntu的磁盘映像,作为启动引导盘,制作方式百度,略
2. 插上U盘,重启计算机,按F12(不同计算机不同)进入BIOS界面,U盘引导打开。然后使用选择你的U盘进入
3. 有两个选择,选在该光盘上试用ubuntu系统
4. 终端输入指令:sudo -i(获得管理员权限)
5. 输入:fdisk -l(小写“L”,查看盘符列表)
出现以下信息:
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x70f7ab9c
Device Boot Start End Blocks Id System
/dev/sda1 1 1627 13060096 27 Unknown
Partition 1 does not end on cylinder boundary.
/dev/sda2 * 1627 1639102400 7 HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3 1639 8166 52429859 7 HPFS/NTFS
/dev/sda4 8167 38913 246975277+ 5 Extended
/dev/sda5 8167 32385 194539082+ 7 HPFS/NTFS
/dev/sda6 32386 38788 51432066 83 Linux
/dev/sda7 38789 38913 1004031 82 Linux swap / Solaris
然后找到ID为83的盘符,根据上面显示的信息可知当时装ubuntu时是装在sda6这个分区。
看到83 Linux的瞬间热泪盈眶啊!
6. 终端输入:mount /dev/sda6 /mnt(挂载分区,sda6是我的83 Linux的分区,mount后有空格,sda6后有空格)
7. 终端输入:grub-install --root-directory=/mnt /dev/sda(root前是两个短横线,mnt后面有空格)
出现Installationfinished,No Error Reported
表示成功
8. 现在,Ubuntu引导基本恢复,电脑重启后,可以看到熟悉的ubuntu引导界面,进入ubuntu,终端输入:sudo update-grub,最后出现done,恢复工作基本结束
但是!但是!但是!到这里还没有结束,刚刚辛辛苦苦装的windows进不去了,重装不是又重复了上面的步骤吗?
*9. 终端指令:sudo gedit /etc/default/grub(或者使用vim,方便就行)看到 GRUB_DEFAULT=0 改为 GRUB_DEFAULT=2,保存,然后:sudo update-grub
到此结束
(幸亏赶在别人发现之前完成了,虚惊~)
参考网站:
海子的cnblog、知乎TensorFlow Boys的回答