きっかけ
Arch Linuxのインストール時オプションでsdb2を/、sda1を/homeと指定したのですが、なぜか適用されず、sdb2内に/homeができてしまったので、その時の作業のメモです。割とざっくり解説なので気をつけてください。
参考にしたサイト
Hatena Blog かみぽわーる「ディスクのUUIDを調べる方法」
Qitta @kihoair「fstabについて」
手順
sdb2が現在/(/homeを含む)として使用されているパーティションでsda1がext4でフォーマット済みの新たな/homeです。
1. rootでログインできるようにする
ミスるとrootしかログインできなくなるのでSSHを使って作業をする場合は
vim /etc/ssh/sshd_config
を追記or変更で
PermitRootLogin yes
にします。その後
sudo systemctl restart sshd
でサービスを再起動してください。Ubuntu等の場合は追加でrootでログインできるように作業が必要なので調べてやってください。
2. ログアウトしrootでログインする
root以外のアカウントではログインしていない状態(GUI含めて)
本当はシングルユーザーモードとかにして作業を行うべきですが、SSHを使って作業をしたかったのでしませんでした。
3. sda1をマウント
mount /dev/sda1 /mnt
で/mntにマウントします。
4. コピー
cp /home/* /mnt/ -ar
とか
rsync -avz /home/ /mnt/
でコピーします。
5. UUIDの確認
/dev/sda1って指定してもいいですが、UUIDで指定したほうが確実なので、
ls -l /dev/disk/by-uuid/ | grep sda1
でUUIDを取得します。
6. fstabの編集
cp /etc/fstab /etc/fstab-back
とかでバックアップを取ったあとに、
vim /etc/fstab
をひらき、他に習って
#/dev/sda1
UUID={UUID} /home ext4 rw,relatime 0 2
を追記しました。
7. /home/の削除
適当に
rm /home/* -R
とかで削除します。
8. 再起動
再起動後に一般ユーザーでログインできて、dfでsda1が/homeにマウントされていれば成功です。
SSHを使った場合は設定を戻してください。
おわりに
意外と簡単にできました。