Alterar capacidade do DMG


20

Ao mudar o meu disco rígido do Mac para um SSD, encontrei o seguinte problema:

Criei uma imagem DMG do meu disco rígido antigo com capacidade de 320 GB. O arquivo DMG lembrou e salvou a capacidade da imagem, e o problema é que meu SSD tem apenas 120 GB. Portanto, o DMG não pode ser usado se eu não puder diminuir a capacidade de alguma forma.

EDIT : A quantidade total de espaço usado na imagem é de apenas 15 GB.

Eu olhei, hdiutilmas na verdade sou um desenvolvedor de ruby ​​on rails, então não entendo essas coisas.

Existe alguma maneira com este ou outro utilitário para diminuir a capacidade do DMG?

Obrigado!

Respostas:


39

Não há uma boa maneira via GUI que eu já vi fazer isso - você precisa usar hdiutilo que pediu. É um comando rápido. Para redimensionar (altere 25G para o que você quiser),

hdiutil resize -size 25G /PATH/TO/DISK/IMAGE.dmg

Outra maneira de compactá-lo é clonar a imagem do disco em um pacote esparso e depois compactá-lo. Isso pode ou não funcionar, dependendo da quantidade de compactação.

Primeiro, crie a imagem de disco que reflete sua imagem de disco antiga:

hdiutil convert /location/of/disk.dmg -format UDSP -o /PATH/TO/NEWIMAGE.sparseimage

Em seguida, compacte a imagem esparsa resultante:

hdiutil compact /PATH/TO/NEWIMAGE.sparseimage

Se esses comandos não funcionarem, isso tem algo a ver com a sua imagem de disco e / ou permissões.

Passei muito tempo brincando hdiutile está longe de ser impecável - encontrei e enviei bugs no Snow Leopard que ainda não foram corrigidos no Mountain Lion; portanto, se você tiver um comportamento estranho, não fique desanimado!


Eu tentei isso, mas o verbo redimensionar gera um problema de permissão, agora estou criando uma imagem de disco RW para ver se isso funciona.
Tim Baas

Com a minha imagem de disco RW, pude usar o verbo redimensionar e reduzir a imagem para 120G, resultando em uma capacidade de 128,85 GB .. Então esse é o caminho certo, mas ainda não é suficiente para caber no meu SSD. O verbo compacto não funciona, diz ele compact failed - function not implemented.
quer

@ TimBaas Meio atrasado, mas se você tiver problemas com permissões (talvez você não tenha acesso de gravação no DMG), poderá usá-lo sudo hdiutil resize -size 25G /PATH/TO/DISK/IMAGE.dmg. Acabei de fazer isso com minha imagem de disco de backup do Time Machine e ela não pareceu quebrar nenhuma permissão.
sudo

Eu converti para uma imagem esparsa com seu segundo comando, mas nem o compactnem o resizefuncionariam. compactdisse que aparou 0 bytes, mas tenho 40GiB grátis nele. convertdisse que o tamanho é muito pequeno. O volume é Mac OS Extended (Diário).
Sudo #

1

Tente este:

hdiutil compact image.dmg

Mas como você pode ver no manual do hdiutil :

Depending on the location of files in the hosted filesystem, compact may or may not shrink the image.

Obrigado pela sua reação .. Ao executar este comando, recebo a resposta de que há um problema de permissão .. Provavelmente porque o dmg é uma imagem de disco formatada somente leitura .. Agora tenho o Carbon Copy Cloner criando uma cópia via FireWire ..
Tim Baas

Você pode usar o Utilitário de Disco do Mac OS X para converter de imagem ro para rw.

Consegui trabalhar com o CCC, obrigado pela ajuda de qualquer maneira!
Tim Baas

1

Depois que o cjc apontou para fazer a pergunta no apple.stackexchange.com, eu fiz. Ao fazer a pergunta, cheguei a uma pergunta relacionada, respondida por alguém dizendo para experimentar o Carbon Copy Cloner.

O Carbon Copy Cloner clonou os arquivos via FireWire para o meu SSDisk sem questionar, e tudo é como deveria ser ..

Aqui está a pergunta à qual estou me referindo:

Restaurar sistema do DMG (disco de origem original maior que o destino)

Para aqueles interessados ​​em redimensionar uma imagem de disco:

Faça sua imagem de disco ler / gravar no Utilitário de Disco do Mac:

Monte o disco, selecione-o e clique em nova imagem de disco. Selecione leitura e gravação na estrutura da imagem do disco e clique em salvar. (Meu SO é holandês, então essas são minhas próprias traduções).

Use hdiutilpara redimensionar a imagem do disco:

No terminal: hdiutil resize -size 100G /location/of/disk.dmg. Você pode substituir 100G pelo tamanho desejado.

Opcional (não funcionou para mim), você pode tentar compactar:

No terminal: hdiutil convert /location/of/disk.dmg -format UDSP -o /location/of/NEW/disk.dmg.

Isso cria uma imagem esparsa.

Então: hdiutil compact /location/of/SPARSE/disk.dmg.sparseimage

Isso tentará liberar espaço na imagem do disco. Se funcionar, acho que você pode precisar redimensionar seu DMG novamente para diminuir a capacidade (não tenho certeza).


0

Tentei tudo isso sem sucesso; O hdiutil não me permitiu redimensionar abaixo de um certo limite (muito abaixo do OP).

Resposta simples:

  1. Crie um novo arquivo DMG no tamanho desejado.
  2. Copie todos os arquivos do antigo DMG
  3. Feche e reabra o novo DMG e verifique se está tudo bem
  4. Lixeira / backup / arquivar o antigo DMG.

Não sei como fazer isso ao copiar um sistema. cpdá-me toneladas de erros para arquivos especiais.
Sudo #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.