この記事は公開から4年以上経過しています。
システムドライブが肥大化したarchlinuxの/home
ディレクトリを、別のデータドライブへ移行した際の作業手順メモです。
root権限で作業を行います。問題が発生しても回復ができるようにバックアップを取るなど、充分注意して作業してください。
作業手順
1. シングルユーザモードでログイン
システムに誰もログインしていない状態で
sudo systemctl isolate rescue.target
または
sudo systemctl emergency
コマンドでシングルユーザモードに切り替え、root
でログインします。
グラフィカルログインの場合はログイン画面でCtrl
+Alt
+F2
を押下するなどで仮想コンソールに切り替えてログインしてください。
※以降はrootでの作業となります。
2. /homeディレクトリを移行先にコピー
現在の/home
ディレクトリを丸々新しいドライブへコピーします。
下記の例では/home
をコピー先ドライブdrive_x
直下のhome
ディレクトリにコピーしています。
rsyncのパラメータはバックアップ時の定番パラメータ-auv
と、スパースファイルを維持したままコピーするためのオプションS
を指定していますが、S
の指定については任意です。
2021.8.14追記:
rsyncコマンドオプションにACLや拡張ファイル属性を利用している場合を考慮するオプションAX
を追加しました。
rsync -auvSAX /home/ /mnt/drive_x/home/
3. マウントポイントの作成
/home
ディレクトリの名称を変更(バックアップ)して、マウントポイント用に新しい空の/home
ディレクトリを作成します。
mv /home /home.bak
mkdir /home
4. fstabの更新
vim等で/etc/fstab
ファイルを開き、移行先のhome
を/home
にマウントするための情報を追記します。
本例では既にマウントされているディスク上のツリーへのマウントのため、バインドマウントである点に注意してください。
/mnt/drive_x/home /home none bind 0 0
5. fstabを反映
上記手順でfstab
に追記したマウント情報をシステムに反映します。
mount -a
6. 移行結果の確認
移行先の/mnt/drive_x/home
へ/home
からアクセスできるかを確認します。ここでは簡易的にユーザ毎のホームディレクトリが存在するかどうかのみを確認していますが、可能な限りコピー前後のディレクトリに差異がないかをチェックしておくことをオススメします。
ls -al /home
以上で/home
の移行作業は終了です。このままGUIにログインしたい場合は
systemctl isolate graphical.target
でグラフィカルターゲットに切り替えてログインすることも可能です。
/home
をリネームしてバックアップした/home.bak
については、移行に問題がないかどうか暫く様子を見てから必要に応じて削除して下さい。
参考ウェブサイトなど
- archlinux wiki
Rsync によるフルシステムバックアップ
以上です。