Come scrivere su un filesystem di sola lettura per Mac OSX?


11

Ho DMG che devo montare e scrivere un file. Quando lo monto, finder mostra il root e tutto come sola lettura.

Poi ho scoperto 'mount -w'. Ma quando lo eseguo, ottengo "mount: file o file system speciale sconosciuto".

Come posso montare questa immagine disco come scrivibile o forzare un file al suo interno?

Risposte:


16

Quasi tutti i DMG di sola lettura sono effettivamente compressi ( UDZ0- vedi la hdiutil(1)pagina man), quindi il loro formato di file non supporta semplicemente "capovolgendoli" per renderli scrivibili.

È possibile utilizzare Utility Disco o

hdiutil imageinfo filename.dmg  

... per vedere in quale formato è l'immagine del tuo disco. Quindi potresti usare Utility Disco o qualcosa del genere

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

... per convertirlo in un formato di lettura-scrittura. Nota che la conversione non avviene sul posto, quindi dovrai dirgli di mettere il file di output su un filesystem che ha abbastanza spazio per una copia non compressa di tutti i dati dal tuo .dmg.

L' .dmgestensione non garantisce che l'immagine sia effettivamente compressa, ma questa è di gran lunga la possibilità più probabile.

Ci sono molte altre possibilità disponibili per te hdiutil. Ad esempio, se il tuo .dmgè effettivamente di sola lettura non compresso ( UDRO), potrebbe essere possibile forzarlo a montare la lettura-scrittura. Inoltre, se vuoi lasciare il tuo .dmgcompresso ma vuoi comunque montarlo in modo scrivibile, puoi montarlo con un "file shadow"; tutte le scritture vengono effettivamente scritte nel file shadow.

Aggiornamento : Altre risposte su questa domanda sembrano pensare che .dmgsignifichi sempre UDZ0che non è vero. Dalla hdiutil(1)pagina man, ecco l'elenco dei formati interni che si .dmgpossono avere (si noti che un paio di questi possono avere estensioni di file predefinite diverse come .sparseimage, ma sono abbastanza sicuro che non sia nemmeno una regola rigida).

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  

Non ho assunto UDZ0, ma tutti i tipi tranne UDRW e UDSP (forse UDxx UDSB o UDT0) sono di sola lettura. Supponevo che tutti i dmg fossero compressi con QUALCOSA, e quindi non scrivibile ... Non ho mai consapevolmente trovato un DMG NON ​​compresso ...
Brian Postow,

@Brian - Uso regolarmente un UDSP crittografato per archiviare informazioni sensibili sul mio laptop (password, informazioni bancarie, ecc.).
KeithB,

1
Ehi, questo mi ha aiutato molto, grazie! Ho trovato un modo semplicissimo per farlo, dai un'occhiata alla mia risposta. Mi piacerebbe sentire i tuoi pensieri.
MW Felker

1
@MaxFelker Sono contento che il mio suggerimento di utilizzare un file shadow sia stato di aiuto. Grazie per aver spiegato un buon modo per farlo.
Spiff

Super utile, +1 mio amico!
MW Felker,

5

Ecco il metodo che ho appena usato per un progetto ed è stato di gran lunga il modo migliore per farlo. Trovato qui:

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

Allegare il file dmg di sola lettura utilizzando hdiutil

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

Modifica il tuo DM. Utilizzare la riga di comando per aggiungere, modificare o eliminare i contenuti: farlo nella GUI può avere strani effetti collaterali o problemi di autorizzazione. Inoltre, potrebbe essere necessario annullare i comandi

Scollegare l'unità montata tramite il comando seguente o espellerla dal Finder

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

Conversione / scrittura di un dmg ombreggiato in DMG di sola lettura

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

Sono su Sierra e questo non funziona per me. Crea il file ".shadow" e monta il dmg, ma l'unità montata è ancora di sola lettura. Ho anche provato a rendere scrivibile il file .dmg e verificato che il file .shadow fosse scrivibile.
TechSavvySam,

1

se c'è abbastanza "spazio" sul DMG Rd-onry, puoi convertirlo in un DMG R / W usando Utility Disco e, se lo desideri, riconvertirlo in un DMG compresso. Altrimenti, puoi "espandere" il DMG usando hdiutil


-2

Non puoi scrivere a un DMG. non ha senso. Devi copiare tutto, modificare e creare un nuovo DMG.

Scusate.


Questo non è vero. È possibile creare file .dmg in lettura-scrittura. Inoltre, non è necessario copiare tutto, puoi semplicemente convertire l'immagine del disco in un formato scrivibile. Vedi la mia risposta
Spiff,

1
@Spiff, suppongo, ma la tua soluzione è EFFETTIVAMENTE uguale alla mia, poiché deve essere decompressa, aggiungi il nuovo file e ricomprimi. Se non è sul posto, allora non stai VERAMENTE scrivendo al DMG esistente ...
Brian Postow,

La tua risposta contiene informazioni false.
Brian,

1
-1 ma se cambi la riga "Non puoi scrivere su un DMG" in qualcosa che è effettivamente vero, come "Non puoi scrivere su un DMG di sola lettura", cambierò il mio voto. Grazie!
Dan Rosenstark,

-2

Un'immagine DMG normale non è scrivibile in quanto non è possibile aggiungere spazio ad essa. La soluzione indicata da @Brian_Postow è quella di copiare l'intero contenuto e creare un nuovo file DMG. Se hai intenzione di farlo molto, la prossima volta crea un'immagine sparsa in quanto sono scrivibili.


1
Questo non è esattamente vero. L'estensione .dmg non significa necessariamente che sia di sola lettura. Vedi la mia risposta
Spiff,

Avrei dovuto dire "predefinito" anziché "normale". Buone informazioni sulla loro conversione però.
Chris Nava,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.