5

Здравствуйте, я загрузил загрузочный образ .iso, который я хотел бы записать на USB-накопитель под OSX (10.6).

Я преобразовал изображение с помощью команды

 hdiutil convert -format UDRW -o ./X15-65804.img ./X15-65804.iso

Проблема в том, что мне нужно удалить файл с изображения перед записью на USB. Насколько я понимаю, во время преобразования новый файл изображения стал доступен для чтения / записи (благодаря переключателю -format UDRW ). Тем не менее, я не могу удалить файлы из смонтированного образа (В доступе отказано).

Я также попытался смонтировать из командной строки:

hdiutil attach -readwrite X15-65804.dmg

Все еще не повезло, изображение только для чтения. Как я могу смонтировать его в режиме чтения / записи?

2 ответа2

9

Образы дисков - это просто контейнеры, которые эмулируют диск. Содержимое DMG отличается от контейнера DMG. Таким образом, вы, вероятно, только конвертировали контейнер для чтения / записи.

Например:

Мы можем преобразовать DMG, который содержит ISO для чтения / записи, но сам ISO может быть только для чтения:

 ___________________        ___________________
|                   |      |                   |
|  Disk Image (r/o) |      |  Disk Image (r/w) |
|  _______________  |      |  _______________  |
| |               | |  ==> | |               | |
| | ISO9660 (r/o) | |      | | ISO9660 (r/o) | |
| |_______________| |      | |_______________| |
|___________________|      |___________________|

Вы сталкиваетесь с подобной проблемой с образами гибридной файловой системы, которые поставляются сегодня многими дистрибутивами ОС.

Вот выдержка из раздела справочной страницы hdiutil(1) по гибридным изображениям:

Сгенерированное изображение может быть позже записано с помощью записи или преобразовано в другой формат только для чтения с помощью convert.

Сгенерированная файловая система не предназначена для преобразования в чтение-запись, но может безопасно копировать свои файлы в файловую систему чтения-записи с помощью ditto(8) или asr(8) (в режиме копирования файлов).

Итак, есть обходной путь: скопируйте файлы и создайте еще один DMG.

К сожалению, это то, чего вы, вероятно, надеялись избежать.

Кстати, эта команда может оказаться полезной для просмотра разделов DMG:

hdiutil pmap your_file.dmg
3

Я нашел это в разделе примеров на странице руководства hdiutil:

 Converting:
       hdiutil convert master.dmg -format UDTO -o master
             converts master.dmg to a CD-R export image named master.cdr
       hdiutil convert /dev/disk1 -format UDRW -o devimage
             converts the disk /dev/disk1 to a read/write device image file.  authopen(1) will be used
             if read access to /dev/rdisk1 is not available.  Note use of the block-special device.

Кроме того, эта часть выглядит как то, что вы могли бы использовать:

Используя теневой файл, прикрепите изображение, предназначенное только для чтения, для чтения и записи, чтобы изменить его, а затем преобразовать его обратно в изображение, доступное только для чтения. Этот метод устраняет время / пространство, необходимое для преобразования изображения в режим чтения-записи перед его изменением.

       hdiutil attach -owners on Moby.dmg -shadow
       /dev/disk2   Apple_partition_scheme
       /dev/disk2s1 Apple_partition_map
       /dev/disk2s2 Apple_HFS               /Volumes/Moby

       ditto /Applications/Preview.app /Volumes/Moby
       hdiutil detach /dev/disk2
       hdiutil convert -format UDZO Moby.dmg -shadow

Мне даже интересно, как работал оригинальный конвертер, похоже, что аргументы в неправильном порядке, например. входной файл должен быть после слова преобразовать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .