Под Mac OS X пишут очень много людей, и всегда можно найти удобную и красивую программу, выполняющего одну или несколько полезных функций. Однако те же функции могут быть уже реализованы в стандартных утилитах операционной системы. Например, я показал, как записать iso-образ на DVD/CD из Terminal.app, не прибегая к программам вроде Disco или бесплатного Burn.
hdiutil - это мощная консольная утилита, работающая с образами дисков. Информация о ней доступна в привычном для Unix’оидов man’е - можно либо в Terminal.app набрать ”man hdiutil”.
Создание iso-образа для обмена с Windows/Unix/etc
Записываем каталог “~/Documents” в iso-образ cdimage.iso:
hdiutil makehybrid -o cdimage ~/Documents
В iso-образе одновременно создаются несколько файловых систем, это определяется ключами: стандартная для Mac OS X HFS+ (-hfs), Joliet (-joliet), ISO9660 (-iso) и UDF (-udf). Если не указать явно, то создаются все четыре файловых системы одновременно.
Спасибо @tsybulin за подсказку, как создать iso-образ. Он использовал три из четырёх файловых систем (ключи -joliet -iso -hfs).
Создание dmg-образа
Записываем в notes.dmg содержимое каталога ~/Documents/Notes:
hdiutil create -srcfolder ~/Documents/Notes notes
Подключение образа диска
Смонтировать диск можно, открыв образ в Finder, либо запустив команду:
hdiutil attach image.iso
Создание зашифрованного расширяемого образа
Бывает необходимость хранить некоторые данные в зашифрованном виде. Для этого можно создать отдельный зашифрованный образ, с возможностью автоматического увеличения его размера:
hdiutil create ~/Documents/TopSecret -type SPARSEBUNDLE \ -size 100m -fs HFS+J -volname TopSecret -encryption
При создании будет запрошен пароль. Создастся файл с именем TopSecret.sparsebundle. Затем при каждом его монтировании будет спрашиваться пароль. Однако нужно не забывать отмонтировать образ, когда в нём нет необходимости. Прикладное применение можно посмотреть в статье ”Encrypt Mail, Address Book, and iCal data”.
Снятие образа диска с CD/DVD
Для установки виртуальной машины VMWare (Win XP, например) мне удобнее использовать не CD/DVD, а готовый образ. С помощью следующих команд я снял загрузочную копию с моего лицензионного “Win XP Home” (создаётся файл winxphome.dmg).
Вставить диск и посмотреть, на какое устройство подмонтировался диск:
$ mount ... /dev/disk4s0 on /Volumes/VRMHFPP_RU (cd9660, local, nodev, nosuid, read-only, noowners)
Снять копию:
hdiutil convert /dev/disk4s0 -format UFBI -o winxphome
Преобразование форматов
Преобразование образа “только для чтения” image-ro.dmg в образ с возможностью модификации image-rw.dmg:
hdiutil convert -format UDRW -o image-rw.dmg image-ro.dmg
Обратное преобразование (RW->RO)
hdiutil convert image-rw.dmg -format UFBI -o image-ro.dmg
Преобразование dmg в iso
hdiutil convert source.dmg -format UDTO -o destination.iso
Завершение
Я рассмотрел только часть возможностей hdiutil. Целиком они описаны в ”man hdiutil”. Не скажу, что описано понятно для неподготовленного человека, но man - это “наше всё” для людей, желающих разобраться в Unix.
Hdiutil - это только одна из сотен штатных утилит Mac OS X. Зная и применяя даже малое их количество, можно делать с системой всё, что необходимо, и без привлечения дополнительных программ.