◎ dmg関連その(4)dmgファイルについてのまとめと、「.sparseimage」と「.sparsebundle」について。

2012年4月24日火曜日

dmg free soft image Mac



知人からまだ誤解のある質問を多く受けるので、まとめておくことにした。


Q. Macの「.dmg」は、ソフト配布専用のファイル形式なのか?
答えは、NO。確かにソフト配布によく使われているが、ソフト配布専用ではなく、他の用途にも利用できるディスクイメージ(仮想ディスク)形式のファイル。「.iso」と同じ。
Mac標準のdmg作成ソフト「ディスクユーティリティ」は、UDF(ユニバーサルディスクフォーマット)に対応していて、CD/DVDイメージ(仮想CD/DVD)も作成できる。

Q. 「.dmg」は、Windowsの自己解凍形式の圧縮ファイル「.exe」と同じようなもの?

答えは、NO。ディスクイメージの中身が圧縮されている場合もあるが、必ず圧縮されているとは限らない。ファイルを圧縮することが主目的のファイル形式ではなく、ディスクイメージ(仮想ディスク)の形式。ちなみに、自己解凍形式の圧縮ファイルの「.exe」は、Windows XP から標準で付属している「iexpress.exe」で作成できる。

WindowsとMacの両方を触ることができる環境をお持ちの方は、この「iexpress.exe」とMac標準の「ディスクユーティリティ.app」とを使い比べてみれば違いが判るはず。

Q. Macで、「.dmg」からアプリケーション(ソフト)をインストールする場合、「.dmg」は、「アプリケーション」フォルダに入れておく必要がある?

答えは、NO。「.dmg」はあたかも外付けのハードディスクやUSBメモリなどのような振る舞いをする仮想ディスク。ダブルクリックすると、外付けのハードディスクやUSBメモリなど同様にMacのデスクトップ上にボリュームとしてマウントされて、中身にアクセスできる。

ボリュームとは、OSによってフォーマットされた一連の記憶領域。

アプリケーション」に入れるのは、マウントした仮想ディスクの中身のアプリケーションファイル。中身のアプリケーションファイルをコピーし終えたら、もとの「.dmg」はいらなくなる。アプリケーションのバックアップ用にとっておいてもかまわないが、ゴミ箱に捨てて問題ない。
ということで、「.dmg」ファイルは「アプリケーション」に入れておく必要はまったくない(入れておいてもかまわないが)。

Q. Windows環境のみで、「.dmg」を「.iso」に変換できるか?

「.dmg」の中には、拡張子を「.iso」に変えるだけで、isoとして扱えるものもある。ただしディスクイメージの中身がWindowsで扱えるファイルでなければ、変換しても意味がない。
以前、「Windowsからdmgを開く方法」で書いた「HFSExplorer」を利用すれば、「.iso」に変換する必要もなく、「.dmg」ファイルを扱える。

「.sparseimage」と「.sparsebundle」

Q. 「.dmg」ファイルということで受け取ったファイルが、「.sparseimage」という長い拡張子名のファイルになっていたが?

「.sparseimage」は、"スパースイメージ"と呼ばれるディスクイメージで、「.dmg」と同じようにダブルクリックすれば、Macのデスクトップ上に仮想のボリュームとしてマウントされる。このフォーマットは、大容量のデータを扱うために、「.dmg」を発展させたもので、中身の実データの容量に合わせて、サイズを作成時に設定した最大容量まで可変できる特徴を持っている。

例えば、100MBの「.dmg」を作成した場合、中身のデータが40MG程度しかなくても、保存や受け渡しする際は100MBのサイズになるが、100MBの「.sparseimage」の場合、中身のデータが40MG程度しかないときは、保存や受け渡しする際、54MB程になる。
後述の「.sparsebundle」も同様に小さくなる(下の画像の上側)。
Mac OS Xに標準で搭載されている「FileVault」は、ユーザのホームフォルダ全体を暗号化することができるが、この機能には、暗号化された「.sparseimage」が使われている。

この「.sparseimage」にはちょっと問題がある。大きなサイズの「.sparseimage」を含んだインクリメンタル(増分)なバックアップをする場合、「.sparseimage」の中身のデータにほんの少しの変更が加わっただけでも、全体が変更されたものとして処理されてしまい(「.sparseimage」は単一ファイルなので)、とくに中身のデータが設定された最大値近くまでの容量になっていると、バックアップに要する時間がかなり長くなってしまう。

この問題に対処して作られたのが、拡張子「.sparsebundle」で、"スパースバンドル"と呼ばれるディスクイメージ。
「.dmg」や「.sparseimage」が単一のファイルだったのに対して、「.sparsebundle」は、ディスクイメージをパッケージ化したものなので、ファイルを右クリックから「パッケージの内容を表示」で開くことができる。"bundle"(バンドル)というのは、"パッケージ"と同義。

開くと「bands」というフォルダの中に8MBほどのサイズでband(セグメント化された一括りのデータで番号がふられている)が並ぶ。データのバックアップに使った場合、データの変更が加わった部分のセグメントのみを書き換えるだけで済むので、全体を保存し直す「.sparseimage」に比べて、大幅に時間を短縮できるようになった。

「.sparsebundle」は、Mac OS Xに標準で搭載されているOSバックアップ用の「Time Machine」に使われている。
「.sparsebundle」、「Time Machine」は、Mac OS X 10.5 Leopard から加わった機能。