¿Agregar/eliminar/modificar archivos dentro de una imagen de disco (.dmg)?

Sé que esto puede deberse a un malentendido fundamental sobre la forma en que se pretende que funcionen las imágenes de disco, pero incluso cuando se otorgan permisos completos en un archivo .dmg, no puedo agregar o eliminar archivos en la imagen de disco montada. ¿Hay alguna forma (de forma nativa o a través de una herramienta de terceros) de hacer esto?

Sé que cuando se monta una imagen de disco, se realiza una verificación de suma de verificación, así que supongo que debido a que modificar la imagen destruiría la suma de verificación, esto no está permitido, pero me pregunto si hay una utilidad que podría Vuelva a crear una imagen del disco con un subconjunto de su contenido, tal vez recalculando la suma de verificación en el proceso.

NOTA: Copiar todo el contenido, eliminarlo y luego volver a crear una imagen no es una opción plausible, debido al tamaño de la imagen y al hecho de que ya ocupa la mayor parte del espacio disponible del disco externo en el que reside.

Si no puede eliminar algo, probablemente se deba a que el archivo .dmg es de solo lectura. En Terminal, hdiutil imageinfo filenamey mira la salida para:Format: UDRO

Respuestas (2)

Puede editar, agregar y eliminar archivos en una imagen de disco si está formateada para que se pueda leer y escribir, lo cual se establece en la creación de la imagen de disco.

Este es un concepto diferente a los permisos de archivo: los permisos de archivo le permiten leer, es decir, montar, una imagen de disco completa o eliminarla en su totalidad (ya que una imagen de disco en sí misma es un solo archivo grande). La forma en que se formateó la imagen de disco establece las reglas para si solo puede leer (o leer y escribir) archivos dentro de la imagen de disco.

Para crear de forma nativa una copia legible y escribible de una imagen de disco, puede usar la hdiutilde macOS a través de Terminal.app de esta manera:

hdiutil convert -format UDRW -o ReadableAndWritableCopy.dmg ReadOnlyOriginal.dmg

Luego puede editar lo que está en la ReadableAndWriteableCopy.dmgimagen de disco y crear otra copia con sus ediciones que sea de solo lectura (como el original) así:

hdiutil convert -format UDRO -o ReadOnlyCopy.dmg ReadableAndWriteableCopy.dmg

Al volver a convertir a una copia de solo lectura, recomiendo usar hdiutil convert -format UDBZ ...para habilitar la compresión bzip2 en la imagen del disco. Estaba confundido por qué mi copia ligeramente editada de un .dmg de solo lectura era mucho más grande que el original, y finalmente descubrí que UDROno usa ninguna compresión.

Una imagen de disco se designa como de solo lectura o de lectura y escritura cuando se crea. Simplemente cambiar los permisos en el archivo DMG no tendrá ningún efecto.

Aquí hay una supuesta solución que no he probado yo mismo, que usa el hdiutil convertcomando para hacer que se pueda escribir en una imagen de disco y hdiutil resizepara agregar espacio adicional si es necesario para cualquier contenido adicional.

¿Es esto seguro o Apple espera que sean de solo lectura?
@Pacerier es irrelevante. Mientras su DMG está montado, sus datos tienen un nivel de vulnerabilidad X. Esta X es la misma si escribe archivos en DMG y los vuelve a cifrar y si solo lee archivos descifrándolos con la misma clave que ingresa una vez en ambos casos. Tenga en cuenta que mientras el disco está montado, solo lectura o no, cualquier software puede acceder a él como una carpeta normal. El único riesgo que veo con los DMG grabables es que pueden corromperse en casos excepcionales.