Windows7(MBR)与Ubuntu(GPT)双分区表grub引导被删除修复

最近因工作需要安装Ubuntu,电脑装了一块256G SSD和一块3T HDD,Windows安装在SSD中(因某些**需要,你懂的,所以只能用MBR分区表),Ubuntu就不得不装在HDD中(MBR不支持3T的硬盘,故使用GPT)。后装的Ubuntu自带的grub已经能同时引导Windows7和Ubuntu启动了(此时未用UEFI,是使用BIOS启动到MBR与GPT磁盘),然而今天360修复了下MBR,导致grub被覆盖。MBR的Windows7不能用EasyBCD引导GPT磁盘的Ubuntu启动,在Ubuntu LiveCD模式下也不能用Boot Repair修复grub(提示GPT detected. Please create a BIOS-Boot partition” error when using boot-repair)。

本文就修复grub流程做一个说明:

1. 用Ubuntu的安装盘(U盘或光盘均可)进入LiveCD模式。

Windows7(MBR)与Ubuntu(GPT)双分区表grub引导被删除修复

上图表明我的Ubuntu安装的设备位置为/dev/sdb4,由于没有单独为boot创建分区,故boot为“/”路径下的一个目录;同时启动引导器安装在设备/dev/sda,这两个位置依你初次安装Ubuntu的配置来定,稍后需要这两个参数,不知道的可以重新打开安装器看看,或者在root用户(使用sudo -i进入)下使用parted -l命令(GPT磁盘用fdisk命令无效)查看。

2. 切换为root用户(sudo -i),挂载原来的Ubuntu“/”路径

Windows7(MBR)与Ubuntu(GPT)双分区表grub引导被删除修复

mount /dev/sdb4 /mnt(将前面的Ubuntu“/"路径挂载到/mnt下,为方便操作就不必挂载到/mnt/sub1这样的路径了)。

3. grub-install --boot-directory /mnt/boot --target i386-pc /dev/sda

Windows7(MBR)与Ubuntu(GPT)双分区表grub引导被删除修复

其中/dev/sda为前文提到的启动引导器安装位置,执行后提示Installation finished. No error reported.就表示成功,最后执行umount /mnt并重启。

参考文献:How to resolve the “GPT detected. Please create a BIOS-Boot partition” error when using boot-repair?