2004-12-30

osXでmount

unixを使ったことのある人なら多分/homeや/usr/local位は別パーティションを当てたいと思うのではないか、などと思う。俺はそうやから。で、やってみた。TigerじゃなくてPanterやけど。

参考にしたのはLife with MacOSXという日記サイトらしき所の去年の6月の11日のエントリ。
ぐぐって見つけたんやけど結構面白そう...また暇があったらチェックしてみよう。

まず何を別にするかやけど、/Usersと/usr/localを分けようと思った。/usrはいろいろ入っていてややこしそうだったのと、/ApplicationsやらはどのみちOSを入れ直すたびに入れ直さなきゃいけないので一緒かな、ということで。

基本的にすることは3つ。別パーティションを用意して内容をコピーするのと、/etc/fstabファイルでマウントポイントを設定するのと、vsdbutilで所有権をちゃんと識別するように変更すること。

最初のコピーについては、/Usersはいるけど/usr/localは空っぽなんで必要ない。
/UsersにはUsers、/usr/localにはlocalというパーティションを用意して、Usersにはrootでcp -Rfしてファイルを全部コピーした後chownで各ユーザのパーミションに直しておく。
あと、ちゃんと読み込めていることを確認するために用意したパーティションの直下になんかファイルを置いたりした。

で、今度はマウントポイントの設定。の前にいったん用意したパーティションをディスクユーティリティでアンマウントしておく。
アンマウントがすめば、いよいよ設定ファイルを記述する。記述するのは以下の2行。
LABEL=Users /Users hfs rw
LABEL=local /usr/local hfs rw

このファイルの書式は、
LABEL=[ボリュームラベル] [マウントポイント] [フォーマット] [読み書きモード]
指定したボリュームラベルのボリュームを指定したマウントポイントにマウントする、hfsもhfs+もフォーマットはhfsと書き、読み書きモードは読み込み専用はro、読み書きならrw、「,」に続けてnoautoとすれば自動マウントされないらしい。

設定がすめば元フォルダを消してからマウントしてみる。これもディスクユーティリティを使う。で、ちゃんと設定したマウントポイントにマウントできるかどうか確かめてみたりする。ちなみにデスクトップにドライブを置く設定にしていれば、デスクトップにも出てくるので慌てないように。
このときにうまく/usr/localがマウントできなくなってしまってちょっとはまった。どうやら作業中に誤ってマウントできているディレクトリをrmしてしまったらしい。この場合、mkdirでマウント先フォルダを作ってからマウントしたらうまくいった。

最後に所有権の認識のモードを設定する。これにはvsdbutilというのを使う。これはsuで使わないといけない。こんな感じ。
vsdbutil -a /Users
vsdbutil -a /usr/local

-aは認証チェックを有効にするオプションで、ほかに何やらチェックするらしい-c、無効化する-d、全部初期化する-iというのがある。で、その後は操作する対象のディレクトリらしい。

以上でとりあえず動いている。なんか問題があったらまた書こうっと。

0 件のコメント: