Монтирование образов
Образ — это виртуальная копия диска. Перед тем как использовать образ, его необходимо смонтировать. В DAEMON Tools есть несколько способов это сделать:
- Если DAEMON Tools установлена на ваш компьютер, то вы можете монтировать образы, дважды кликнув по ним:
- Выберите образ на вкладке Образы, перейдите в его контекстное меню и выберите опцию Монтировать
- Дважды кликните по любому образу в каталоге образов
- Перетащите образ из панели Образы или из Finder и отпустите клавишу мыши над панелью устройств
- Нажмите на Монтировать на панели устройств слева, и выберите файл образа
- Воспользуйтесь горячими клавишами, предварительно установленными в Настройках.
- Зайдите в панель меню, в Dock-меню или в Главное меню приложения и выберите опцию Монтировать. Затем найдите необходимый образ на жестком диске компьютера.
- Зайдите в панель меню, Dock-меню или в Главное меню приложения и выберите подменю Образы, а затем найдите в списке предложенных файлов нужный.
Примечание: служба DAEMON Tools Agent позволяет работать со смонтированными образами даже после завершения программы. В Каталоге образов все смонтированные образы отображаются жирным шрифтом.
Размонтирование образов
- Чтобы размонтировать образ, найдите его на вкладке Образы и выберите опцию Размонтировать в контекстном меню, либо же выберите такую же опцию в контекстном меню образа на панели устройств:

- Выберите опцию Извлечь «имя_образа» из контекстного меню образа, который появился на рабочем столе:

- Воспользуйтесь горячими клавишами, предварительно установленными в Настройках.
- Выберите соответствующее устройство в подменю Виртуальные приводы в панели меню или в Dock.
Если не выбран никакой привод, то по умолчанию размонтируется устройство, которое было смонтировано последним.
Опция Размонтировать все, которая находится в контекстном меню смонтированного образа, в контекстном меню на панели устройств, а также в подменю Виртуальные приводы, удаляет все виртуальные образы, которые были созданы в данный момент.
Стоит также отметить, что если вы не указали какое именно виртуальное устройство должно размонтироваться, DAEMON Tools размонтирует последний смонтированный девайс.
Как создать и монтировать образ в macOS в командной строке
За работу с образами дисков отвечает другая команда — hdiutil.
Чтобы примонтировать образ, введите:
hdiutil attach < файл . dmg >( точно так же монтируется . iso )
hdiutil detach / dev / disk
Этой же утилитой можете превратить каталог в образ диска. Команда следующая:
hdiutil create — volname «» — srcfolder < путь к папке >— ov
Чтобы создать зашифрованный образ, добавьте параметры:
Прожечь образ на болванку тоже легче легкого:
Восстановить содержимое диска из образа можно командой asr:
sudo asr — restore — noverify — source < файл . dmg >— target / Volumes /
Если в названии файла есть пробелы, большинство утилит потребуют заключить название в двойные кавычки. Это к тому же проще, чем экранировать пробелы.
Как смонтировать образ на Mac всего в несколько кликов?

Образ диска – это специальный файл, который включает в себя данные и структуру любого физического диска. Mac-образы зачастую имеют расширение *.dmg, но используются и другие типы виртуальных дисков. В процессе монтирования образа операционная система распознает диск и после может использовать его так же, как любой другой физический носитель. Я хочу рассказать о том, как смонтировать образ на Mac и какая программа для монтирования образа работает в данной операционной системе.
Чтобы монтировать образ на Mac, зачастую используют специальную утилиту. Если она установлена, то достаточно дважды кликнуть по файлу образа, и он сразу же будет готов к использованию. Однако данное приложение распознает далеко не все типы образов. Если по некоторой причине “родная” Mac-программа не хочет открывать ваш образ, то советую использовать стороннее решение.
Сторонняя программа для монтирования образа – это специальное приложение, которое позволяет операционной системе распознать виртуальный диск. Монтировать виртуальный образ – то же самое, что и вставить настоящий диск в привод. Как уже отмечалось выше, монтировать виртуальные диски можно системной утилитой, но лучше использовать для этого специальное программное обеспечение. В этом случае у вас не будет проблем с несовместимостью типов, ну а как монтировать образ на Mac с помощью специальной программы, я расскажу ниже. В примере использована DAEMON Tools – компактное и простое решение, созданное специально для работы с виртуальными копиями дисков.
Итак, как смонтировать образ на Mac, используя программу DAEMON Tools?
Скачиваем и устанавливаем приложение на свой компьютер. У программы DAEMON Tools есть триальный период – 20 дней, – в течение которого вы можете опробовать ее функции бесплатно.
20-дневный триал
После того как программа установлена, все образы на жестком диске будут ассоциированы с ней. Поэтому далее вы можете просто дважды кликнуть по любому файлу образа, чтобы его смонтировать. Причем неважно, Mac-образ диска вы используете или же выбранный виртуальный диск был создан в операционной системе Windows, – DAEMON Tools распознает практически все популярные типы образов.
Но также мы советуем вам монтировать Mac-образы в интерфейсе программы, поскольку DAEMON Tools позволяет не только монтировать, но и организовывать каталоги виртуальных дисков.
Как монтировать образ на Mac из главного окна DAEMON Tools?
Ниже представлено несколько способов того, как смонтировать образ на Mac, воспользовавшись DAEMON Tools.
-
Заходим в главное окно программы нажимаем кнопку Монтировать и ищем нужный файл образа на жестком диске:






Если у вас еще остались вопросы о том, как монтировать образ на Mac, то советуем прочесть другие статьи в блоге. Например, руководство по монтированию аудио-дисков или советы по монтированию ISO-образов. Также не забывайте, что вы можете задать вопрос в комментариях ниже, и я обязательно на него отвечу.
Создание красивого образа .dmg для программы в [Mac] OS X

Сегодня я расскажу вам о том, как красиво преподнести пользователю инсталлятор своей программы. Наверняка каждый, кто пользуется не только программами из AppStore, сталкивался с красивыми образами диска .dmg, как вот у Адиума, к примеру. Такой образ представляет из себя, так сказать, интерактивный инсталлятор, в котором дана чёткая подсказка: перетащи значок вот сюда. Всё предельно понятно и просто.

Конечно, для бывалого маковода и zip-архив сгодится, но ведь все любят, чтоб было красиво и удобно. Так что мы с вами, дорогие читатели, озаботимся сегодня созданием такого вот красивого образа диска для своей (ну или чужой) программы.
Можно, конечно, проделать это всё вручную, но это не_наш_метод™, так что мы будем писать shell-скрипт для автоматизации сего процесса. Автоматизация нам так же пригодится в случае ввода в эксплуатацию билд-сервера, тогда этот сервер будет не только собирать программу из исходников, но и делать образ диска для дистрибьюции.
Если Вам не нужно знать как работает такой скрипт, а нужен лишь инструмент — в конце имеется ссылка на весьма универсальный скрипт, готовый к применению.
План действий вкратце:
- Скопировать бандл во временную директорию
- Создать образ диска из временной директории, доступный для чтения и записи
- Примонтровать полученный образ
- Кастомизировать внешний вид образа с помощью AppleScript: создать симлинк для /Applications, задать фон и расположение элементов
- Задать иконку для образа диска
- Отмонтировать образ
- Конвертировать образ в сжатый ридонли
- Готово! Можно выкладывать на сайт или в Sparkle-каст.
Теперь по порядку по всем пунктам. Ссылка на готовый скрипт в конце статьи.
Для начала нам надо определить что будем упаковывать и какое имя образа получим в конце. Для этого в скрипте пишем так:
TMP_DIR="./tmp" APP_BUNDLE_NAME="MyGreatApplication.app" APP_VERSION=`/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "$/Contents/Info.plist"` APP_BUILD_VERSION=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "$/Contents/Info.plist"` DMG_NAME_BASE=$ DMG_NAME_SUFFIX=" $.$" DMG_NAME="$$.dmg" VOL_NAME=$
Здесь мы задаём имя бандла, который будем паковать, и читаем из него версию и билд программы с помощью утилиты PlistBuddy и устанавливаем их как суффикс для имени файла будущего образа диска. Имя же образа при монтировании мы задаём просто как имя бандла без расширения.
Для создания временного образа диска используем программу hdiutil, вызвав её со следующими параметрами
hdiutil create -ov -srcfolder $ -format UDRW -volname "$" "$"
Здесь параметры TMP_DIR , VOL_NAME и DMG_NAME_TMP — временная директория, имя образа (которое будет отображаться при монтировании) и имя временного .dmg файла соответственно. Параметр -format UDRW указывает на тип образа: UDIF образ для чтения и записи. Возможность записи на диск нам нужна для кастомизации внешнего вида примонтированного образа. Параметр -ov указывает утилите перезаписать образ, если вдруг мы его не удалили в прошлый раз.
Теперь монтируем полученный образ (и сохраняем имя устройства для последующего использования):
device=$(hdiutil attach -readwrite -noverify -noautoopen $ | egrep '^/dev/' | sed 1q | awk '')
Здесь всё довольно просто: аттачим с правами на чтение и запись, автоматически окно файндера не открываем, а затем получаем имя типа /dev/disk2 с помощью egrep, sed и awk парся вывод hdiutil’а.
Теперь скопируем на образ фоновую картинку и иконку, которые лежат, к примеру, в ресурсах нашего бандла (хотя, конечно, их можно взять и из любого другого места):
BG_FOLDER="/Volumes/$/.background" mkdir "$" cp "$/Contents/Resources/$" "$/" ICON_FOLDER="/Volumes/$" cp "$/Contents/Resources/$" "$/.VolumeIcon.icns"
Далее, нам надо подмонтированный образ кастомизировать, сделать это можно через Finder вручную, но мы поступим хитрее: заставим Finder сделать всё автоматически через AppleScript. Для вызова таких скриптов из шелла есть утилита osascript, которой на вход подадим такую заготовку:
APPLESCRIPT=" tell application \"Finder\" tell disk \"$\" open -- Setting view options set current view of container window to icon view set toolbar visible of container window to false set statusbar visible of container window to false set the bounds of container window to , $, $, $> set theViewOptions to the icon view options of container window set arrangement of theViewOptions to not arranged set icon size of theViewOptions to 72 -- Settings background set background picture of theViewOptions to file \".background:$\" -- Adding symlink to /Applications make new alias file at container window to POSIX file \"/Applications\" with properties -- Reopening close open -- Rearranging set the position of item \"Applications\" to , $> set the position of item \"$\" to , $> -- Updating and sleeping for 5 secs update without registering applications delay 5 end tell end tell " echo "$APPLESCRIPT" | osascript
Разумеется, вместо VOL_NAME и прочего наш shell-скрипт подставит заранее заготовленные строки. Данный AppleScript говорит файндеру открыть наш подмонтированный диск, задать ему нужные параметры отображения: убрать строку адреса и статуса, задать вид «иконки», задать размеры окна, размер иконок. Все эти параметры будут сохранены в файле .DS_Store. Далее мы задаём фоновую картинку, скопированную ранее. Затем — создаём симлинк (алиас в терминах AS) для /Applications, переоткрываем окно для применения изменений. Теперь устанавливаем положение иконок программы и созданного симлинка, обновляем и спим 5 секунд для надёжности.
Теперь установим иконку для образа через утилиту SetFile:
SetFile -c icnC "$/.VolumeIcon.icns" SetFile -a C "$"
Далее, устанавливаем нужные права для образа диска, синхронизируемся (два раза для надёжности) и извлекаем образ:
chmod -Rf go-w /Volumes/"$" sync sync hdiutil detach $
Всё, теперь можно делать финальный образ диска!
hdiutil convert "$" -format UDZO -imagekey zlib-level=9 -o "$"
Здесь мы с помощью hdiutil конвертируем временный образ в формат UDZO (UDIF сжатый) с уровнем компрессии 9 (лучшая). И на выходе получаем образ диска для дистрибьюции, имеющий привлекательный внешний вид!
Полный скрипт включён в репозиторий на гитхабе. Замечу, что в полной версии скрипта очень много возможных входных параметров (парсинг которых сильно увеличивает его размер), хардкода нет совсем (ну кроме дефолтных параметров). Ну а картинка, приведённая в начале поста, получается следующим вызовом моего скрипта:
$ make_dmg.sh -V -b habr_logo_big.png -i habr_icon.icns -s "800:500" -c 535:345:253:345 "Hello Habr.app" Enabling version info in resulting dmg Setting background to habr_logo_big.png Setting icon to habr_icon.icns Setting window size to 800:500 Setting coordinates to 535:345:253:345 Bundle name set to Hello Habr.app Defaulting dmg volume name to Hello Habr *** Copying Hello Habr.app to the temporary dir. done! *** Creating temporary dmg disk image. created: /Users/silvansky/Projects/habr_demo_dmg/Hello Habr_tmp.dmg *** Mounting temporary image. done! (device /dev/disk1) *** Sleeping for 5 seconds. done! *** Setting style for temporary dmg image. * Copying background image. done! * Copying volume icon. done! * Setting volume icon. done! * Executing applescript for further customization. done! *** Converting tempoprary dmg image in compressed readonly final image. * Changing mode and syncing. chmod: /Volumes/Hello Habr/.Trashes: Permission denied * Detaching /dev/disk1. "disk1" unmounted. "disk1" ejected. * Converting. Готовлюсь к созданию образа… Читаю Driver Descriptor Map (DDM : 0)… (CRC32 $AF5ACFAD: Driver Descriptor Map (DDM : 0)) Читаю Apple (Apple_partition_map : 1)… (CRC32 $92261EDC: Apple (Apple_partition_map : 1)) Читаю disk image (Apple_HFS : 2)… . (CRC32 $F59F12B2: disk image (Apple_HFS : 2)) Читаю (Apple_Free : 3)… . (CRC32 $00000000: (Apple_Free : 3)) Добавляю ресурсы… . Прошло: 804.502ms Размер файла: 4132028 байт, сумма: CRC32 $AFE83FC5 Обработано секторов: 13243, 10041 сжато Скорость: 6.1 Mб/с Сохранений: 39.1 % created: /Users/silvansky/Projects/habr_demo_dmg/Hello Habr 1.0.1.dmg done! *** Removing temporary image. done! *** Cleaning up temp folder. done! *** Everything done. DMG disk image is ready for distribution.
Что ж, теперь Вы можете написать свой скрипт для таких целей или же использовать мой, достаточно универсальный. Успешных проектов!
- Веб-разработка
- Разработка под macOS
