Não é possível montar imagem dmg como leitura / gravação

5

Olá, baixei uma imagem .iso inicializável que gostaria de gravar em um pendrive em OSX (10.6).

Eu converti a imagem com o comando

 hdiutil convert -format UDRW -o ./X15-65804.img ./X15-65804.iso

O problema é que preciso remover um arquivo da imagem antes de gravá-lo em USB. Tanto quanto eu entendo durante a conversão, o novo arquivo de imagem se tornou leitura / gravação (devido à opção -format UDRW ). Ainda assim, não consigo excluir arquivos da imagem montada (permissão negada).

Eu também tentei montar a partir da linha de comando:

hdiutil attach -readwrite X15-65804.dmg

Ainda sem sorte, a imagem é somente leitura. Como eu poderia montá-lo no modo de leitura / gravação?

    
por Attila Fulop 28.10.2012 / 21:26

2 respostas

10

Imagens de disco são apenas contêineres que emulam um disco. O conteúdo do DMG é distinto do contêiner DMG. Então, você provavelmente só converteu o contêiner para leitura / gravação.

Por exemplo:

Podemos converter um DMG que contenha um ISO para leitura / gravação, mas o próprio ISO só pode ser somente leitura:

 ___________________        ___________________
|                   |      |                   |
|  Disk Image (r/o) |      |  Disk Image (r/w) |
|  _______________  |      |  _______________  |
| |               | |  ==> | |               | |
| | ISO9660 (r/o) | |      | | ISO9660 (r/o) | |
| |_______________| |      | |_______________| |
|___________________|      |___________________|

Você enfrenta um problema semelhante com as imagens do sistema de arquivos híbrido que muitas distribuições do sistema operacional estão enviando nos dias de hoje.

Veja um trecho da seção da página hdiutil(1) man em imagens híbridas:

The generated image can later be burned using burn, or converted to another read-only format with convert.

The generated filesystem is not intended for conversion to read-write, but can safely have its files copied to a read/write filesystem by ditto(8) or asr(8) (in file-copy mode).

Portanto, há a solução alternativa: copiar os arquivos e criar outro DMG.

O que, infelizmente, é provavelmente o que você esperava evitar.

A propósito, você pode achar útil este comando para espiar as partições do DMG:

hdiutil pmap your_file.dmg
    
por 10.04.2013 / 00:30
3

Encontrei isso na seção Exemplos do página do manual do hdiutil :

 Converting:
       hdiutil convert master.dmg -format UDTO -o master
             converts master.dmg to a CD-R export image named master.cdr
       hdiutil convert /dev/disk1 -format UDRW -o devimage
             converts the disk /dev/disk1 to a read/write device image file.  authopen(1) will be used
             if read access to /dev/rdisk1 is not available.  Note use of the block-special device.

Além disso, esta peça parece algo que você poderia usar:

Using a shadow file to attach a read-only image read-write to modify it, then convert it back to a read-only image. This method eliminates the time/space required to convert a image to read-write before modifying it.

       hdiutil attach -owners on Moby.dmg -shadow
       /dev/disk2   Apple_partition_scheme
       /dev/disk2s1 Apple_partition_map
       /dev/disk2s2 Apple_HFS               /Volumes/Moby

       ditto /Applications/Preview.app /Volumes/Moby
       hdiutil detach /dev/disk2
       hdiutil convert -format UDZO Moby.dmg -shadow

Eu estou até imaginando como o convertido original funcionou, parece que os argumentos estão na ordem errada, por exemplo. o arquivo de entrada deve ser depois da palavra converter .

    
por 13.02.2014 / 21:04