The Apple Geek

Чему ты научился сегодня?

Работаем с образами дисков в Terminal.app (hdiutil)

Под 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. Зная и применяя даже малое их количество, можно делать с системой всё, что необходимо, и без привлечения дополнительных программ.


Comments