大きさ14%増しのスーパームーン、見ましたか? 帰宅途中に眺め気分が高揚したこの私、横を歩く妻に「月がきれいですね」と戯れに話しかけてみたら、意味を知ってか知らずか「そう?」とつれない返事。どうせなら、娘に話しかけるんだった……

さて、今回は「Core Storage」について。ユーザビリティには直接影響しないフレームワークなだけにあまり話題に上らないようだが、これも歴としたOS X Lionの新機能。今後ますますの容量増加が見込まれる大容量記憶装置を束ねる、OS Xの屋台骨的存在なのだ。

What's Core Storage?

華やかなUIばかり注目されがちだが、OS Xというシステムの「足腰」に関する部分の改良こそが、メジャーバージョンアップの隠れた見どころといえる。特にTiger(v10.4)以降、基礎レイヤーの再設計が開始され、「Core」から始まるフレームワーク群が整備された。データベースを扱う「Core Data」、GPUを活用した描画機構「Core Image」、テキストレンダリングを担う「Core Text」など、Cocoaと密接に関連するOS Xの中核技術として整備されたことは、記憶に新しいところだ。

Lionで導入された「Core Storage」は、OS Xのボリューム管理を担うフレームワーク。複数の物理ディスク/パーティションにまたがる論理ボリュームを作成できることと、ディスク全体を暗号化する「FileVault 2」が、その機能の見どころとなっている。

複数の物理ディスク/パーティションにまたがる論理ボリュームのサポートは、ファイルシステムのより高度な抽象化を目的としたもの。Core Storageが定義する論理ボリュームは、最上位に「グループ」、その下に「ファミリー」が連なり、(HFS+などの)ボリュームがファミリーを構成する。

FileVault 2の暗号化処理も、Core Storageによるものだ。従前のFileVaultではホームディレクトリだけを暗号化していたが、FileVault 2はディスク全体が対象となる。ログイン/ログアウトが遅くなる、システムには単独のファイル(スパースイメージ)に映るためTime Machineの利点である差分バックアップができない、といったデメリットが解消されるのだ。

システム環境設定の「セキュリティとプライバシー」ペインにある「FileVault」タブ。スイッチをオンにすると、起動ボリュームの暗号化が開始される

ディスクユーティリティを使えば外付けHDDの暗号化処理は可能だが、初期化しなければならない

FileVault 2では、XTS-AES 128の強力な暗号化技術によりディスクが保護される

ところで、かつてOS XではSolaris由来の「ZFS」が採用されるものと見込まれていた。実際Leopardではzfsの読み込みサポートが実現されていたが、一転Snow Leopardでは取り除かれている。理由はライセンスにあるのか、OracleのSun Microsystems買収が影響したのか、はたまた自社開発が適当と考えを変えたのか……。

外付けHDDを暗号化する

Core Storageで利用するディスクは、Core Storage向けの体裁を持たねばならない。言い換えると、Core Storage用にフォーマットされたディスク/ボリュームでなければ、Core Storage論理ボリュームを構成できないのだ。

OS X Lionでは、Core Storage用ディスクを用意するためのGUIツールとして、システム環境設定の「セキュリティとプライバシー」ペインにある「FileVault」タブと、ディスクユーティリティの2つを用意している。Snow LeopardまでのFileVaultと(Core Storageの)FileVault 2はまったく異なる実装だが、前者はFileVaultとのUIの一貫性を保つために、後者はディスクの初期化作業を行うために用意されたと考えられる。

ここで注目したいのは、前者には起動ボリューム以外の領域をCore Storageにくわえる方法が用意されていないこと。外付けHDDをCore Storage論理ボリュームにくわえ暗号化(FileVault 2)したい場合、ディスクユーティリティを使って初期化しなければならないのだ。

Core Storage向けに初期化されていない起動ボリューム以外の外付けHDDを対象にする場合は、現在のところ「diskutil」コマンドを利用するしかない。用法は以下のとおり、「coreStorage」(省略形は「cs」)と内部コマンド「convert」を記述し、引数に対象とする外付けHDDのパス、オプションに「-passphrase」を指定すれば、ディスクを初期化することなく、外付けHDDをCore Storage/FileVault 2に変換/暗号化できる。

$ diskutil cs convert /Volumes/ExtHDD -passphrase
New passphrase for converted volume: ←パスワードを入力
Confirm new passphrase: ←もう一度パスワードを入力

このようにdiskutilコマンドを使えば、外付けHDDでもフォーマットせず暗号化できる

暗号化された外付けHDDを接続すると、パスワードを求めるダイアログが現れる

暗号化処理に要する時間は外付けHDDの容量次第だが、1TBで半日程度は覚悟しておいたほうがいい。ただし、処理中にドライブをアンマウントできるうえ、ファイルの保存などの作業も通常どおり行えるので、完了まで待つ必要はない。

暗号化処理は時間を要するが、途中経過は「diskutil cs list」で確認できる

なお、対象となる外付けHDDは、Intel Macから採用されたGUIDパーティションテーブル(GPT)を持たなければならない。GPTを持ってはいても、Lion以前に初期化したディスクはエラーとなることもあるようで、筆者はSnow Leopardの起動ボリュームを対象に作業したところ、「Error: -69853: Boot file not written」と表示され変換に失敗した。Lionで初期化した外付けHDDは支障なく変換できているので、あわせて参考にしてほしい。

関連記事
米Apple、OS XのZFS搭載プロジェクトを中止へ(2009年10月26日)
【レビュー】NTFSを高速に読み書きできる「Paragon NTFS for Mac OS X 9」(2011年9月23日)
【レビュー】奥の奥までOS X Lion 第3回 - 確かに存在した「あの機能」たちは、いま(2011年8月8日)
【コラム】OS X ハッキング! (235) Leopardを先取り(6) - キメラ化するOS X(2007年7月20日)
【特集】Mac OS X Tigerの実力は? - 4度目のアップデート、その真価を探る(13) Tigerの"Core"な技術 - Core Data・QuickTime 7(2005年4月9日)