Macでのホームディレクトリの変更

Macでホームディレクトリを変更するためのドキュメントです。

検証環境

OSMac OS X 10.6 Snow Leopard
HardwareMac mini with Snow Leopard Server(Late 2009)

そもそも何故このようなことをしようとしたか?

所有するMac miniの搭載HDDが余りにも速度が遅かった(サーバ版なのに5400rpmだった)ことに我慢できず、どうにかしようと試行錯誤し始めたことがきっかけ。 とりあえず、3つの方法を思いついた。

  1. SSDに換装してしまう。簡単に解決出来てしまう。これでは芸がないと思った。
  2. ソフトウェアRAIDを試す。実際にストライピングしたら、CPUが貧弱で、むしろアプリケーション側の体感速度に影響がでた。動作が不安定である。
  3. ホームディレクトリのパーティションを物理的に分ける。サーバ版のMac miniは2台のHDDを搭載しているので、1台目をシステム用、2台目をホームディレクトリ用に分ければ、負荷分散できると思った。
よって3の方法を試してみることにした。 結論から言うと、体感速度はある程度良くなった。 ユーザデータを独立したHDDから読み出してくるので、いくらランダムアクセスが遅いHDDでも、1台のHDDからアクセスするデータ量がそもそも減れば、待ち時間が減るのは自明。 ですが、絶対的な速度が改善するわけではないので、小手先の改善策ともいえる。 当たり前ですが、パーティションを分割してホームディレクトリを変更する際にも、この方法は利用できる。

ディスクユーティリティ

私は以下のようにフォーマットを行い、OSをインストールした。

フォーマットMac OS 拡張(ジャーナリング
disk0s2 "Lower"Macintosh HD
disk1s2 "Upper"Home HD

ホームディレクトリのコピー

$ mkdir -p /Volumes/"Home HD"/Users/hoge
$ sudo ditto -v -rsrcFork /Users/hoge /Volumes/"Home HD"/Users/hoge

※ ditto はファイルやディレクトリをリソースフォークを含んでコピーするOSX固有のコマンド。

ホームディレクトリのパスの変更

※ これはGUIで行う。変更後、再起動する。
[システム環境設定 → アカウント → ユーザ名(右クリック) → 詳細オプション → ホームディレクトリ]

/Volumes/Home HD/Users/hoge     ※ /Users/hoge から変更する。

元のホームディレクトリの削除

$ sudo rm -Rf /Users/hoge

シンボリックリンクの作成

※ 元のホームディレクトリのパスを参照してもエラーを吐かないように対策する。

$ sudo ln -s /Volumes/"Home HD"/Users/hoge /Users/hoge