Як записатись у файлову систему для читання лише для Mac OSX?


11

У мене є DMG, який мені потрібно встановити і написати файл. Коли я монтую його, finder показує корінь і все як лише для читання.

Тоді я виявив 'mount -w'. Але коли я запускаю це, я отримую 'mount: unknown special file or file system'.

Як я можу встановити це зображення диска як таке, що можна записати, або примусити до нього файл?

Відповіді:


16

Практично всі DMG-файли лише для читання насправді стискаються ( UDZ0- див. hdiutil(1)Сторінку "man"), тому їх формат файлів не підтримує просто "трохи перегортати", щоб зробити їх доступними для запису.

Ви можете використовувати Disk Utility або

hdiutil imageinfo filename.dmg  

... щоб побачити, у якому форматі знаходиться ваше зображення диска. Тоді ви можете використовувати Disk Utility або щось подібне

hdiutil convert filename.dmg -format UDSP -o filename.sparseimage  

... конвертувати його у формат читання-запису. Зауважте, що конверсія не відбувається на місці, тому вам доведеться сказати, щоб розмістити вихідний файл у файловій системі, яка має достатньо місця для нестисненої копії всіх даних з вашого .dmg.

.dmgРозширення не гарантує , що зображення на самому ділі стислі, але це, безумовно , найбільш імовірною можливістю.

Вам доступні кілька інших можливостей hdiutil. Наприклад, якщо ваш .dmgвласне не стиснений лише для читання ( UDRO), його можна примусити встановити читання-запис. Крім того, якщо ви хочете залишити .dmgстиснутий, але все ж хочете встановити його в режимі, який можна записати, ви зможете встановити його "тіньовим файлом"; всі записи фактично записуються у тіньовий файл.

Оновлення : інші відповіді на це запитання, здається, .dmgзавжди означають, UDZ0що просто не відповідає дійсності. На hdiutil(1)сторінці man, ось список внутрішніх форматів, які .dmgможе мати (зауважте, що пара цих може мати різні розширення назви файлів за замовчуванням на кшталт .sparseimage, але я впевнений, що це теж не жорстке правило).

UDRW - UDIF read/write image  
UDRO - UDIF read-only image  
UDCO - UDIF ADC-compressed image  
UDZO - UDIF zlib-compressed image  
UDBZ - UDIF bzip2-compressed image (OS X 10.4+ only)  
UFBI - UDIF entire image with MD5 checksum  
UDRo - UDIF read-only (obsolete format)  
UDCo - UDIF compressed (obsolete format)  
UDTO - DVD/CD-R master for export  
UDxx - UDIF stub image  
UDSP - SPARSE (grows with content)  
UDSB - SPARSEBUNDLE (grows with content; bundle-backed)  
RdWr - NDIF read/write image (deprecated)  
Rdxx - NDIF read-only image (Disk Copy 6.3.3 format)  
ROCo - NDIF compressed image (deprecated)  
Rken - NDIF compressed (obsolete format)  
DC42 - Disk Copy 4.2 image  

Я не припускав, що UDZ0, але всі типи, крім UDRW, та UDSP (можливо, UDxx UDSB або UDT0), читаються лише для читання. Я припускав, що всі dmgs були стиснуті з допомогою чогось, і тому не підлягають запису ... Я ніколи свідомо не стикався з не стисненим DMG ...
Brian Postow,

@Brian - Я регулярно використовую зашифрований UDSP для зберігання конфіденційної інформації на своєму ноутбуці (паролі, банківська інформація тощо).
KeithB

1
Гей, це допомогло багато, дякую! Я знайшов надзвичайно простий спосіб зробити це, погляньте на мою відповідь. Хотів би почути ваші думки.
MW Felker

1
@MaxFelker Радий, що моя пропозиція використовувати тіньовий файл допомогла вам. Дякуємо, що прописали один хороший спосіб зробити це.
Spiff

Супер корисно, +1 мій чувак!
MW Felker

5

Ось метод, який я щойно використовував для проекту, і був, безумовно, найкращим способом це зробити. Знайдено тут:

http://myjeeva.com/best-possible-way-edit-read-only-dmg.html

Додайте файл dmg лише для читання за допомогою hdiutil

hdiutil attach -owners on /path/to/your.dmg -shadow

Змініть свій DM. Використовуйте командний рядок для додавання, редагування або видалення вмісту - це робити в графічному інтерфейсі може мати дивні побічні ефекти або проблеми з дозволом. Крім того, вам може знадобитися судо команд

Від'єднайте приведений привід командою нижче або витягніть його з Finder

# fill disk number at <number>
hdiutil detach /dev/disk<number>

Перетворення / Написання тіньового дмг в DMG, доступний лише для читання

hdiutil convert -format UDZO -o /path/to/new.dmg /path/to/your.dmg -shadow

Я на Сьєррі, і це не працює для мене. Він створює ".shadow" файл і монтує dmg, але змонтований диск все ще читається тільки. Я навіть спробував зробити .dmg для запису і перевірив, що .shadow файл може бути записаний.
TechSavvySam

1

якщо на Rd-onry DMG достатньо «місця», ви можете перетворити в R / W DMG за допомогою утиліти Disk Utility та перетворити його назад у стислий DMG, якщо хочете. В іншому випадку ви можете "розширити" DMG за допомогою hdiutil


-2

Ви не можете написати в DMG. це не має сенсу. Вам потрібно скопіювати все, відредагувати та зробити новий DMG.

Вибачте.


Це просто неправда. Ви можете створювати .dmg файли для читання та запису. Крім того, не потрібно копіювати все, ви можете просто перетворити образ диска у формат, який можна записати. Дивіться мою відповідь.
Spiff

1
@ Шпіф, я думаю, але ваше рішення є ЕФЕКТИВНО таким же, як і моє, оскільки воно має де-стиснути, ви додасте новий файл і повторно стисніть. Якщо його немає на місці, тоді ви НЕ РОЗПОВІДАЄТЬСЯ до існуючих DMG ...
Brian Postow

Ваша відповідь містить неправдиву інформацію.
Брайан

1
-1, але якщо ви зміните рядок "Ви не можете написати в DMG" на те, що є насправді істинним, наприклад, "Ви не можете написати на DMG, що читається лише зараз", я зміню свій голос. Дякую!
Дан Розенстарк

-2

Звичайне зображення DMG не підлягає запису, оскільки немає способу додати простір до нього. Рішення, як зазначає @Brian_Postow, полягає в копіюванні всього вмісту і створенні цілого нового файлу DMG. Якщо ви плануєте це зробити багато, наступного разу створіть розрізнене зображення, оскільки вони можуть бути записані.


1
Це не зовсім так. Розширення .dmg не обов'язково означає, що воно лише для читання. Дивіться мою відповідь.
Spiff

Я повинен був сказати "за замовчуванням" замість "регулярний". Хороша інформація про їх перетворення.
Кріс Нава
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.