DIY Fusion Drive: adicionando Recovery HD a um grupo de volumes CoreStorage

10

Depois de criar um "DIY Fusion Drive" usando os métodos abaixo na 10.8, agora estou pensando em como adicionar uma partição RecoveryHD à unidade interna.

Aqui está o que eu fiz para criar um grupo de volumes lógicos em dois volumes físicos (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

Isso funcionou muito bem, mas agora meu RecoveryHD se foi. Gostaria de adicioná-lo novamente (é na unidade externa que eu clonei no meu HD original)

Aqui está a aparência do layout da partição agora:

$ 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

Alguém conhece os comandos diskUtil para adicionar o HD de recuperação? Idealmente, depois do fato, onde é que eu estou agora?

Jess Bowers
fonte

Respostas:

6

Você precisará particionar as unidades primeiro, colocando a partição de recuperação em uma de suas unidades físicas. Ele não pode fazer parte da unidade Fusion, pois é improvável que você possa inicializar diretamente em um volume lógico do Core Storage (você precisa de um carregador de inicialização separadamente).

Anote a estrutura de partição neste artigo da Ars Technica sobre a unidade Fusion.

A melhor maneira de fazer isso é provavelmente começar do zero reinstalando o Mountain Lion no SSD ou no HDD e repita o processo do Fusion com a partição adequada.

Depois de fazer uma instalação padrão, verifique suas partições executando diskutil list, o que deve gerar uma saída semelhante a esta:

/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

Anote o identificador da Macintosh HDpartição ( disk0s2neste caso).

Em seguida, execute as mesmas etapas que você executou antes, mas altere o diskutil corestorage create fusion_volume_groupcomando para especificar o disk0s2(ou qualquer outro equivalente no seu caso) e o identificador da unidade na qual você não instalou o OS X. O comando resultante deve ser semelhante, diskutil corestorage create fusion_volume_group disk0s2 disk1 mas verifique se os identificadores estão corretos. A chave é que queremos criar um grupo de volumes apenas da partição Macintosh HD, não de toda a unidade (para que as partições EFI e Recovery não sejam apagadas). Em seguida, siga o restante do procedimento como você fez antes.

robmathers
fonte
Você sabe quais seriam os comandos diskutil para fazer essa operação?
Jess Bowers
Adicionei mais algumas informações para que funcionem, mas não tenho uma configuração para testá-la. O material da unidade Fusion não está documentado neste momento, e estamos trabalhando no que algumas pessoas inventaram por tentativa e erro. Não se esqueça de postar todos os resultados obtidos aqui.
precisa saber é
Eu acho que você está certo sobre especificar o disk0s2 em vez de disk0. Não posso verificar isso hoje, pois o fim de semana foi meu tempo de 'separar minha máquina e reconstruir'. Agora eu tenho que trabalhar! Vou tentar testar isso em breve.
Jess Bowers
Acabei de instalar o 10.8.2 em novos volumes CS vazios (120GB SSD + 640GB HDD) para ver se o instalador do ML adicionaria uma nova partição de recuperação - isso não aconteceu. Portanto, as instruções acima devem estar corretas, tentará a implantação do próximo teste.
da4 5/11/12
SUCESSO! MacBook Pro de final de 2008, segundo HD no slot da unidade óptica: Substituí o HD principal de 320 GB por um SSD de 256 GB. A seguir @robmather: instalei o Mountain Lion no SSD; inicializou o MBP a partir de uma unidade externa; estudou a diskutil listsaída para obter o IDENTIFIER do disco para "Macintosh HD" no SSD. Usado com os comandos de armazenamento de dados do diskutil para criar um volume de fusão. Inicializado a partir do Recovery Volume, instalei o ML e migrei todo o disco original para o meu novo volume de fusão de 560 GB. Tudo funciona, até o Ubuntu no VMWare. Pedi um HD de 1TB lento / barato; logo meu MBP de 4 anos liga w de 8 GB, 1,25 TB, SSD!
Bruce Van Allen
5

Ok, então eu resolvi o problema sem reformatar ou reinstalar. Espero que a maioria das pessoas não acabe nessa situação. Consulte @robmathers answer para obter dicas sobre como evitar a exclusão do Recovery HD em primeiro lugar.

AVISO os seguintes comandos são de nível bastante baixo e podem causar a perda de dados. Tome as devidas precauções (backup, clone, etc).

Mas para qualquer um na minha situação depois que o RecoveryHD já se foi, aqui está o que eu fiz:

  1. Faça backup de todos os dados / clone sua unidade
  2. Crie um USB inicializável (ou use um HD existente) com 10.8
  3. Inicialize na unidade alternativa (para não modificar o HD que você montou no momento)
  4. Desmonte o Fusion HD
  5. Abra o terminal, mude para superusuário e siga estas instruções:

Liste a configuração atual e anote quais unidades você modificará. Seus tamanhos exatos e GUIDs serão diferentes dos meus. É crucial usar seus números em vez dos meus .

diskutil corestorage list

Anote o UUID da unidade física à qual você está adicionando a recuperação.

diskutil list

Anote o tamanho exato em bytes da recuperação no disco de inicialização atual (disk2s3 pode ser diferente para você).

diskutil info disk2s3

Redimensione o volume físico da unidade à qual você deseja adicionar a partição de recuperação. Para determinar o tamanho, consulte @ a partição de recuperação existente no USB. No meu caso, era pouco menos de 1 GB. Para o comando a seguir, pvUUID é o UUID da unidade à qual você está adicionando a recuperação, o tamanho é 1 GB menor que o tamanho atual.

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

NOTA: pode ser necessário desmontar os volumes repetidamente nas etapas a seguir. O OSX tende a montar agressivamente os volumes.

Reparticione a nova partição "Recovery" de um jHFS + para Apple_Boot. Primeiro, observe o início / tamanho exato da partição.

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 

Agora remova a partição e adicione-a novamente com um UUID diferente (o UUID é o que determina o tipo de partição)

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

Agora copie toda a partição de recuperação da boa para esta nova:

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

Muito obrigado aos seguintes sites para referência. Leia-os antes de mergulhar, se você não entender nenhuma dessas etapas.

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

Jess Bowers
fonte
update: esta configuração está sendo executada perfeitamente para mim desde 11/12.
precisa saber é o seguinte
0

Encontrei boas respostas neste post. Elaborei um guia passo a passo sobre o reparticionamento do disco rígido com uma partição do Windows (para Windows 7/8 Bootcamp) no primeiro espaço de 2,2 TB e a reconstrução da unidade de fusão usando três partições.

Você encontrará meu guia útil em http://jochem.ke-works.com/post/38498466700/bootcamp-on-3tb-fusion-drive-macosx

jochem
fonte
11
As respostas no Ask Different precisam ser mais do que apenas um link. Não há problema em incluir um link, mas faça um resumo ou trecho da resposta. A idéia é tornar a resposta independente.
Daniel
0

Jess Bowers postou uma solução muito boa, mas funcionou bem para mim apenas até esta:

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

E a saída foi:

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

A solução é redimensionar o volume lógico primeiro. Para o seguinte comando, lvUUIDé o UUID do volume lógico e sizeé igual a current size of the Logical Volume- size of the Recovery partition(ou 1GB less than the current sizese você seguir a solução de Jess Bowers, palavra por palavra):

diskutil coreStorage resizeVolume <lvUUID> <size>

E logo depois disso resizeDisk...e o resto de sua solução funcionou como um encanto.

PS. Acabei de me inscrever para não poder comentar diretamente, desculpe.

user54088
fonte
0

Tentando recuperar o Mac Mini do Time Machine Backup

Eu tenho um Mac Mini 2012 com uma unidade de fusão de ~ 120 GB + 1 TB.

Eu tentei instalá-lo um pouco enquanto tentava instalar uma inicialização dupla do Ubuntu e não consegui restaurá-lo do meu backup do Time Machine devido a "Ocorreu um erro ao criar o disco de recuperação".

Para corrigir isso, removi todos os volumes de todos os tipos do disco e iniciei novamente, deixando 5 GB de espaço para a criação da partição de recuperação.

Como agora sei como a tabela acabou (que postarei de volta ... amanhã após a restauração do backup), estou confiante de que poderia ter feito isso redimensionando também.

PERIGO

Todos esses comandos são muito perigosos se você tiver dados no (s) disco (s).

Estou usando os comandos reais que eu usaria, que são os comandos reais que alguém mais com uma unidade de fusão instalada de fábrica precisaria usar.

A menos que você esteja tentando adicionar uma unidade de recuperação, porque sua unidade já está totalmente desarrumada, NÃO recomendo seguir estas etapas.

NO ENTANTO, eles podem ser uma referência útil, além de outras instruções nesses posts.

Inspecionando Volumes

Veja o que está lá e faça os julgamentos adequados primeiro:

# See all physical partitions
diskutil list

# See all core storage volumes
diskutil cs list

Removendo todos os volumes

Em seguida, exclua o que precisar ser excluído:

# 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>

Recrie a tabela de partição do zero, se necessário:

# 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

Criar armazenamento principal

Será "Macintosh HD", como você conhece e ama

# 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%

Nota: convém reinicializar neste estágio para garantir que os volumes estejam na ordem correta.

Desmonte tudo

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

Liberar espaço

O objetivo de criar o "Recovery HD" anteriormente - assumindo o cenário em que você deseja restaurar a partir de um backup do Time Machine - é apenas reservar espaço extra no final de um dos discos para que não seja absorvido por nenhum outro volume .

Agora é hora de liberá-lo para que o processo de restauração possa criá-lo novamente.

Primeiro verifique novamente para ver quais partições existem. Os números devem corresponder à saída de diskutil, mas se não reinicializar ou confiar gptnovamente diskutil.

Os sizes não estão listados em bytes, mas em setores, que provavelmente são 4KiB. Pode ser melhor dizer qual é qual por razão do que por tamanho exato.

gpt -r show /dev/disk0

Agora remova a partição correspondente a "Recovery HD". Após uma reinicialização que mudou de disk0s3para disk0s4para mim.

gpt remove -i 4

Depois disso, parei de receber o erro de não conseguir criar uma partição de recuperação. Descobrirei amanhã se a recuperação da MT realmente funcionou. Não tenho certeza, pois não ouço muito a atividade de disco na unidade de backup. : - /

Recursos

Nota: redimensionando o armazenamento principal

Muitas das coisas que observei mostravam apenas como redimensionar E criar um novo volume, mas você pode redimensionar sem criar um novo volume.

# 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!

Nota: Defina o tipo de HD de recuperação

Não consegui obter sucesso criando um volume de recuperação em branco. No entanto, se você tiver o BaseSystem.dmg e conseguir restaurá-lo, convém definir o tipo de volume como uma partição de recuperação oculta.

# 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
CoolAJ86
fonte
-1

Aqui está um vídeo descrevendo o processo, além de algumas referências: http://www.youtube.com/watch?v=I_odnNpv-FQ

Comandos que você precisará em ordem:

lista diskutil

diskutil cs criar Fusion diskx diskx

NOTA: Você pode substituir o Fusion pelo nome que desejar para o seu Grupo de volumes lógicos

lista diskutil cs

diskutil coreStorage createVolume YOUR_DEVICE_ID_HERE jhfs + "Macintosh Fusion" 100%

NOTA: Você pode substituir "Macintosh Fusion" pelo nome que desejar para sua unidade. Lembre-se de usar "" 's se você quiser um espaço em seu nome como nós, caso contrário você não precisará deles.

Após a conclusão da instalação, abra o terminal e o turno da indexação:

sudo mdutil -i desligado

Se você deseja reverter para 2 unidades separadas, inicialize novamente no instalador, abra o Terminal e digite:

diskutil cs delete YOUR_DEVICE_ID

Você poderá formatá-los como quiser usando o Terminal ou o Utilitário de Disco

user34140
fonte
Não está claro o que você está fazendo aqui para fazer a recuperação em HD. Você poderia editar os itens não relacionados para manter esse segmento mais enxuto?
bmike