2023年11月24日发(作者:)

起因

在通过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 引导系统的过程

如果同时存在MBRGUID,那么EFI会读取哪个分区表?(既混合分区,帖子里

有细说)

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

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

1. 如何确定磁盘所使用的分区表类型(MBR or GPT

2. 如何查看某个分区的GUID(是否是OS X分区的GUID变更导致引导时找不到此系

统)

3. 如何更改分区类型ID(如果是,那么我需要重新设置这个分区ID

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

1. Win8磁盘管理或者第三方工具DiskGenius都可以查看(具体为:如果显示“转换

MBR 磁盘”,那么该磁盘必然使用的是 GPT

2. DiskGenius 可以查看

3. DiskGenius 无法更改GPT格式磁盘的分区ID,需要使用Win8自带命令行程序:

`diskpart`

解决

首先是通过DiskGenius查看GUID,然后在全局唯一标识分区表查询,下图这个是微软的

基础数据分区的GUID需要更改为:48465300-0000-11AA-AA11-00306543ECACHFS

然后是通过`diskpart`命令更改GUID我先是直接在Win8系统下操作,因为分区已被Win8

挂载,尽管我也加了“override”选项,依旧是失败。想起之前通过BootCamp助理创建

Win8安装U盘,于是换了U盘引导,顺利更改。

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

命令如下:

1. list disk

2. select disk 0

3. list partition

4. select partition 2

5. set id=48465300-0000-11AA-AA11-00306543ECAC

复制代码

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

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

list disk

1. select disk 0

2. list partition

3. select partition 3

4. set id=48465300-0000-11AA-AA11-00306543ECAC

再打开DiskGenius软件查看GUID