/home ディレクトリを別パーティションに移動する

5回目のインストール前に気がついたこと

現在利用しているUbuntu 8.04 betaを含めると、6.06 LTSから数えて5回のクリーンインストールに挑戦してきた私。
前回の"Ubuntu 8.04 (Hardy Heron) betaをインストールしてみた。"にて紹介したように、/homeディレクトリを別のパーティションにしておいたので、
今回のアップデートほど苦労の少ないアップデートは初めてだ。

というわけで、/homeディレクトリはインストール後でも別のパーティションに移動できるので、是非挑戦してほしい。
*ただし、Life is a Gambleでは、今回紹介する方法について、個人のデータなどなどの保証はできない。その旨あらかじめ了承ください。

準備するもの

  • Ubuntu 7.10 インストール Live CD (今回紹介する手順は7.10を利用している前提)
  • HDD空き容量 (私は別HDDに/homeを移動した)
  • Google Docs (設定メモ用、オンラインで参照できればなんでもOK、あると便利)

すでにUbuntuがインストールされている環境では、利用中のHDDをアンマウントする必要があるので、インストール Live CDが必要になる。

それでは、手順の紹介

インストール Live CDにて、ブート
(久しぶりに使うような場合やダウンロードしたばかりの場合は、必ずLive CDのチェックをしておくこと)

Terminalを起動して、

sudo aptitude update && sudo aptitude install gparted ntfsprogs

パーティションエディタと念のため、NTFS (WinXPで使っているファイル形式)を変更する場合にNtfsProgsをインストール。

必要なアプリケーションのインストールが終わったら

sudo gparted

パーティションエディタを起動。

パーティションエディタで行うのは、もちろん/home用のパーティションを用意すること。
私の場合、リサイズは行わず新たに購入したHDDに/homeディレクトリに割り当てた。
どちらの方法であっても、/dev/sda1、/dev/hda1などのパーティションの名称はとても大切なのでメモを取っておこう。
私の場合、自分の手書きの文字にイマイチ自信が持てないので、Google Docsにメモを残した。

詳しいことはわからないが、少なくとも私の環境では、/home以外のパーティションは22GBくらいの容量を使用している。
利用方法は個人に依るので、自分の責任でパーティション計画を考えてほしい。

説明をカンタンにするために、/dev/hda5をリサイズし、新たに/dev/hda7というパーティションを作り出し、変更前の/homeは/dev/hda1というパーティションで暮らしていると仮定する。
*下記以下のコマンドでは、自分の環境と合わせて記述を変える必要があります。
ややこしいように思えるが、大事なことは、どのパーティションをリサイズし、どのパーティションに新たに/homeを引っ越すか?
という2点のみだ。

では、気を引き締めて、Terminalに戻って、

sudo mkdir /old
sudo mount -t ext3 /dev/hda1 /old
sudo mkdir /new
sudo mount -t ext3 /dev/hda7 /new

まずは、現在利用している/homeパーティションと、引越し先のパーティションをマウント。

cd /old/home
sudo find . -depth -print0 | sudo cpio –null –sparse -pvd /new/
sudo mv /old/home /old/home_backup
sudo mkdir /old/home

そして、現在の/homeをバックアップ!!!! (言うまでもなく、絶対に必要なフロー)。
ちなみに、home_backupというディレクトリにバックアップされる。

sudo cp /old/etc/fstab /old/etc/fstab_backup

/homeの住処の引越しを通知しなといけないので、fstabをバックアップ。

blkid

とタイプすると、

/dev/hda7/: UUID=”8b89a5c4-20ff-477c-a49e-c1ccb435bf11″ SEC_TYPE=”ext2″ TYPE=”ext3″

というような文字列があるので、UUID=”"の中の文字列をコピーして、メモへ貼り付けておく。

sudo gedit /old/etc/fstab

そして、gEditにて、fstabを開く。

/dev/hda7 UUID=8b89a5c4-20ff-477c-a49e-c1ccb435bf11 /home ext3

そして以上を追加。fstabはタブ区切りで記述されているはずなので、他の記述と合わせておいたほうがいいかも。
できたら、保存。gEditは終了。

再起動(Live CDを取り出して)すれば、新たな/homeへの引越しが完了しているはず。

もし、HDDの容量がギリギリなようであれば、

sudo rm -rf /home_backup

と/homeディレクトリのバックアップを削除できる。
*削除は、きちんと/homeへの引越し、その他設定で問題がないと判断したのみ行いましょう。

もし、失敗するような場合、
もう一度、Live CDで起動し、Terminalにて

sudo mkdir /recovery
sudo mount -t ext3 /dev/hda1 /recovery
sudo cp -R /recovery/home_backup /recovery/home
sudo cp /recovery/etc/fstab_backup /recovery/etc/fstab

とすれば、元の状態に戻せる。

私はパーティションのリサイズは実際には行ってはいないが、1度バックアップにお世話になった。
それくらいで、今まで何の問題もおこっていない。

とにかく、Ubuntuのように半年に一度くらいの頻度でアップデートしてくれるOSには欠かせない設定だろう。
実際、先ごろリリースされた、UbuntuユーザによるUbuntu改良点の集約サイト、Ubuntu brainstormでも、デフォルトで/homeを異なるパーティションでインストールするべき案がそれなりに支持されているよう。