Snow LeopardのHFS+圧縮機能を検証する

海上忍
2010-10-19 08:00:00
  • このエントリーをはてなブックマークに追加

 Snow Leopardは、OSとしての基盤部分の改良に重きを置いたアップデートだ。そのため視覚に訴える新機能は少ないが、まさに"いぶし銀"のような機能強化ポイントが散見される。

 その1つが、標準のディスクフォーマット「HFS Plus」に追加された圧縮機能。アプリケーションなど特定のファイルは、HFS Plus領域へコピーするとき自動的に圧縮され、ディスクスペース節約に貢献している。Finderを利用する限り意識することはないが、同機能で圧縮されたファイルを展開する「afscexpand」、-hfsCompressionなど圧縮関連のオプションが追加された「ditto」など、一部対応しているコマンドもある。

 ここで興味深いツールを紹介したい。その名も「hfsdebug-lite」、HFS Plusボリューム上のファイルを対象に、通常の方法では確認できない情報を出力してくれる。このコマンドを使えば、HFS Plusに追加された圧縮機能の概要が見えてくるはず。

 hfsdebug-liteを利用するには、配布されているディスクイメージに含まれるPowerPCバイナリ(Snow LeopardでもRosetta経由で利用できる)をパスの通った領域へコピーする。用意されたオプションは「--help」で確認してもらうとして、基本的には引数にパス(ファイル/ディレクトリ)を与えて実行するだけだ。ただし、実行には管理者権限が必要なため、「sudo hfsdebg-lite ……」のようにsudoとの組み合わせで利用する。

 最初に調べたのは、あらゆるファイルが圧縮されているかどうかということ。まずは「/mach_kernel」や/etcディレクトリ上のファイルを手当たり次第にチェックしたが、圧縮されている様子はない。ホームフォルダ以下にあるワープロ文書や動画ファイル、画像ファイルにも、「compress」が含まれるメッセージは出力されなかった。

 /Applications以下のアプリケーション(.app)はというと、Preview.appやCalculator.appなど標準装備のものは、バンドル内に「compression magic」と「compression type」、「uncompressed size」行を確認できた。「com.apple.decmpfs」という属性情報も追加されている。さらに調べたところ、/binと/usr/bin、/sbinと/usr/sbinに置かれた標準装備のコマンドにも、同様の行が存在した。

 一方、ユーザーが追加したものは圧縮されていない。/usr/binにコピーしたコマンドも同様に未圧縮だったことから、特定領域のみ自動圧縮されるわけではなく、保存時になんらかの作業が必要となるらしい。次回は、そのあたりの謎解きを行う予定だ。

hfsdebug-liteコマンドを実行したところ Preview.appのバイナリ部分(Preview.app/Contents/MacOS/Preview)を対象に、hfsdebug-liteコマンドを実行したところ※クリックで拡大画像を表示
  • 新着記事
  • 特集
  • ブログ