bokumin.org

RSS Sitemap Mail
ritual-clearcut

LinuxでSSDからHDDに特定のディレクトリを移行する(Btrfs)

はじめに

家のデスクトップPCにHDDを追加しました。今までSSD(256GB)に全システムを構成していましたが、HDDが増えたので/home(ユーザーデータ)と/var(ログ・キャッシュファイル)をそちらに移すことにしました。

システムファイルとユーザーデータを分けておくと、OSの再インストールや更新の際に特定ディレクトリだけ残して作業できるので、単純に構成として楽になるだろうという判断です。それでは実際の手順を書いていきます。

手順

新しいドライブ(/dev/sdb2)に@homeと@varという名前でBtrfsサブボリュームを作成します。

sudo mkdir /mnt/newhdd
sudo mount /dev/sdb2 /mnt/newhdd
sudo btrfs subvolume create /mnt/newhdd/@home
sudo btrfs subvolume create /mnt/newhdd/@var

既存の/homeと/varの内容を新しいサブボリュームに移行します。

su -l
rsync -avxHAX /home/ /mnt/newhdd/@home
rsync -avxHAX /var/ /mnt/newhdd/@var

3. バックアップ・既存ディレクトリの削除

念のため退避してから削除します。/varを削除する前に、必ずシステムで動いているアプリケーションを停止しておいてください。

mkdir home_old; cp -r /home /home_old
mkdir var_old; cp -r /var /var_old
rm -rf /home/*
rm -rf /home/.*
rm -rf /var/*
rm -rf /var/.*

4. fstabの更新

# /dev/sdb2のUUIDを確認
blkid

# fstabに以下を追記
vim /etc/fstab
UUID=yourUUID /home btrfs subvol=@home,defaults,noatime 0 0
UUID=yourUUID /var  btrfs subvol=@var,defaults,noatime 0 0

※/homeと/varの既存のfstab行はコメントアウトしておいてください。

5. 再起動・確認

sudo reboot

# 起動後、正しくマウントされているか確認
df -h
...
/dev/sdb2       464G  1.6G  461G   1% /home
/dev/sdb2       464G  1.6G  461G   1% /var

/homeと/varが/dev/sdb2としてマウントされていれば完了です。

まとめ

mv(実質rsyncでのコピー)→ サブボリューム作成 → 移行 → fstab書き換えという流れで、作業自体はそこまで複雑ではありませんでした。
/homeと/varを分離しておくと、今後OSを入れ直すときにもユーザーデータやログをそのまま残せるので、そのあたりの運用のしやすさが一番のメリットだと感じています。

おわり