日本語 English
インターステラ株式会社の技術ブログです

Macのホームフォルダを外付けディスクに移動する

ご無沙汰しています。
阿形です。

今回はMacのホームフォルダを外付けディスクに移動する必要があったので、その作業方法のメモ代わりに記事にしてみます。
やってみると細かいところで面倒なところがあったので、どなたかの参考になれば幸いです。

外付けディスクのフォーマット

まずホームフォルダを移動するつもりの外付けディスクをMacに接続します。

ディスクがマウントされたらAPFSなどで再フォーマットします。その際に、ディスクの名前なども設定します。
今回はExternalSSDという名前にしました。

なお、自分は最初「External SSD」とExternalとSSDの間に空白文字を入れていたんですが、一部のコマンドラインのツールがこの空白をうまく処理できなくてトラブりました。
他のアプリやツールにも同様の問題があるかもしれないので、空白文字は入れないようにしたほうがいいと思います。

外付けディスクの設定

続いてFinderからディスクの情報を開きます。(ディスクのアイコンをクリックして⌘+ I)
開いたディスクの情報のウィンドウの一番下にある「このボリュームの所有権を無視」のチェックを外します。
デフォルトの状態の外付けディスクは、Mac上のどのユーザーからもアクセスできるように所有権を無視する設定になっていますが、これを無効化しておかないと、ホームフォルダが他の人からも丸見えになってしまいます。

管理用アカウントの作成

Mac本体のディスク上にユーザーが存在しない場合、外付けディスクに故障などによりアクセスできない場合にログインができなくなってしまいます。万一に備え、本体のディスク上に管理用のアカウントを作成しておきます。

これにより、外付けディスクにホームフォルダを移動してなにかトラブルがあった場合も、Macにログインできないという最悪の事態を避けることができます。

なお、移動予定のアカウントの他に、すでに管理者権限を持つアカウントがあるのであれば、改めて作る必要はありません。

ホームフォルダのコピー

ホームフォルダを外付けディスクにまるごとコピーします。Finderでドラッグ&ドロップしても構わないのですが、容量が大きい場合途中でなにかトラブルがあった場合やり直しになると悲しい気持ちになります。

なので、今回は使い慣れていてリトライのできるrsyncを使用してやってみました。

ターミナル.appの権限設定

コマンドの実行はターミナルから行うことになるので、ターミナル.appに権限を設定する必要があります。
権限を設定しないと、~/Library/以下のコピー時にOperation not permitted (1)というエラーが出てしまいます。
コントロールパネルの「セキュリティとプライバシー設定」を開き、「プライバシー」タブを開きます。
左側のリストの「フルディスクアクセス」を選択し、右側のリストの「ターミナル.app」にチェックを入れます。

rsyncコマンドの実行

MacOS標準のrsyncはバージョンが古いので、homebrewでインストールしたrsyncを使用します。
今回使用したバージョンは3.2.3でした。

以下のようなコマンドでホームフォルダをコピーします。
コマンドの実行の前に、ターミナル以外のアプリケーション等はすべて終了しておきます。

sudo rsync -aHAXNP /Users/agata /Volumes/ExternalSSD/Users/

各オプションは以下のような意味です。

--archive, -a            archive mode; equals -rlptgoD (no -H,-A,-X)
--hard-links, -H         preserve hard links
--acls, -A               preserve ACLs (implies --perms)
--xattrs, -X             preserve extended attributes
--crtimes, -N            preserve create times (newness)
-P                       same as --partial --progress
	--partial                keep partially transferred files
	--progress               show progress during transfer

ハードリンクを残すようにしてますが、これは不要かもしれません。(むしろないほうがいい?)

自分の場合1TBぐらいデータがあったので、実行にはめちゃめちゃ時間がかかりました。
外付けディスクを比較的高速なSSDにしていたのでまだましでしたが…。

rsyncの実行が終わったら、エラーが出ているかをチェックしておきます。
数件程度エラーが出るかもしれませんが、実行中のアプリなどの影響によりコピーできないものがあったりするので、致命的でない(アプリが自動生成するようなファイルなど)なら無視しても構わないと思います。

ホームフォルダの設定を変更

syncが終わったら、コントロールパネルで「ユーザーとグループ」を開き、ホームフォルダをコピーしたユーザーを左側リストから選択、右クリックで「詳細オプション…」を開きます。

詳細オプションの中の「ホームディレクトリ」のフィールドを、コピーした先のフォルダに修正し、「OK」ボタンを押します。

修正が終わったら、Macを再起動で作業は完了です。

移動したユーザーでログインしてみて、動作に問題がないか確認しましょう。

今回は以上です。

SNSでフォローする