Linuxの/homeをSSDに移行しよう
久々にシステム関連の話題。メインLinuxマシンのHDDをSSDに変えてみました。(以下はUbuntuベースのLinuxを基準に記載していきます。)
Partitioning/Home/Moving - Community Help Wiki
mv: cannot move `/home' to `/old_home': Device or resource busy - Ask Ubuntu
今までもSSDをシステムディスクとして使用していたが、/homeのパーティションはHDDのままであった。この度、/homeもSSD化し高速化に挑戦。
当初、HDDにあった元/homeをSSDへrsyncするだけで行けるかと思ったが、コトはそんなに単純ではなかった。/etc/fstabに新しい/homeを記載して再起動したら、/homeが失われた形で認識され少し痛い目を見ることに・・・。気を取り直して上記のサイトを参考にして行ったら、比較的苦労せずに移行は完了した。ざっと手順を示すと以下のようになる。
1. SSDをext4でフォーマット
フォーマットにはgpartedを使用した。パーティション作成と同時にフォーマットもext4で行う。
2. /etc/fstabの編集
fstabのバックアップを取得後、viで内容を編集。geditやnanoといったエディタはどうも好きになれない。漢ならやはりviである。テンポラリのマウントポイントをfstabに記載する。
UUID=???????? /media/home ext4 defaults 0 2
ちなみに「????????」にあたるUUIDは以下のコマンドから調べることができる。予め追加したSSDのUUIDを調べておく。
ls -l /dev/disk/by-uuid
予め/media/homeのマウントポイントとなるディレクトリも作成しておく。
sudo mkdir /media/home
そしてマウント。
sudo mount -a
3. rsyncでデータをコピー
その後/media/home以下にユーザディレクトリを作成し、先に作成したマウントポイントへrsyncを行う。
rsync -av --delete --progress --stats /home/<USER>/ /media/home/<USER>/
4. さらにまた/etc/fstabを編集
rsyncが終了したら、今度はfstabの内容を/homeに戻しておく。
UUID=???????? /home ext3 defaults 0 2
5. 元/homeをリネーム
ここからがちょっと悩んだ場所。以下のコマンドをいきなり実行してもすでに元/homeはマウントされているのでリネームできない。
cd / && sudo mv /home /old_home && sudo mkdir /home
まずこのコマンドを実行する前にマウントを外す必要がある。
a. log outする
b. コマンドラインモードにするため、
[Ctrl] + [Alt] + [F1]を同時押し
c. rootにユーザ変更
sudo su -
d. /homeが使用されていないかチェック。何も出力されなければOK。
lsof -n | grep \/home\/
e. /homeをアンマウント
umount /home
f. そしてようやく/homeをリネーム
cd / && sudo mv /home /old_home && sudo mkdir /home
g. 新しい/homeをマウントする
sudo mount -a
h. グラフィカルモードへ戻り、通常ユーザで再ログイン
[Ctrl] + [Alt] + [F7]を同時押し
さてこれで新しいSSDへの移行は済みました。しかし、SSDは通常HDDと比べて高価であり、かつあまり容量がありません。VMなどの巨大ファイルを載せるにはあきらかに役不足。そこで、元あったHDDはVMイメージ保管用ディスクとして再利用します。またfstabをいじります。ここでもマウントポイント「/mnt/hdd」は予め作成しておきます。
sudo mkdir /mnt/hdd
fstabを編集し、以下を追加。
UUID=???????? /mnt/hdd ext4 defaults 0 2
※「????????」部分は元あったHDDのUUIDを記入。
再度「sudo mount -a」でマウントを行い、VMイメージファイルが保管されているHDDの場所にシンボリックリンクを張る。
ln -s /mnt/hdd/xxxx/VMware /home/<USER>/VMware
こうしておけばHDDも無駄なく使え、SSDの速さも活かせます。もっともVMを起動するときは少し遅くなってしまいますが、これについてはSSDが安くなるまで待ちませう。