Работа с DMG файлами через терминал

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

dmg файл — это по сути образ диска, аналог iso файлов в windows. Они часто используются в качестве инсталярота программ. Именно для этой цели мне они и понадобились. Но как их создавать? Как их редактировать?

Создание DMG файла
Если вы хотите создать DMG образ из папки вручную, то можете воспользоваться утилитой /Applications/Utilities/Disk Utility. В ней можно создать образ кнопкой New Image. У данной утилиты есть консольные команды, которые можно выполнять через терминал. Дальше мы будем рассматривать именно их.

Создадим образ из каталога folder_to_compress, размером 20 мегабайт. При открытии он должен называться app, а файл будет называться archive_name.dmg. Это делается такой командой:

hdiutil create -format UDZO -megabytes 20 -fs HFS+ -srcfolder folder_to_compress -volname app archive_name.dmg

Форматы:
UDZO – сжатый (по умолчанию)
UDRO – только для чтения
UDBZ – сжатый более сильно
UDRW – образ для чтения/записи
UDTO – образ DVD диска

Файловые системы:
HFS - стандартная, размер до 2Гб, длина имен файлов до 31 символа, большая потеря места на маленьких файлах
HFS+ - не ограниченный размер образа, длина имен до 255 символов, малые потери памяти
HFSX - имеет доп. возможности. Чувствителен к регистру в именах файлов


Запуск DMG файла
После того, как файл образа создан, его можно подключить к файловой системе. Тогда к его содержимому можно будет получить доступ. Это делается этой командой:

hdiutil attach archive_name.dmg


Конвертация DMG файла
Иногда нужно сменить формат образа. Например преобразовать редактируемый файл (read/write) в файл только для чтения (read only). Это можно сделать следующей командой:

hdiutil convert oldName.dmg -format UDRW -o newName.dmg


Изменение размеров DMG файла
При создании образа необходимо указывать предельный размер данных, которые он может хранить. Однако иногда этот размер хочется поменять. Это можно сделать следующей командой:

hdiutil resize -size 100 archive_name.dmg
hdiutil resize -size 2g archive_name.dmg

Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.