Bagaimana cara menulis ke sistem file read-only Mac OSX?

11

Saya punya DMG, saya harus me-mount dan menulis file. Ketika saya memasangnya, finder menunjukkan root dan semuanya sebagai read-only.

Kemudian saya menemukan 'mount -w'. Tetapi ketika saya menjalankannya, saya mendapatkan 'mount: file khusus atau sistem file yang tidak dikenal.'

Bagaimana saya bisa me-mount gambar disk ini sebagai dapat ditulis, atau memaksa file ke dalamnya?

kaca
sumber

Jawaban:

16

Hampir semua DMG read-only sebenarnya dikompresi ( UDZ0- lihat hdiutil(1)halaman manual), sehingga format file mereka tidak mendukung hanya "membalik sedikit" untuk membuat mereka dapat ditulis.

Anda dapat menggunakan Disk Utility atau

hdiutil imageinfo filename.dmg  

... untuk melihat format gambar disk Anda. Kemudian Anda dapat menggunakan Disk Utility atau yang sejenisnya

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

... untuk mengubahnya menjadi format baca-tulis. Perhatikan bahwa konversi tidak terjadi di tempat, jadi Anda harus mengatakannya untuk meletakkan file output pada sistem file yang memiliki cukup ruang untuk salinan semua data dari Anda yang tidak terkompresi .dmg.

The .dmgekstensi tidak jaminan bahwa gambar sebenarnya dikompresi, tetapi ini yang paling mungkin kemungkinan.

Ada beberapa kemungkinan lain yang tersedia untuk Anda hdiutil. Misalnya, jika Anda .dmgsebenarnya hanya baca-saja ( UDRO), mungkin bisa memaksanya untuk me-mount baca-tulis. Juga, jika Anda ingin meninggalkan .dmgkompresi tetapi tetap ingin memasangnya dengan cara yang dapat ditulis, Anda dapat memasangnya dengan "file bayangan"; semua menulis sebenarnya ditulis ke file bayangan.

Pembaruan : Jawaban Lain untuk Pertanyaan ini tampaknya .dmgselalu berpikir yang artinya UDZ0tidak benar. Dari hdiutil(1)halaman manual, berikut adalah daftar format internal yang .dmgdapat dimiliki (perhatikan bahwa beberapa di antaranya dapat memiliki ekstensi nama file standar yang berbeda seperti .sparseimage, tetapi saya cukup yakin itu bukan aturan yang sulit dan cepat juga).

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  
Spiff
sumber
Saya tidak berasumsi UDZ0, tetapi semua jenis kecuali UDRW, dan UDSP (mungkin UDxx UDSB atau UDT0) hanya baca. Saya berasumsi bahwa semua dmgs dikompresi dengan SESUATU, dan jadi tidak dapat ditulis ... Saya tidak pernah secara sengaja menemukan DMG yang tidak dikompresi ...
Brian Postow
@Brian - Saya menggunakan UDSP terenkripsi secara rutin untuk menyimpan informasi sensitif di laptop saya (kata sandi, info bank, dll).
KeithB
1
Hei ini banyak membantu, terima kasih! Saya menemukan cara super mudah untuk melakukan ini, lihat jawaban saya. Senang mendengar pikiran Anda.
MW Felker
1
@ MaxFelker Senang saran saya menggunakan file bayangan membantu Anda. Terima kasih telah mengeja satu cara yang baik untuk melakukannya.
Spiff
Sangat berguna, memberi +1 pada teman saya!
MW Felker
5

Berikut adalah metode yang saya gunakan untuk sebuah proyek dan sejauh ini merupakan cara terbaik untuk melakukan ini. Ditemukan di sini:

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

Lampirkan file dmg read-only menggunakan hdiutil

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

Ubah DM Anda. Gunakan baris perintah untuk menambah, mengedit, atau menghapus konten - melakukannya di GUI dapat memiliki efek samping aneh atau masalah izin. Selain itu, Anda mungkin perlu sudo perintah

Lepaskan drive yang terpasang dengan perintah di bawah ini atau Keluarkan dari Finder

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

Konversi / Menulis dmg gelap menjadi DMG hanya-baca

hdiutil convert -format UDZO -o /path/to/new.dmg /path/to/your.dmg -shadow
MW Felker
sumber
Saya di Sierra dan ini tidak berhasil untuk saya. Ini menciptakan file ".shadow" dan me-mount dmg, tetapi drive yang terpasang masih dapat dibaca. Saya bahkan mencoba membuat .dmg dapat ditulis dan memverifikasi bahwa file .shadow dapat ditulisi.
TechSavvySam
1

jika ada cukup ruang pada DMG Rd-onry, Anda dapat mengonversi ke DMG R / W menggunakan Utilitas Disk, dan mengubahnya kembali menjadi DMG terkompresi jika diinginkan. Jika tidak, Anda dapat "memperluas" DMG menggunakan hdiutil

junh1024
sumber
-2

Anda tidak dapat menulis ke DMG. Itu tidak masuk akal. Anda perlu menyalin semuanya, mengedit, dan membuat DMG baru.

Maaf.

Brian Postow
sumber
Itu tidak benar. Anda dapat membuat file .dmg baca-tulis. Selain itu, Anda tidak perlu menyalin semuanya, Anda cukup mengonversi gambar disk ke format yang dapat ditulis. Lihat Jawaban saya.
Spiff
1
@Spiff, saya kira, tetapi solusi Anda SECARA EFEKTIF sama dengan milik saya, karena harus melakukan kompres, Anda menambahkan file baru, dan kompres ulang. Jika tidak di tempat, maka Anda tidak BENAR-BENAR menulis ke DMG yang ada ...
Brian Postow
Jawaban Anda mengandung informasi yang salah.
Brian
1
-1 tetapi jika Anda mengubah baris "Anda tidak dapat menulis ke DMG" ke sesuatu yang benar-benar benar, seperti, "Anda tidak dapat menulis ke DMG yang hanya baca" Saya akan mengubah suara saya. Terima kasih!
Dan Rosenstark
-2

Gambar DMG biasa tidak dapat ditulisi karena tidak ada cara untuk menambahkan ruang padanya. Solusi seperti dicatat oleh @Brian_Postow adalah menyalin seluruh konten dan membuat file DMG yang sama sekali baru. Jika Anda berencana untuk sering melakukan ini, lain kali buat gambar yang jarang karena ini dapat ditulisi.

Chris Nava
sumber
1
Itu tidak sepenuhnya benar. Ekstensi .dmg tidak selalu berarti hanya baca. Lihat Jawaban saya.
Spiff
Saya seharusnya mengatakan "default" daripada "regular". Info bagus tentang mengonversinya.
Chris Nava