web-dev-qa-db-ja.com

Mac OSXの読み取り専用ファイルシステムに書き込む方法は?

ファイルをマウントして書き込む必要があるDMGがあります。マウントすると、Finderはルートとすべてを読み取り専用として表示します。

その後、「mount -w」を発見しました。しかし、それを実行すると、「mount:unknown special file or file system」が表示されます。

このディスクイメージを書き込み可能としてマウントしたり、ファイルを強制したりするにはどうすればよいですか?

11
themirror

ほぼすべての読み取り専用DMGは実際に圧縮されているため(_UDZ0_-hdiutil(1)のマニュアルページを参照)、ファイル形式は書き込み可能にするための「ビットの反転」をサポートしていません。

ディスクユーティリティを使用するか、

_hdiutil imageinfo filename.dmg  
_

...ディスクイメージの形式を確認します。次に、ディスクユーティリティなどを使用します。

_hdiutil convert filename.dmg -format UDSP -o filename.sparseimage  
_

...読み書き形式に変換します。変換はその場で行われないことに注意してください。そのため、_.dmg_からのすべてのデータの非圧縮コピーのための十分な空きがあるファイルシステムに出力ファイルを置くように指示する必要があります。

_.dmg_拡張子は、イメージが実際に圧縮されることを保証するものではありませんが、これが最も可能性が高い可能性です。

hdiutilには、他にもいくつかの可能性があります。たとえば、_.dmg_が実際に非圧縮の読み取り専用(UDRO)である場合、読み取り/書き込みでマウントするように強制することができる場合があります。また、_.dmg_を圧縮したままにしたいが、書き込み可能な方法でマウントしたい場合は、「シャドウファイル」を使用してマウントできます。すべての書き込みは実際にシャドウファイルに書き込まれます。

更新:この質問の他の回答は、_.dmg_は常に_UDZ0_を意味すると考えているようですが、これは正しくありません。 hdiutil(1)のmanページから、_.dmg_が取り得る内部形式のリストを次に示します(これらのいくつかは異なるdefaultにできることに注意してください) _.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  
_
16
Spiff

これが私がプロジェクトに使用した方法であり、これを行うための最善の方法でした。ここで見つかりました:

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

Hdiutilを使用して読み取り専用のdmgファイルを添付する

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

DMを変更します。コマンドラインを使用してコンテンツを追加、編集、または削除します。GUIで実行すると、奇妙な副作用や権限の問題が発生する可能性があります。さらに、コマンドをSudoする必要がある場合があります

以下のコマンドでマウントされたドライブを切り離すか、Finderから取り出します

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

シャドウイングされたdmgを読み取り専用DMGに変換/書き込み

hdiutil convert -format UDZO -o /path/to/new.dmg /path/to/your.dmg -shadow
5
M.W. Felker

rd-onry DMGに十分な「スペース」がある場合は、ディスクユーティリティを使用してR/W DMGに変換し、必要に応じて圧縮DMGに戻すことができます。それ以外の場合は、hdiutilを使用してDMGを「拡張」できます

1
junh1024