OS Xでシステム領域とユーザ領域を別パーティションにし暗号化して使う

Mac

OS Xインストールにおいて、システム領域、ユーザ領域に分けて、かつそれぞれを暗号化して使う方法です。BOOTCAMPも使う前提です。BOOTCAMP領域の暗号化には対応していません。

次の手順で実現しています。

  1. 動機・目的
  2. インストール前後のパーティション構成
    1. OS Xインストール前
    2. OS Xインストール後
  3. パーティションの暗号化
    1. MacBook Air 13 (Mid 2012)の場合
    2. MacBook Pro 13 (Early 2011)の場合
  4. OSのインストール
  5. 暗号化されたディスクの/Usersへのマウント

それでは、順を追って説明します。

1. 動機・目的

UNIX的流儀だと思いますが、システム領域とユーザ領域は、別パーティションにするべきだと思っています。

ですが、OS Xのインストーラは、システム領域とユーザ領域に、自動では分けてくれません。

OS Xは、正式なUNIXなのに〜。

また、ファイル名は、大文字小文字を区別して欲しいです。ですが、OS Xで使われるアプリケーションの中には(Adobeとか)、大文字小文字を区別しないファイルシステム前提で作られている物があります。

intel Macになってから、BOOTCAMPと言う仕組みを使って、Windowsをインストールして起動できる様になりました。ですが、Windowsを起動できる様にするためには、4番目のパーティションにある必要があります。

その時に面倒なのは、OS X 10.7 Lionになってから、リカバリー領域が勝手に作られる様になった事です。このリカバリー領域も、パーティションの一つなので、これを計算に入れないと、Windowsの起動ができなくなります。

それ以前に、OS Xインストーラの想定外のパーティション構成にしておくと、リカバリー領域の自動作成をしてくれません。リカバリー領域が無いと、OS Xを使う上で色々不具合が出てくるので、リカバリー領域を作るのは必須です。

2. インストール前後のパーティション構成

これらの条件を考えると、インストール前後のパーティション構成は、次の様になります。

2.1 OS Xインストール前

  1. EFI領域 … 何に使われているか理解していません。自動的に作られていますので、設定不要です。
  2. システム領域 … /Applicationsを含む。60GBに、実メモリ容量(例えば8GB)を加えた大きさ程度が目安。
    • 60GBは、/Appplicationsにどれだけのアプリを入れるかによる。何も入れなければ、40GB程度で十分?
    • 実メモリ容量を加えるのは、ハイバネーションのため。ノートPCの場合、必須。この機能をオフにする設定もあるが、バッテリーが無くなると、それまでの操作状態が消滅する。
    • 実メモリを8GB→16GBにしたら、その分、システム領域を余分に確保する必要あり。
  3. BOOTCAMP領域 … Windowsをインストール。64bit版なら40GB? アプリケーションをインストールする事も考えると、50GB〜60GB程度?
  4. ユーザ領域 … 残りのディスク領域全部。ドン!

2.2 OS Xインストール後

  1. EFI領域
  2. システム領域
  3. リカバリー領域
  4. Windows領域
  5. ユーザ領域

ちゃんと、Windows領域が4番目になりますので、Windowsのインストールと起動ができます。

3. パーティションの暗号化

ノートPCの場合、外に持ち出す事が考えられます。そうすると、置き忘れたり盗まれたりして、HDD/SSDの中身を覗きみられるかもしれません。それを防ぐために、File Vault 2を使って、暗号化しておきます。

本当は、次の記事の方法を使えば良いのだと思います。

ですが、私はデータ領域も含めて、新規インストールしたので、GUIのディスクユーティリティで、暗号化を指定してフォーマットしました。

上記の結果、パーティションテーブルは次の様になりました。

3.1 MacBook Air 13 (Mid 2012)の場合

$ diskutil list
/dev/disk0
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:      GUID_partition_scheme                        *251.0 GB   disk0
1:                        EFI                         209.7 MB   disk0s1
2:          Apple_CoreStorage                         69.5 GB    disk0s2
3:                 Apple_Boot Boot OS X               650.0 MB   disk0s3
4:       Microsoft Basic Data BOOTCAMP                60.0 GB    disk0s4
5:          Apple_CoreStorage                         120.5 GB   disk0s5
6:                 Apple_Boot Boot OS X               134.2 MB   disk0s6

3.2 MacBook Pro 13 (Early 2011)の場合

% diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         74.5 GB    disk0s2
   3:                 Apple_Boot Boot OS X               650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                50.0 GB    disk0s4
   5:          Apple_CoreStorage                         125.5 GB   disk0s5
   6:                 Apple_Boot Boot OS X               134.2 MB   disk0s6
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *74.2 GB    disk1
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                 Apple_HFSX Users_HD               *125.2 GB   disk3

困った事に、一度Core Strageに変換して、暗号化してフォーマットしてしまうと、パーティションを変更できなくなります。暗号化したパーティションを、暗号化無しで再フォーマットし、すべてのパーティションのCore Strageを解除しないと、再パーティションができません。

これには、かなりハマりました。

はっ! Windows領域の暗号化は?! 調べてみると、Windows8には、BitLockerと言う標準暗号化機能があるようですが、NTFSパーティションが2ついるみたい。

次の投稿を読むと、BOOTCAMPと共存させるのは、かなり難しそうです。う〜ん。

4. OSのインストール

パーティションの準備ができたら、次の手順で、OS XとWindowsをインストールします。

  1. 外付けDVD (Mountain Lion)で再起動
  2. Time Machineバックアップ(別HDD)からHD 70GBにリストア
    あるいは、Mountain Lionを新規インストール
  3. BOOTCAMP領域にWindows8インストール
    • 選択画面に”Windows”と”EFI”が出るが、”Windows”を選択して起動する(私の場合、そうしないとインストールできませんでした)
  4. 内蔵SSD (HD 70GB)から起動
  5. 旧マシンから「環境移行ユーティリティ」で移行
  6. Users HDを、/Usersにマウントする様に設定

5. 暗号化されたディスクの/Usersへのマウント

6番の、Users HDを、/Usersにマウントする様に設定は、次の方法で実現できます。

  1. diskutilで、ディスクのUUIDを得る
    % diskutil info /Volumes/Home/ | grep UUID
    Volume UUID:              1111AAAA-BBBB-CCCC-DDDD-1234ABCD5678
  2. sudo vifsで/etc/fstabに追加
    % sudo vifs
    UUID=1111AAAA-BBBB-CCCC-DDDD-1234ABCD5678 /Users hfs rw 1 0
  3. 再起動

次の記事と同じ方法です。

更に元記事は、次のウェブページの方法2になります。ありがとうございます。

この方法で、システム領域、ユーザ領域の暗号化ができるのですが、困った問題が起きます。それは、起動時にユーザ領域をマウントするためのパスワードを求められる事です。

私は、次の方法で解決していますが、正しい方法かどうかはわかりません。

  1. 初回、システム管理者(最初にMacをインストールした時のユーザ)でログインする
  2. Users HDの暗号化解除パスワードを入力する
  3. キーチェーンアクセスのログイン項目に保存する
  4. キーチェーンアクセスを開き、「ログイン項目」に入っている「Users HD」のキーを、「システム」に移動する

こうする事で、Users HDも暗号化が解除され、パスワード入力無しに/Usersにマウントされます。

これで、何となく使える様になったのですが、若干(?)問題があります。

OSの起動と、Users HDの暗号化解除のタイミングと、そしてログインのタイミングが若干違う様なのです。

その為、FinderやDockの情報が上手く反映(保存)されません。また、キーチェーンアクセスにアクセスするためのパスワードを、再度聞かれたりします。

なので、いったんログインした後、すぐにログアウトし、再度ログインします。一応これで、少なくても壁紙は元通りになります。でも、Dockや言語設定、Finderの設定が反映が記録されていない事があるのです。

困っていますが、今の所、解決策がありません。起動の度に、再設定すれば良いので、諦めて使っています。基本的に、シャットダウンはしませんので。スリープで運用しています。

Posted by お市のかた