加载中…
个人资料
夕杉
夕杉
  • 博客等级:
  • 博客积分:0
  • 博客访问:21,990
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

UEFI BIOS更新导致windows,Ubuntu双系统启动失败

(2013-06-24 18:30:34)
标签:

grub

linux

双系统启动

mbr

gpt

分类: 天天linux
升级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,在终端下键入:
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。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有