ファイルをマウントして書き込む必要があるDMGがあります。マウントすると、Finderはルートとすべてを読み取り専用として表示します。
その後、「mount -w」を発見しました。しかし、それを実行すると、「mount:unknown special file or file system」が表示されます。
このディスクイメージを書き込み可能としてマウントしたり、ファイルを強制したりするにはどうすればよいですか?
ほぼすべての読み取り専用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
_
これが私がプロジェクトに使用した方法であり、これを行うための最善の方法でした。ここで見つかりました:
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
rd-onry DMGに十分な「スペース」がある場合は、ディスクユーティリティを使用してR/W DMGに変換し、必要に応じて圧縮DMGに戻すことができます。それ以外の場合は、hdiutilを使用してDMGを「拡張」できます