MacOS Tips

ユーザーのホームディレクトリ移動


これまでOS 9ではユーザーの好きなパーティションや別のボリュームを共有フォルダなどに指定する事が出来たが、OS XのデフォルトではUsers(ユーザー)以下の場所から移動する事ができない。
この状況を解決すべく、すでにいくつかのソフトや方法が存在するが、ここでは同一Macに3基のHDDを搭載し、1基を起動ボリューム、2基をバックアップがとれるようにRAID(Mirror)を組み、さらにこのボリュームへ起動ボリュームからホームディレクトリを移動する方法を紹介したい。
基本的に自身の覚え書き的なページであるため、以下に記述された方法を実行する場合は、自己の責任下において行って頂きたい。
勿論、Appleの保証外であると思われるので、心配な方はホームディレクトリのバックアップを取っておく事をお勧めする。

まずは現在のホームディレクトリを確認しておこう。

上図内のカーソルが示しているホームフォルダ(server)を、用意したボリューム(jpa)に移動する作業となる。
そんな人はいないと思うが、くれぐれも「ドラッグ&ドロップ」などしないように。w

基本的にはターミナルでの作業が中心となるので、まずその画像をみてみよう。


ターミナルでの作業自体はこれだけである。実にあっけない。
とにかく、上の画像を元に順を追って説明していく。
 ターミナル  /アプリケーション/ユーティリティ/ターミナル

なにはともあれターミナルを起動する。
Darwinのお出迎えのあと、3行目に「ユーザー名%」と表示され、半角スペース開いたところでカーソルが待機状態になる。ここからrootユーザーで操作を行うための「sudo」コマンドを入力する。

[localhost:~] ユーザー名% sudo su

リターンキーを押すとパスワードを要求されるので、そのままユーザーパスワードを打ち込む。
この時、ターミナル上には表示されないので、パスワードを打ち込んだらそのままリターンキーを押そう。
この時点でrootユーザーでのログインが完了し待機状態になるので、続いて現ホームディレクトリから新しいボリュームへとフォルダのコピーを行うため、「ditto」コマンドを入力する。

[localhost:/Users/ユーザー名] root# ditto -v -rsrcFork /Users/ユーザー名 /Volumes/コピー先ボリューム名/ユーザー名

リターンキーを押した直後に「Copying」と表示され、データのコピーが始まる。
データ量によってはそれなりの時間を要するので暫く待とう。
コピーが完了すると再び「root#」で待機状態になるので、次に元のホームディレクトリをリネームする作業に入る。
(ここでは「oldserver」としているが別に何でも構わない)
尚、元のホームディレクトリをリネームするにはちょっとした訳がある。万が一移動に失敗してもすぐに復帰出来るようにする為なので、「ヤッティマイナァ」な人はこの時点で削除しても構わないだろう。
後々泣くのは私ではないので、関知しないことにする。

[localhost:/Users/ユーザー名] root# mv /Users/ユーザー名 /Users/他のフォルダ名

リターンキーを押したらフォルダ名の変更は完了。いよいよ新しいホームディレクトリにユーザー以下を指定する。

[localhost:/Users/ユーザー名] root# ln -s /Volumes/コピー先ボリューム名/ユーザー名 /Users

以上でターミナルでの作業は完了。exitコマンドでログアウト後、ターミナルを終了しよう。


さて、ここでどのように変化したか確認しておきたい。
少々見づらいかもしれないが、ユーザー以下に「server」へのシンボリックリンクが張られているのが分かる。
(リネームした元のホームフォルダは"Panther"から実装された「アーカイブを作成」で圧縮している)

移動先のボリュームを確認してみよう。

元のファインダーから上図のように変化していれば成功なので最後の仕上げにかかりたい。


 NetInfoマネージャー  /アプリケーション/ユーティリティ/NetInfoマネージャー

NetInfoマネージャーを立ち上げて、「users/ユーザー名」の中のプロパティ「home」を選択し、値の部分を新しく指定したホームディレクトリまでのパスに書き換える。

下図のように書き換えたら、メニューバーの「ドメイン」から「変更内容を保存」を選び、設定を有効にする。

NetInfoマネージャーを終了したら、最後に「システム環境設定」を開き、共有を有効にしているのであれば一旦停止して再度設定し直せば、ネットワーク上の他のパソコンからも新しいディレクトリが見えるようになっているはずである。

・・・っと思ったらダメだった。本体も再起動しないと有効にならないでやがんの。
2003.11.26


いやぁ、それでもまだ許してくれないらしい!
私の環境だと、Mac・Windows混在のローカルネットワークで、Windows側で製作したファイルをそのまま保存すると、「グループアクセス権を持たないファイル」が出来てしまう。
この症状の解決は、「アクセス権を持たないファイルが出来てしまう問題の解決」で説明していくので、そちらを参考にしてもらいたい。(もっと良いタイトルネーミングないのかねw)
2003.12.01
参考書籍

MacOSX UNIX的徹底活用講座


―全部フリーソフトで作る―
自宅サーバーfor MacOS X



MacOS Xターミナルコマンド
ポケットリファレンス
参考サイト
Taylorの自宅サーバ
http://taylor.gotdns.org/
NOTE
sudo
スーパーユーザー(root)権限でのコマンド実行が可能

su
一時的に他のユーザーになる為のコマンド。
「sudo su」なら、一時的にスーパーユーザーとしてログイン出来る。
ちなみに、suのまえに「-」オプションを付けると、そのユーザーとしてログインすることになる。


ditto
ファイル複製用のコマンド。
dittoだけではデータフォークのみ複製してしまうので、作業画面では処理表示用に「-v」オプションと、リソースフォークを複製する「-rsrcFork」オプションを併用している。


mv
ファイルの移動という役割もあるが、ここではファイル名の変更として使われる。

ln
リンク作成用のコマンド。MacOSで言うエイリアスのようなもの。
「-s」オプションを付ける事によって、シンボリックリンクを作成できる。
シンボリックリンクの特徴として、ディレクトリへのリンクや、他のボリューム上へのリンク作成などが可能になる。
注意
  • 「%」 はプロンプトを表しています。実際の画面では入力の必要はありません。
  • 各コマンドを入力した後は、リターンキーを押すことにより、入力したコマンドが実行されます。
  • 画面をよく見ると分かりますが、コマンドとコマンドの間は半角スペースで区切られています。入力の際は注意して下さい。
動作環境
PowerMac G4
Dual450MHz AGP
メモリ:768MB
HD:20G (System)
HD:30G×2 (RAID)
OS:10.3.1 Panther