您的位置:首页 > 其它

经验分享:双系统下丢失OS X系统引导的修复方法

2017-12-18 17:03 501 查看

起因

在通过Boot Camp安装完Win8之后,发现只有一个分区,就在Win8的磁盘管理中通过“压缩卷”功能对当前系统分区操作,扩展了一部分未使用的容量出来,于是在重启系统之后发现引导界面中“Macintosh HD”引导项不见了,在一番折腾之后(貌似是合并刚刚扩展出来的空闲空间)我把“Recovery HD”也弄丢了。。。



现象

尝试着回忆之前做过的操作,并试着修复,不过失败了,把当前情况记录如下:

在Windows系统下可以正常加载OS X分区(Boot Camp驱动已装),分区类型显示为HFS(右键该分区,查看属性)
在第一次重启时仍可看到“Recovery HD”,进入“Recovery HD”后,OS X 分区显示为:disk0s2,分区类型显示为:“MS-DOS”(也或许是“MS-FAT”之类,此部分为回忆,细节已忘)


分析

既然分区内数据都在,并且在Recovery环境下显示的分区类型有误,猜想可能跟分区表/分区格式有关。在一番查找后,看到本论坛的一个帖子:【Mac技术组】Mac 系统引导过程概述 & BootCamp 的秘密,仔仔细细地读了两遍后我注册了威锋网账号。因为这篇文章写得太好了,解答了我以下几个问题:

磁盘分区表目前主要有两种:MBR 与 GPT,并且把 GPT 的结构大概读了下
OS X 的磁盘分区结构
Mac 引导系统的过程
如果同时存在MBR与GUID,那么EFI会读取哪个分区表?(既混合分区,帖子里有细说)


于是我决定记录下这个问题,自己的思考以及最后如何解决问题的,并分享出来。

在了解了帖子中的大部分概念后,这个情况就感觉清楚多了,那么我需要解决这几个问题:

1.如何确定磁盘所使用的分区表类型(MBR or GPT)
2.如何查看某个分区的GUID(是否是OS X分区的GUID变更导致引导时找不到此系统)
3.如何更改分区类型ID(如果是,那么我需要重新设置这个分区ID)


对于以上几个问题,简单回答如下:

Win8磁盘管理或者第三方工具DiskGenius都可以查看(具体为:如果显示“转换成 MBR 磁盘”,那么该磁盘必然使用的是 GPT)
1.DiskGenius 可以查看
2.DiskGenius 无法更改GPT格式磁盘的分区ID,需要使用Win8自带命令行程序:`diskpart`


解决

首先是通过DiskGenius查看GUID,然后在全局唯一标识分区表查询,下图这个是微软的基础数据分区的GUID,需要更改为:48465300-0000-11AA-AA11-00306543ECAC(HFS)



然后是通过
diskpart
命令更改GUID,我先是直接在Win8系统下操作,因为分区已被Win8挂载,尽管我也加了“override”选项,依旧是失败。想起之前通过BootCamp助理创建的Win8安装U盘,于是换了U盘引导,顺利更改。

通过U盘启动后进入“修复计算机”,找到并打开CMD,在CMD下执行
diskpart
,子命令如下:

list disk
select disk 0
list partition
select partition 2
set id=48465300-0000-11AA-AA11-00306543ECAC


在更改分区ID后,关机再开机,同时按住Option键:Macintosh分区回来了^_^



下图是更改“Recovery HD”分区的(子命令可以缩写为前三个字符)



结语

建议大家遇到问题尽量多做思考,配合搜索引擎自己了解问题,解决问题的同时就是在学习
如果对Mac OS X启动与磁盘分区表感兴趣,多看几遍这个帖子:【Mac技术组】Mac 系统引导过程概述 & BootCamp  的秘密
特别感谢pysense写的文章 http://bbs.feng.com/read-htm-tid-7296511.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  经验分享