升级UEFI
BIOS后导致双硬盘双系统上的ubuntu启动项丢失。先说说我的主机:两块硬盘一块是希捷2T(WIN7),另一块是西数320G(ubuntu),主板为ASUS990FX。这款主板具有目前最新的UEFI(Unified Extensible Firmware
Interface)用以替代老旧传统的BIOS。本来先进的UEFI在我的双盘双系统下运转良好,可就是因为一次升级后导致第二块盘的ubuntu下UEFI启动项丢失。本文同样也适用于单盘或者多盘重装windows后linux丢失的情况。
修复具体方法:
由于整个系统硬盘超过2T,传统的MBR硬盘主引导记录只能作用于小于2T的硬盘。所以系统在第二块ubuntu硬盘使用了GPT(GUID 碟片分割表)来替代传统的MBR。先进的UEFI可以读取从GPT下读取系统启动模块从而顺利进入系统。可是现在UEFI升级后被破坏,使用传统方法无法恢复。上网爬文和具体分析后发现两种方法可行:
第一种:恢复UEFI启动(即初始启动方式)。这种方法调用GRUB2并且读取/boot/efi目录并用以启动。
第二种:不使用UEFI,直接恢复GRUB启动。
第一种方法较难实现,感兴趣的读者可以移步 https://help.ubuntu.com/community/UEFIBooting 继续了解。以下是第二种方法。
首先进入BIOS(UEFI),将第二块ubuntu硬盘设置为第一启动盘。(重要!)
使用LIVECD(即为ubuntu安装盘)或者U盘启动,进入系统,打开终端,键入:
1)sudo -i 获取权限
2)fdisk -l
首先,在罗列出的计算机的盘符信息中找到Linux系统文件所在的盘符,我的系统在第二块硬盘第二分区,所以是sdb2。其次,在第二块硬盘信息起始位置查看是否具有GPT相关信息的提示,告诉你这块硬盘使用的是GPT而不是传统的MBR。如果有相关提示,打开ubuntu自带的硬盘分区工具Gparted,查看是否具有一个很小的(20M以下)分区用以存储GPT
BIOS分区。由于我的系统之前使用UEFI,所以没有这个分区。使用Gparted新建分区(20M以下),并且记录分区名,比如我的sdb4,在终端下键入:
修复具体方法:
由于整个系统硬盘超过2T,传统的MBR硬盘主引导记录只能作用于小于2T的硬盘。所以系统在第二块ubuntu硬盘使用了GPT(GUID 碟片分割表)来替代传统的MBR。先进的UEFI可以读取从GPT下读取系统启动模块从而顺利进入系统。可是现在UEFI升级后被破坏,使用传统方法无法恢复。上网爬文和具体分析后发现两种方法可行:
第一种:恢复UEFI启动(即初始启动方式)。这种方法调用GRUB2并且读取/boot/efi目录并用以启动。
第二种:不使用UEFI,直接恢复GRUB启动。
第一种方法较难实现,感兴趣的读者可以移步 https://help.ubuntu.com/community/UEFIBooting 继续了解。以下是第二种方法。
首先进入BIOS(UEFI),将第二块ubuntu硬盘设置为第一启动盘。(重要!)
使用LIVECD(即为ubuntu安装盘)或者U盘启动,进入系统,打开终端,键入:
1)sudo -i
2)fdisk -l
3)parted(进入parted程序)
4)在(parted)提示符后键入: set 4 bios_grub on
5)q (退出)
至此,GPT BIOS分区建立完毕。
现在就可以使用传统的方法恢复GRUB:
6)mount /dev/sdb2 /mnt将系统挂载到mnt目录下。注意:数字为你的Ubuntu所在盘符,sdb2与/mnt之间有一个空格。) (
7)grub-install --root-directory=/mnt /dev/sdb
如果没有特殊警告,则表示安装成功。这里,如果没有GPT BIOS分区,系统会提示失败:
warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
重启后顺利进入系统。最后再升级下新装的GRUB:
8)sudo update-grub
如果是单盘双系统或者双盘但都使用mbr不需要GPT的情况,可以跳过3,4,5步直接安装grub。
< 前一篇OpenFOAM : 误差图像实时输出
后一篇 >Ubuntu下ATI显卡驱动卸载与安装