10

У меня есть DMG, мне нужно смонтировать и записать файл. Когда я его монтирую, искатель показывает рут и все только для чтения.

Затем я обнаружил 'mount -w'. Но когда я запускаю это, я получаю 'mount: unknown специальный файл или файловую систему.'

Как я могу смонтировать этот образ диска как доступный для записи или принудительно вставить в него файл?

5 ответов5

15

Почти все доступные только для чтения DMG-файлы фактически сжаты (UDZ0 - см. Справочную страницу hdiutil(1) ), поэтому их формат файла не поддерживает простое "переворачивание", чтобы сделать их доступными для записи.

Вы можете использовать Дисковую утилиту или

hdiutil imageinfo filename.dmg  

... чтобы увидеть, в каком формате находится ваш образ диска. Тогда вы можете использовать Дисковую утилиту или что-то вроде

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

... чтобы преобразовать его в формат чтения-записи. Обратите внимание, что преобразование не происходит на месте, поэтому вам нужно будет указать выходной файл в файловой системе, в которой достаточно места для несжатой копии всех данных из вашего .dmg .

Расширение .dmg не гарантирует, что изображение действительно сжато, но это наиболее вероятная возможность.

Есть несколько других возможностей, доступных вам с помощью hdiutil . Например, если ваш .dmg на самом деле является несжатым только для чтения (UDRO), может быть возможно заставить его монтировать чтение-запись. Кроме того, если вы хотите оставить свой .dmg сжатым, но по-прежнему хотите смонтировать его для записи, вы можете смонтировать его с помощью "теневого файла"; все записи на самом деле записываются в теневой файл.

Обновление: Другие ответы на этот вопрос, кажется, думают, что .dmg всегда означает UDZ0 что просто не соответствует действительности. На справочной странице hdiutil(1) приведен список внутренних форматов, которые может иметь .dmg (обратите внимание, что некоторые из них могут иметь различные расширения имени файла по умолчанию, например .sparseimage , но я уверен, что это не сложно и -быстрое правило тоже).

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  
5

Вот метод, который я только что использовал для проекта, и был безусловно лучшим способом сделать это. Нашел это здесь:

http://myjeeva.com/best-possible-way-edit-read-only-dmg.html

Прикрепите файл dmg только для чтения, используя hdiutil

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

Модифицируйте свою DM. Используйте командную строку для добавления, редактирования или удаления содержимого - выполнение этого в графическом интерфейсе может иметь странные побочные эффекты или проблемы с разрешениями. Кроме того, вам может понадобиться sudo команды

Отсоедините смонтированный диск командой ниже или извлеките ее из Finder

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

Преобразование / запись затененного DMG в DMG только для чтения

hdiutil convert -format UDZO -o /path/to/new.dmg /path/to/your.dmg -shadow
1

если в Rd-onry DMG достаточно "места", вы можете преобразовать его в R/W DMG с помощью Дисковой утилиты и преобразовать его обратно в сжатый DMG, если хотите. В противном случае вы можете "расширить" DMG, используя hdiutil

-2

Вы не можете написать в DMG. это не имеет никакого смысла. Вам нужно все скопировать, отредактировать и сделать новый DMG.

Сожалею.

-2

Обычное изображение DMG не доступно для записи, так как нет возможности добавить к нему место. Решение, отмеченное @Brian_Postow, состоит в том, чтобы скопировать все содержимое и создать новый файл DMG. Если вы планируете делать это много, в следующий раз создайте разреженное изображение, так как оно доступно для записи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .