DIY Fusion Drive:将Recovery HD添加到CoreStorage卷组


10

使用以下10.8中的方法创建“ DIY融合驱动器”后,我现在想知道如何将RecoveryHD分区添加到内部驱动器。

这是我在两个物理卷(128G SSD / 750GHD)上创建逻辑卷组的操作

(make a clone / backup of all your data first)
diskutil list (take note of the disk## of the two drives. In my case: disk0/disk1)
diskutil corestorage create fusion_volume_group disk0 disk1
diskutil corestorage list (take note of the Logical Volume Group UUID)
diskutil corestorage createVolume <UUID> jhfs+ FusionHD 749g
restore the clone onto the FusionHD

这很好用,但是现在我的RecoveryHD不见了。我想将其添加回去(它位于我从原始高清硬盘克隆的外部驱动器上)

现在是分区布局的样子:

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         119.7 GB   disk0s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:          Apple_CoreStorage                         749.3 GB   disk1s2
   3:                 Apple_Boot Boot OS X               650.0 MB   disk1s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS FusionHD               *744.5 GB   disk2

有谁知道diskUtil命令添加恢复HD?理想情况下,我现在在哪里?

Answers:


6

您需要先对驱动器进行分区,然后将Recovery分区放在一个物理驱动器上。它不能成为Fusion驱动器的一部分,因为它不太可能直接引导到Core Storage逻辑卷中(您需要单独使用引导加载程序)。

Ars Technica这篇有关Fusion驱动器的文章中记下分区结构。

最好的方法可能是通过在SSD或HDD上重新安装Mountain Lion重新开始,然后仅在适当的分区上重复Fusion过程。

完成标准安装后,请通过运行来检查分区diskutil list,这将给出类似于以下的输出:

/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *120.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            119.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

记下Macintosh HD分区的标识符(disk0s2在这种情况下)。

然后执行与之前相同的步骤,但是更改diskutil corestorage create fusion_volume_group命令以指定disk0s2(或您所用的等效名称)以及安装OS X 的驱动器的标识符。生成的命令应该类似于,diskutil corestorage create fusion_volume_group disk0s2 disk1 但请确保您输入的标识符正确。关键是我们要仅从Macintosh HD分区而不是整个驱动器中创建一个卷组(这样就不会擦除EFI和Recovery分区)。然后按照以前的步骤进行其余过程。


您知道执行该操作的diskutil命令是什么吗?
杰西·鲍尔斯

我添加了一些更多的信息,应该可以使用,但是我没有设置可以实际对其进行测试的设置。目前,Fusion驱动器的内容尚未完全记录在案,我们正在努力解决一些人通过反复试验得出的结论。请确保发布任何您在这里得到的结果。
robmathers 2012年

我认为您对指定disk0s2而不是disk0是正确的。我今天无法验证这一点,因为周末是我“撕裂机器并重建”的时间。现在我必须工作!我将尽快进行测试。
杰西·鲍尔斯

我刚刚将10.8.2安装到一个全新的空CS卷(120GB SSD + 640GB HDD)上,以查看ML安装程序是否会添加新的Recovery分区-事实并非如此。因此,以上说明应正确无误,将在下一个测试部署中进行尝试。
da4 2012年

成功!2008年末的MacBook Pro,光驱插槽中的第二个HD:我用256GB的SSD取代了主320GB的HD。@robmather之后:我在SSD上安装了Mountain Lion;从外部驱动器启动MBP;研究了diskutil list输出以获取SSD上“ Macintosh HD”的磁盘IDENTIFIER。将其与diskutil的corestorage命令一起使用以创建融合卷。从恢复卷启动,安装ML并将整个原始磁盘迁移到我的新560GB融合卷。一切正常,即使在VMWare上使用Ubuntu也是如此。订购了慢/便宜的1TB HD; 很快,我4岁的MBP就能使用8GB,1.25TB和SSD供电!
Bruce Van Allen

5

好的,所以我无需重新格式化或重新安装即可解决问题。希望大多数人不会遇到这种情况。有关如何避免首先删除Recovery HD的提示,请参阅@robmathers答案。

警告以下命令是相当底层的,可能会导致数据丢失。采取适当的预防措施(备份,克隆等)。

但是对于在RecoveryHD已经消失之后我所处的情况,这是我所做的:

  1. 备份所有数据/克隆驱动器
  2. 使用10.8创建可引导USB(或使用现有的HD)
  3. 引导到该备用驱动器(因此,您无需修改​​当前已安装的HD)
  4. 卸载Fusion HD
  5. 打开终端,切换为超级用户,然后按照以下说明进行操作:

列出当前配置,并记下要修改的驱动器。您的确切大小和GUID将与我的不同。使用您的数字而不是我的数字至关重要

diskutil corestorage list

记下要将恢复添加到的物理驱动器的UUID。

diskutil list

注意当前启动磁盘上恢复的确切大小(以字节为单位)(disk2s3可能与您有所不同)。

diskutil info disk2s3

调整要将恢复分区添加到的驱动器的物理卷的大小。要确定大小,请查看USB上现有的Recovery分区。就我而言,它不到1GB。对于以下命令,pvUUID是您要将恢复添加到的驱动器的UUID,其大小比当前大小小1GB。

diskutil coreStorage resizeDisk <pvUUID> <size> JHFS+ Recovery 784220160B

注意:您可能需要在以下步骤中反复卸载卷。OSX倾向于主动重新安装卷。

将新的“恢复”分区从jHFS +重新分区为Apple_Boot。首先,请注意分区的确切开始/大小。

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 

现在,删除分区,然后使用其他UUID重新添加分区(UUID是确定分区类型的原因)

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

现在,将整个恢复分区从良好分区复制到新分区:

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

非常感谢以下站点的参考。如果您不了解这些步骤中的任何一个,请仔细阅读它们。

http://blog.fosketts.net/2011/08/05/undocumented-corestorage-commands/

http://www.dmitry-dulepov.com/2011/09/how-to-create-mac-os-x-lion-recovery.html


更新:自11/12起,此设置对我来说就运行完美。
杰西·鲍尔斯

0

我在这篇文章中找到了一些很好的答案。我已经制定了循序渐进的指南,说明如何在第一个2.2 TB空间内用Windows分区(对于Windows 7/8 Bootcamp)对硬盘驱动器进行重新分区,并使用三个分区来重建融合驱动器。

您可以在http://jochem.ke-works.com/post/38498466700/bootcamp-on-3tb-fusion-drive-macosx上找到我的指南


1
关于“与众不同”的答案不仅需要链接。可以包含链接,但请在答案中进行总结或摘录。这个想法是使答案独立存在。
丹尼尔

0

杰西·鲍尔斯(Jess Bowers)发布了一个非常不错的解决方案,但直到这个解决方案对我来说,它都奏效了:

diskutil coreStorage resizeDisk <pvUUID> <size> JHFS+ Recovery 784220160B

输出为:

Error: -69720: There is not enough free space in the Core Storage Logical Volume Group for this operation

解决方案是首先调整逻辑卷的大小。对于以下命令,它lvUUID是逻辑卷的UUID,并且size等于current size of the Logical Volume- size of the Recovery partition(或者1GB less than the current size如果您逐字遵循Jess Bowers的解决方案):

diskutil coreStorage resizeVolume <lvUUID> <size>

在那之后,resizeDisk...他的其他解决方案就像是一种魅力。

PS。刚刚注册,所以我不能直接发表评论,对不起。


0

尝试从Time Machine备份中恢复Mac Mini

我有一个Mac Mini 2012,配备了〜120GB + 1TB融合驱动器。

尝试安装Ubuntu双启动时,我有点烦了,由于“创建恢复磁盘出错”而无法从Time Machine备份中还原它。

为了解决这个问题,我从磁盘上删除了所有类型的所有卷,然后重新开始,为恢复分区保留了5gb的空间。

由于我现在知道表的外观(恢复备份后明天将在明天发布该表),因此我有信心通过调整大小也可以做到这一点。

危险

如果磁盘上有数据,所有这些命令都是非常危险的。

我正在使用的实际命令是带有工厂安装的融合驱动器的其他人将需要使用的实际命令。

除非您尝试添加恢复驱动器的原因恰好是您的驱动器已经完全弄乱了,否则我不建议您执行以下步骤。

但是,除了这些帖子中的其他说明之外,它们还可以作为方便参考。

检查卷

看看有什么东西,然后先做适当的判断:

# See all physical partitions
diskutil list

# See all core storage volumes
diskutil cs list

删除所有卷

然后删除任何需要删除的内容:

# Delete a Logical Volume
diskutil cs deleteVolume <lvUUID>

# Delete a Physical Volume
diskutil cs deleteDisk <pvUUID>

# Delete a Logical Volume Group (everything)
diskutil cs delete <lvgUUID>

如果需要,请从头开始重新创建分区表:

# Re-partition and format the HDD
# `R` means Remainder
# `5G` means ~4.7GiB
diskutil partitionDisk disk0 2 GPT \
    JHFS+ Macintosh\ HD R \
    JHFS+ Recovery\ HD 5G

# Re-partition and format the SSD
# the remainder, `R`, is 100% of the usable disk space
diskutil partitionDisk disk1 1 GPT \
    JHFS+ Macintosh\ HD R

创建核心存储

如您所知和所爱,这将是“ Macintosh HD”

# Create a logical volume group named "Macintosh HD"
diskutil cs create Macintosh\ HD disk0s2 disk1

# Create a volume (of the same name) using 100% of the group
diskutil cs createVolume <lvgUUID> jhfs+ Macintosh\ HD 100%

注意:您可能需要在此阶段重新启动,以确保卷顺序正确。

卸载所有东西

diskutil unmount "Macintosh HD"
diskutil unmount "Recovery HD"
diskutil unmountDisk /dev/disk0
diskutil unmountDisk /dev/disk1

释放空间

先前创建“ Recovery HD”的目的(假设您要从Time Machine备份还原)是为了在其中一个磁盘的末尾保留额外的空间,以免将其吸收到任何其他卷中。

现在是时候释放它备份了,以便还原过程可以再次创建它。

首先再次检查以查看存在哪些分区。这些数字应该匹配的输出diskutil,但如果没有可以重新启动或信托gpt以上diskutil

sizes的不以字节为单位,但部门,这或许是4KiB上市。最好通过比率来分辨哪个是确切的大小。

gpt -r show /dev/disk0

现在,删除与“ Recovery HD”相对应的分区。重新启动后,对我来说已从disk0s3更改disk0s4为。

gpt remove -i 4

之后,我停止收到有关无法创建恢复分区的错误。我明天会了解TM恢复是否确实有效。我不确定会否,因为我不太了解备份驱动器上的磁盘活动。:-/

资源资源

注意:调整核心存储大小

我看过的许多内容仅显示了如何调整大小和创建新卷,但是您可以在不创建新卷的情况下进行调整。

# First resize the logical volume
diskutil coreStorage resizeVolume <lvUUID> 1T

# Next resize the physical volume
diskutil coreStorage resizeDisk <pvUUID> 997G

# Tada! You have free space!

注意:设置Recovery HD的类型

通过创建空白恢复卷无法获得成功。但是,如果您具有BaseSystem.dmg并能够还原它,则可能需要将卷类型设置为隐藏的恢复分区。

# Unmount to be able to make changes
diskutil unmount /dev/disk0s3

# Change the type from Apple_HFS to Apple_Boot
asr adjust -target /dev/disk0s3 -settype Apple_Boot

-1

这是概述该过程的视频,以及一些基准测试:http : //www.youtube.com/watch?v= I_odnNpv- FQ

您需要的命令:

diskutil列表

diskutil cs创建Fusion diskx diskx

注意:您可以使用任何要命名逻辑卷组的名称替换Fusion。

diskutil cs列表

diskutil coreStorage createVolume YOUR_DEVICE_ID_HERE jhfs +“ Macintosh Fusion” 100%

注意:您可以使用任何要命名驱动器的名称替换“ Macintosh Fusion”。如果您想像我们一样在名称中使用空格,请记住使用“”,否则就不需要它们。

安装完成后,打开终端并打开索引:

sudo mdutil -i关闭

如果要还原为2个单独的驱动器,请再次启动安装程序,打开Terminal并输入:

diskutil cs删除YOUR_DEVICE_ID

然后,您将可以格式化它们,但是您想使用终端或磁盘工具


目前尚不清楚您在做什么以制作恢复高清。您可以编辑不相关的项目以保持该线程的简洁和含义吗?
bmike
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.