WatchKitが公開されました(関連記事)! Apple Watchは、ここ数年ご無沙汰だった「新型デバイス」なだけに、なにができるか/つくれるか興味津々だった向きも多いはず。これで多少は先を見通せるようになったわけですが、そうなると気になるのが本体の発売時期……そこで思い出されるのが、iPhoneのネイティブアプリ開発用SDKが発表された時期。2008年6月でしたよね? そしてApp Storeがオープンしたのは7月。たった1カ月! ということは……年末休暇の時期を考慮すると、年明け早々なにかあるかもしれません。

さて、今回は「Core Storage」。Tigerの頃から登場しはじめた「Core ○○」というフレームワーク群のなかにあって、Lionのとき投入されたいわば最後発組だが、あまり話題にならなかった。しかし、Yosemiteでは無視することができないほどの"仕様変更"をシステムにもたらしている。そのあたりの事情と対策について、解説してみよう。

Yosemiteアップグレードで「論理ボリューム」が出現

Core Storageは、OS Xのストレージ管理を担うフレームワークであり、物理領域とファイルシステムの中間に位置する存在だ。複数の物理ディスク/パーティションにまたがる論理ボリュームを作成することができ、Lionのとき一新された暗号化機能「FileVault 2」も、ボリューム全体を暗号化可能になったのはCore Storageに負うところが大きい。暗号化領域がTime Machineの差分バックアップ対象となったのも、Core Storageの導入あってこそだ。

しかし、Core Storageで利用するディスクは、Core Storageに準拠したフォーマットでなければならない。言い換えると、Core Storage用に初期化したボリュームでなければ、FileVault 2で暗号化することはできないのだ。

そしてYosemiteでは、Core Storageがデフォルトになった。これは何を意味するかというと、Yosemiteにアップグレードしたとき、システムボリュームがCore Storageでフォーマットされているということだ。試しに、Terminalで「diskutil list /dev/disk0」と実行し、システムボリュームの詳細情報を表示してみよう。Mavericksまでは「Apple_HFS」と表示されていたパーティション(通常は「disk0s2」)が「Apple_CoreStorage」に変わっているはずだ。

YosemiteのTerminalでdiskutilコマンドを実行したところ、いつの間にかシステムボリュームが「Apple CoreStorage」に変わっていた

ではMavericksまで存在したはずの「Apple_HFS」はどこへ行ったかというと、論理ボリュームとして存在している。今度はTerminalで「diskutil cs list」と実行してほしい。おそらく最後に「Logical Volume」として従来のHFS+ボリュームが表示されるはずだ。その際、デバイス名が「disk1」に変更されていることにも要注目。Mavericksでは物理領域(disk0s2)にあったはずのシステムボリュームは、Yosemiteでは「disk1」にあるのだ。

「diskutil cs list」を実行したところ。HFS+ボリュームが「disk1」に存在することがわかる

Disk Utilityでシステムボリュームの詳細情報を表示したところ。ボリュームの種類とディスク識別子に注目しよう

論理ボリュームを物理パーティションへ戻す

「disk0s2」が「disk1」に変わった……といっても、多くのユーザにとっては「だからなに?」という話だろう。そのまま使い続けても支障はなく、パフォーマンス上のデメリットもほぼない。USB 2.0やThunderboltなどで接続した外付けディスクにYosemiteをインストールすれば、従来どおり物理パーティションとなる。単なるトリビアに終わってしまう話だ。

しかし、複数のシステムを切り替えてMacをブートしている場合、事情は変わってくる。Core Storageの論理ボリュームは、Snow Leopard以降のシステムではマウントできないのだ。だからYosemiteにアップグレードしてからブートボリュームを切り替えられず困っている、Mavericks以前の方式(物理パーティションへのインストール)に戻したい、そういうユーザもいるはずだ。

そんな場合、Terminalから以下のコマンドラインを実行してみよう。これで、Yosemiteインストール時にCore Storageの論理ボリュームに変換されてしまったシステムボリュームを、Mavericksまでの物理パーティションに戻すことができる。物理パーティションをCore Storageの論理ボリュームに変換することもできるが、ディスクフォーマットに関するクリティカルな処理ということもあり、At Your Own Riskで臨んでほしい。

Core Storageの論理ボリュームを物理パーティションに戻す

$ diskutil cs revert disk1

物理パーティションをCore Storageの論理ボリュームに変換する

$ diskutil corestorage convert "Macintosh HD"
  • ※:"Macintosh HD"の部分は各自のボリューム名に置き換えること

ディスク容量にもよるが、短い時間で変換作業は終了する

「diskutil cs revert ~」を実行する前(左)に存在したCore Storageの論理ボリュームは、実行後に消えて物理パーティションに戻っている