使用官方工具创建独立的 Mac OS X 恢复模式引导盘

最近由于某些原因给一台 Mac 装系统,且不打算保留 OS X 分区(至于为什么拿 Mac 装 Windows 这种形而上的问题,并不是自用机器),但是想保留 cmd+R 恢复模式的 base system,那个类似 PE 的东西在操作系统崩掉的时候还是有点好用,然而在 Windows 打开磁盘分区工具都没发现有这样的分区,当时理想的情况是在不影响 Mac 的 cmd+R 功能的前提下 OS X 的分区容量全部划给 bootcamp,折腾半天发现并没有达成目的,格式化 OS X 分区之后 cmd+R 就只剩下了固件中保留的网络恢复模式,每次进入都要下载一个完整的 recovery disk image。

想了想似乎是当时手贱调整分区的时候把分区末尾错误的合并进了空白分区里,OS X 系统本身倒是没有挂,但是恢复分区就没有了,由于这篇文章拖的太久已经不记得当时怎么操作的了- –

不过好在发现了官方给的 recovery disk assistant,参见 https://support.apple.com/zh-cn/HT202294 可以用来制作恢复模式的引导盘,用了一下似乎原理就是从本机的 recovery hd 里解压磁盘镜像的内容到U盘里:

官网下载地址

这个工具是完全 GUI 的,使用非常简单,插上U盘,打开这个工具,选中U盘,下一步,完事。

顺带一提,diskutil是水果的一个命令行磁盘操作工具,当一个 Linuxer 打开 Mac 的时候会发现fdisk

没有 -l 参数,就会很懵逼,实际上 Mac 上的 fdisk 是针对 DOS MBR 分区的磁盘工具,正确的姿势应该是使用diskutil list列出磁盘分区,就能看到 disk0s3 的 recovery 分区,分区类型标注为 Apple_boot 实际上还是一个普通的 HFS,不过是隐藏的,图形界面的 disk utility 在10.11之后被大幅削减了功能,连这个分区都看不到了:

$ diskutil list /dev/disk0 (internal, physical): 
#: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.3 GB 
disk0 1: EFI EFI 209.7 MB 
disk0s1 2: Apple_HFS Macintosh HD 429.4 GB 
disk0s2 3: Apple_Boot Recovery HD 650.0 MB 
disk0s3 4: Microsoft Basic Data BOOTCAMP 70.0 GB disk0s4

事后也整理了一下 base system/recovery disk 的关系:Mac 在系统分区的末尾有一个恢复分区,里面有压缩的 OS X base system 的磁盘镜像(/com.apple.recovery.boot/BaseSystem.dmg),在进入恢复模式的时候读取这个镜像(如果分区或镜像不存在,则进入网络恢复模式下载一个镜像),挂载 RAM disk,在 OS X 正常启动的时候,/dev/disk0s3 这个分区是不被挂载的。

通过以下命令可以在正常启动的 OS X 下挂载 recovery disk:diskutil mount /dev/disk0s3

从磁盘镜像中挂载 base system, hdiutil mount /Volumes/Recovery\ HD/com.apple.recovery.boot/BaseSystem.dmg -noverify

参考链接:

https://apple.stackexchange.com/questions/22941/what-is-the-mac-os-x-base-system-disk-image-on-my-2011-macbook-air/

http://superuser.com/questions/671725/what-is-the-equivalent-of-the-linux-command-sudo-fdisk-l-in-macos


本文链接:https://www.starduster.me/2017/02/18/osx-recovery-disk-assistant/
本站基于 Creactive Commons BY-NC-SA 4.0 License 允许并欢迎您在注明来源和非商业使用前提下自由地对本文进行复制、分享或基于本文进行创作。
请注意:受限于笔者水平,本站内容可能存在主观臆断或事实错误,文中信息也可能因时间推移而不再准确,在此提醒读者结合自身判断谨慎地采纳。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据