以前 Ubuntu のパーティションを ext3 から ext4 に変換しましたが、性能を引き出すためにはちゃんと ext4 でフォーマットしようと思っていました。
Ubuntu 10.10 にアップグレードしたタイミングで、ついでに作業したのでその作業メモ。
本当はそろそろクリーンインストールするべきなのでしょうが、
いろいろと面倒なので(使用しているソフトで、もうリポジトリにないものがある)、
フォーマット前にバックアップしたデータをフォーマット後に書き戻す方法をとりました。
作業は wubi でインストールした Ubuntu 10.04 64bit 上で行いました。
構成
○/dev/sdb1 を ext4 にフォーマットする
・マウントするためにフォルダを作成
$ sudo mkdir /media/home
$ sudo mkdir /media/root
・マウント
$ sudo mount /dev/sdb1 /media/root
$ sudo mount /dev/sdb5 /media/home
・パーミッションを維持したままtarボール化
$ cd /media/root
$ sudo tar -cpf /media/home/root.tar .
・アンマウント
$ cd
$ sudo umount /dev/sdb1
・フォーマット後も同一の UUID を使用したいので、UUID を調べます
(UUIDが変わると /etc/fstab を書き換える必要がある)
$ ls -al /dev/disk/by-uuid/
/dev/sdb1 sdb17ade9470-73c5-488f-b7bd-472c7e646d34
・ext4 でフォーマット
$ sudo mkfs.ext4 -L root -U 7ade9470-73c5-488f-b7bd-472c7e646d34 /dev/sdb1
-L でラベルを指定
-U で UUID を指定
・パーミッションを維持したままデータを書き戻す
$ sudo mount /dev/sdb1 /media/root/
$ cd /media/root
$ sudo tar -xpf /media/home/root.tar
・tarボールの削除
$ sudo rm /media/home/root.tar
○/dev/sdb5 を ext4 にフォーマットする
・パーミッションを維持したままtarボール化
$ cd /media/home
$ sudo tar -cpf /media/root/home.tar .
・アンマウント
$ cd
$ sudo umount /dev/sdb5
・UUID を調べる
$ ls -al /dev/disk/by-uuid/
/dev/sdb5 0b71aa27-1879-4322-a68b-a2dd9f37a30e
・ext4 でフォーマット
$ sudo mkfs.ext4 -L home -U 0b71aa27-1879-4322-a68b-a2dd9f37a30e /dev/sdb5
・ データを書き戻す
$ sudo mount /dev/sdb5 /media/home
$ cd /media/home
$ sudo tar -xpf /media/root/home.tar
・tarボールの削除
$ sudo rm /media/root/home.tar
○PBR にインストールしてある GRUB がフォーマットによって消えてしまったので、書き直し。
$ sudo grub-install --force /dev/sdb5
無事に ext4 になりましたが、変化が分からない…
ちなみにフォーマットは割と早く終了しました。