zoukankan      html  css  js  c++  java
  • 【实用】OS X Lion restore Recovery HD Manually 手工创建 OS X Lion 恢复分区

     ❑ 从 10.7.2 beta 11C6X 开始,启用 iCloud Find My Mac 功能,必须需要 Recovery HD 的存在。由于这个分区比较特殊,常规方法不能够创建它。导致很多同学为此,需要重装 OS X Lion。当然,重装是一个非常常规,且安全的恢复 Recovery HD 的做法。但是,如果你非常讨厌重装系统,则通过手工创建,也是可以恢复它的。由于此项工作牵扯修改磁盘分区和较多的危险终端命令,所以,请各位首先要备份所有重要文件,三思而后行。一切不良后果与本人无关!

    • ❑ 首先说说这个 Recovery HD 的特殊性,通过终端执行命令 diskutil list 我们可以得知,Recovery HD 的分区格式。 示例如下:

    Buicks-MacBook-Pro:~ buick$ diskutil list

    /dev/disk0
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *512.1 GB   disk0
       1:                        EFI                         209.7 MB   disk0s1
       2:                  Apple_HFS OS X Lion               509.4 GB   disk0s2
       3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

    可以看出, Recovery HD 的分区格式,为 Apple_Boot,此类型分区,无法通过 Disk Utility 磁盘工具,进行创建,这也就是难点所在。

    ▼ ❑ 好在,OS X Lion 的强大终端,让一切有了可能。要重新创建这个 Recovery HD,你需要准备一个拥有 Recovery HD 的系统盘,这个系统盘可存在与内置,外置硬盘,或 U 盘中。如果你还没有这个带有 Revoery HD 的系统,则首先,你要安装 OS X Lion 到上述设备中。以 U 盘为例,你将 Lion 安装到 U 盘中后,则你会发现一个 Revoery HD,这个 U 盘系统留作备用。(关于如何将 OS X Lion  安装到外置硬盘或U盘中,本文不讨论,自行查阅即可)。下面开始恢复分区的步骤。

    • ❑ 首先,使用我们刚刚装到 U 盘中的系统,启动 Mac。使用 Disk Utility 对你需要恢复 Recovery HD 的磁盘,首先进行分区修复操作,然后,创建一个新的分区。大小不要小于 700MB,如果不能设置到很精确,也不要紧,我们可以手工修改它的大小,这个分区一定要紧跟在主分区之后。 然后使用 diskutil 终端命令,查看你准备好的那个 Recovery HD 的大小。如前面的例子可以看出,Revoery HD 为 650MB,则我们使用 diskutil 命令,调节我们刚刚创建的新分区。首先还是用 diskutil list 命令,找到新分区的设备名称,比如 disk0s3(这个名称根据你实际情况来写,此处为示例) 则调整分区大小的命令示例如下:

    sudo diskutil resizeVolume disk0s3 650002432B

    命令很好解释,disk0s3(这个名称根据你实际情况来写,此处为示例)  是我们通过 diskutil 命令查看到的新分区设备名,650002432B 则是新分区调整后的大小。也就是 650MB, 注意  650002432B 这个写法, 650002432 是大小,B(yetes) 是单位,中间没有空格!

    命令完成之后,记得在 Disk Utility 中卸载该分区。

    • ❑ 分区大小调节完毕后,则需要更改这个分区的分区格式,因为,Recovery HD 必须为 Apple_Boot 才能够有效。这时我们使用 gpt 命令。首先根据前一步的操作,我们知道新建分区的设备名是 disk0s3 那么,disk0 为硬盘设备名,s3 为分区编号(这个名称根据你实际情况来写,此处为示例)。我们使用 gpt 命令,首先得到我们新创建的分区,在整个磁盘的起始点。

    bash-3.2# gpt show disk0
             start       size  index  contents
                0          1         PMBR
                1          1         Pri GPT header
                2         32         Pri GPT table
               34          6
               40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
           409640  246725744      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
        247135384     262144
       247397528 1269528 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC   248667056    1402591
        250069647         32         Sec GPT table
        250069679          1         Sec GPT header

    从这个结果得知,新的分区,起点在 247397528 大小为 1269528 那么我们首先要做的,是删除此分区,(删除分区前,一定记得纪录分区起始点,大小)。命令如下:

    sudo gpt remove -b 247397528 -s 1269528 -t 48465300-0000-11AA-AA11-00306543ECAC disk0

    这样,就删除了刚才我们新创建的 650MB 分区,然后,再次进行创建。命令如下:

    sudo gpt add -b 247397528 -s 1269528 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0

    注意红色字体部分,分区 GUID (可以理解为类型编码) 是不同的,这个编码,才能够创建一个 Apple_Boot 格式的分区。

    • ❑ 通过1,2步骤,我们已经完成了 Apple_Boot 格式分区的创建工作,最后,是将我们新装系统中的 Recovery HD 内容,完整复制到新创建的 Revoery HD 分区中。可以简单的使用 dd 命令完成。示例如下:

    sudo dd if=/dev/disk2s3 of=/dev/disk0s3

    if 是源分区,of 是目标分区,这条命令的意思,就是将新装系统中的 Revoery HD 内容(/dev/disk2s3 这个名称根据你实际情况来写,此处为示例) 复制到我们手工创建的 Recovery HD 分区(/dev/disk0s3 这个名称根据你实际情况来写,此处为示例)中。整个复制过程依据极性性能不同而不同,请耐心等待。

    • ❑ dd 命令成功后,请再次运行 diskutil list 这个命令,验证是否成功。

    • ❑ 注意,如果在使用 disktutil resizeVolume 命令,或 got show 命令,时候,出现错误,或者 Resource busy 字样子,请对目标分区,进行 Repair (修复),和卸载分区操作。

  • 相关阅读:
    python爬取图片
    IDEA创建SpringBoot项目报错,不能连接https://start.spring.io/
    ES模块化的理解
    Web标准(网站标准)理解
    Mongodb安装
    Linux Ntp时间同步服务
    SentinelResource 注解
    Sentinel的流量控制
    Sentinel简介
    nacos安装
  • 原文地址:https://www.cnblogs.com/cosiray/p/2254284.html
Copyright © 2011-2022 走看看