Домашняя страница Работа с DMG файлами через терминал
Публикация
Отменить

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

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

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

Создание DMG файла

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
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 файла

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

1
hdiutil attach archive_name.dmg
Конвертация DMG файла

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

1
hdiutil convert oldName.dmg -format UDRW -o newName.dmg
Изменение размеров DMG файла

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

1
2
hdiutil resize -size 100 archive_name.dmg
hdiutil resize -size 2g archive_name.dmg
Публикация защищена лицензией CC BY 4.0 .