Como gravar em um sistema de arquivos somente leitura do Mac OSX?

9

Eu tenho DMG Eu preciso montar e escrever um arquivo para. Quando eu o monto, o localizador mostra a raiz e tudo como somente leitura.

Então eu descobri 'mount -w'. Mas quando eu executo isso, recebo 'mount: arquivo especial ou sistema de arquivos desconhecido'.

Como posso montar essa imagem de disco como gravável ou forçar um arquivo a ela?

    
por themirror 27.05.2010 / 19:57

5 respostas

15

Quase todos os DMGs somente leitura são realmente compactados ( UDZ0 - consulte a página hdiutil(1) man), portanto, o formato de arquivo não suporta simplesmente "invertendo um pouco" para torná-los graváveis.

Você pode usar o Utilitário de Disco ou

hdiutil imageinfo filename.dmg  

... para ver em que formato está sua imagem de disco. Então você poderia usar o Utilitário de Disco ou algo parecido com

hdiutil convert filename.dmg -format UDSP -o filename.sparseimage  

... para convertê-lo em um formato de leitura / gravação. Note que a conversão não acontece no local, então você terá que dizer para colocar o arquivo de saída em um sistema de arquivos que tenha espaço suficiente para uma cópia não compactada de todos os dados do seu .dmg .

A extensão .dmg não garante que a imagem seja realmente compactada, mas essa é, de longe, a possibilidade mais provável.

Existem várias outras possibilidades disponíveis para você com hdiutil . Por exemplo, se seu .dmg for realmente descompactado somente leitura ( UDRO ), talvez seja possível forçá-lo a montar a leitura-gravação. Além disso, se você quiser deixar seu .dmg compactado, mas ainda quiser montá-lo de maneira gravável, poderá montá-lo com um "arquivo de sombra"; todas as gravações são gravadas no arquivo shadow.

Atualização : Outras respostas sobre esta questão parecem pensar que .dmg sempre significa UDZ0 , o que não é verdade. Na página hdiutil(1) man, aqui está a lista de formatos internos que um .dmg pode ter (note que alguns deles podem ter extensões de nome de arquivo padrão como .sparseimage , mas estou certeza de que não é uma regra rígida e rápida também.

UDRW - UDIF read/write image  
UDRO - UDIF read-only image  
UDCO - UDIF ADC-compressed image  
UDZO - UDIF zlib-compressed image  
UDBZ - UDIF bzip2-compressed image (OS X 10.4+ only)  
UFBI - UDIF entire image with MD5 checksum  
UDRo - UDIF read-only (obsolete format)  
UDCo - UDIF compressed (obsolete format)  
UDTO - DVD/CD-R master for export  
UDxx - UDIF stub image  
UDSP - SPARSE (grows with content)  
UDSB - SPARSEBUNDLE (grows with content; bundle-backed)  
RdWr - NDIF read/write image (deprecated)  
Rdxx - NDIF read-only image (Disk Copy 6.3.3 format)  
ROCo - NDIF compressed image (deprecated)  
Rken - NDIF compressed (obsolete format)  
DC42 - Disk Copy 4.2 image  
    
por 27.05.2010 / 20:17
5

Aqui está o método que acabei de usar para um projeto e foi, de longe, a melhor maneira de fazer isso. Encontrei aqui:

link

Anexe o arquivo dmg somente leitura usando hdiutil

hdiutil attach -owners on /path/to/your.dmg -shadow

Modifique seu DM. Use a linha de comando para adicionar, editar ou excluir conteúdos - fazer isso na GUI pode ter efeitos colaterais estranhos ou problemas de permissão. Além disso, você pode precisar sudo os comandos

Desconecte a unidade montada pelo comando abaixo ou Ejete-a do Finder

# fill disk number at <number>
hdiutil detach /dev/disk<number>

Convertendo / Escrevendo um dmg sombreado em DMG somente leitura

hdiutil convert -format UDZO -o /path/to/new.dmg /path/to/your.dmg -shadow
    
por 02.09.2014 / 19:42
1

se houver "espaço" suficiente no DMG Rd-onry, você poderá converter em um DMG de R / W usando o Utilitário de Disco e convertê-lo de volta em um DMG compactado, se desejar. Caso contrário, você pode "expandir" o DMG usando o hdiutil

    
por 02.06.2010 / 11:46
-2

Você não pode escrever em um DMG. Isso não faz sentido. Você precisa copiar tudo, editar e criar um novo DMG.

Desculpe.

    
por 27.05.2010 / 20:01
-2

Uma imagem DMG regular não é gravável, pois não há como adicionar espaço a ela. A solução apontada por @Brian_Postow é copiar todo o conteúdo e criar um novo arquivo DMG. Se você planeja fazer isso muito, da próxima vez crie uma imagem esparsa , pois elas são graváveis.

    
por 27.05.2010 / 20:07