Appleディスクイメージ
Apple Disk Imageは、macOSオペレーティングシステムで一般的に使用されるディスクイメージ形式です。 Apple Disk Imageを開くと、Macintosh Finder内のボリュームとしてマウントされます。
Apple Disk Imageは、Universal Disk Image Format(UDIF)やNew Disk Image Format(NDIF)など、いくつかの独自のディスクイメージ形式のいずれかに従って構成できます。 Appleディスクイメージファイルの名前には、通常、拡張子として「.dmg」が付いています。
特徴
Apple Disk Imageファイルはapplication / x-apple-diskimageの MIMEタイプで公開されます。
これらのディスクイメージ内にはさまざまなファイルシステムを含めることができ、複数のファイルシステムを含むハイブリッド光メディアイメージの作成もサポートされています。サポートされているファイルシステムには、階層ファイルシステム(HFS)、HFS Plus、ファイルアロケーションテーブル(FAT)、ISO9660、ユニバーサルディスクフォーマット(UDF)などがあります。
Apple Disk Imageは、Mac OS Xにバンドルされているユーティリティ、特にMac OS X v10.2以前のDisk CopyとMac OS X v10.3以降のDisk Utilityを使用して作成できます。これらのユーティリティは、CDやDVDを書き込むためのイメージとしてAppleディスクイメージファイルを使用することもできます。ディスクイメージファイルは、hdiutilユーティリティを使用してコマンドラインインターフェイスで管理することもできます。
AppleはMac OS X v10.2.3で、AppleユーティリティDisk Copyで使用するための圧縮ディスクイメージとインターネット対応ディスクイメージを導入しました。これは後に10.3でディスクユーティリティに統合されました。 Disk Copyアプリケーションには、ディスクイメージをマウントする前に多言語ソフトウェアライセンス契約を表示する機能がありました。ユーザーがライセンスへの同意を示さない限り、イメージはマウントされません。
Apple Disk Imageは、安全なパスワード保護とファイル圧縮を可能にし、セキュリティとファイル配布機能の両方を提供します。このようなディスクイメージは、インターネット経由でソフトウェアを配布するために最も一般的に使用されます。
歴史
Appleは、Macアプリケーションが使用するリソースフォークを、インターネットを構成するような混合ネットワーク上で簡単に転送できないため、ディスクイメージ形式を最初に作成しました。 Mac OS Xでリソースフォークの使用が減少しても、ディスクイメージは標準のソフトウェア配布形式のままでした。ディスクイメージを使用すると、ディストリビューターはFinderのウィンドウの表示を制御できます。これは、アプリケーションを正しいフォルダーにコピーするようユーザーに指示するために一般的に使用されます。
フロッピーディスクイメージ専用の旧バージョンのフォーマットは、これらのイメージを処理するために使用されたバージョンのディスクコピーユーティリティの後に「ディスクコピー4.2」フォーマットと呼ばれます。フロッピーディスクイメージの圧縮をサポートする同様の形式は、DARTと呼ばれます。
新しいディスクイメージ形式(NDIF)は、Mac OS 9の以前のデフォルトのディスクイメージ形式でした。この形式のディスクイメージには、通常.img (生の.imgディスクイメージファイルと混同しないでください)または.smiファイル拡張子があります。拡張子が.smiのファイルは、実際には埋め込みディスクイメージ、つまり「自己マウントイメージ」をマウントするアプリケーションであり、Mac OS 9以前のみを対象としています。
ユニバーサルディスクイメージ形式(UDIF)は、Mac OS Xのネイティブディスクイメージ形式です。この形式のディスクイメージの拡張子は、通常.dmgです。
ファイル形式
Appleはこのフォーマットに関するドキュメントをリリースしていませんが、フォーマットの一部をリバースエンジニアリングする試みは成功しています。暗号化されたレイヤーは、VileFault(FileVaultのスプーネリズム)と呼ばれる実装でリバースエンジニアリングされました。
Appleディスクイメージファイルは、基本的に生のディスクイメージ(ブロックデータを含む)にメタデータが追加され、オプションで圧縮と暗号化を提供する1つまたは2つのレイヤーが適用されます。 hdiutilでは、これらのレイヤーはCUDIFEncodingおよびCEncryptedEncodingと呼ばれます。
UDIFは、ADC(Appleの古い独自の圧縮形式)、zlib、bzip2(Mac OS X v10.4以降)、およびLZFSE(Mac OS X v10.11以降)の内部圧縮をサポートしています。
トレーラー
トレーラーは、次のC構造を使用して説明できます。すべての値はビッグエンディアンです( PowerPCバイト順)
説明は次のとおりです。
位置(16進数) | 長さ(バイト単位) | 説明 |
---|---|---|
000 | 4 | マジックバイト(「koly」)。 |
004 | 4 | ファイルバージョン(現在は4) |
008 | 4 | このヘッダーの長さ(バイト単位)。 512でなければなりません。 |
00C | 4 | フラグ。 |
010 | 8 | 未知の。 |
018 | 8 | データフォークオフセット(通常は0、ファイルの先頭) |
020 | 8 | データフォークのサイズ(通常、以下のXMLOffsetまで) |
028 | 8 | リソースフォークオフセット(存在する場合) |
030 | 8 | リソースフォークの長さ(ある場合) |
038 | 4 | セグメント番号。通常1、0の場合があります |
03C | 4 | セグメント数。通常1、0の場合があります |
040 | 16 | セグメントの128ビットGUID識別子 |
050 | 4 | データフォークチェックサムタイプ |
054 | 4 | データフォークチェックサムサイズ |
058 | 128 | データフォークチェックサム |
0D8 | 8 | DMGのXMLプロパティリストの最初からのオフセット |
0E0 | 8 | XMLプロパティリストの長さ |
0E8 | 120 | 予約済みバイト |
160 | 4 | マスターチェックサムタイプ |
164 | 4 | マスターチェックサムサイズ |
168 | 128 | マスターチェックサム |
1E8 | 4 | 不明、通常1 |
1EC | 8 | セクターでの展開時のDMGのサイズ |
1F4 | 12 | 予約済みバイト(ゼロ) |
公益事業
ファイルを抽出したり、独自のApple Disk Image形式をマウントしたりするためのオプションはほとんどありません。いくつかのクロスプラットフォーム変換ユーティリティは次のとおりです。
- dmg2imgは元々Perlで作成されました。ただし、Perlバージョンは維持されなくなり、プロジェクトはCで書き直されました。現在、追加のツールなしでは、結果のイメージはMac OS XおよびLinuxでのみマウントできます(hfsplusサポートが有効になっている場合)。バージョン1.5以降、UDIF ADC圧縮イメージがサポートされています。
- DMGEXtractorはJavaでGUIで記述されており、AES-128暗号化イメージを含むdmgのより高度な機能をサポートしていますが、UDCOイメージはサポートしていません。
- 7-Zip。コマンドラインインターフェイスの無料クロスプラットフォームポートp7zipが含まれます。
- PeaZip
Windowsでは、UltraISOやIsoBusterなどの他のいくつかのプログラムを使用して、ほとんどのdmgイメージを開くことができます。 MacDriveは、単純なdmgファイルをWindowsのドライブとしてマウントすることもできますが、スパースディスクまたは暗号化されたdmgはマウントできません。無料のApple DMG Disk Image Viewerも存在します。
Linuxおよびおそらく他のUnixフレーバーでは、ほとんどの.dmgファイルは、CD書き込みプログラム(cdrecordを直接またはK3BやBraseroなどのフロントエンドを使用)を使用してCD / DVDに書き込むか、マウントポイントに直接マウントできます(マウント- o loop、ro -t hfsplus imagefile.dmg / mnt / mountpoint)。 darling-dmgは、Linuxで簡単にDMGファイルをマウントできるFUSEモジュールです。