[1] FractalizeR’s WebSite » CentOS: Migrating root (and any other) filesystem from ext3 to ext4
[2] Ext4 Howto - Ext4
# yum update # yum install e4fsprogs
まずはrootパーティション以外で実験。/etc/fstabを編集し対象パーティションのファイルシステムタイプをext3からext4に修正。ext3のファイルシステムはext4としてもマウントできる。ext4 - Wikipedia参照。
# vi /etc/fstab
ext4対応のinitrdを作成。
# mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old # mkinitrd -v --with=ext4 /boot/initrd-`uname -r`.img `uname -r`
作成したinitrdを使うため再起動。
# reboot
再起動したら対象のパーティション(ここでは/dev/sdc2とします)をアンマウントして、ext4に変換。tune2fsではなくtune4fsを使用していることに注意。オプションの意味は[1]参照。
# umount /dev/sdc2 # tune4fs -O extents,uninit_bg,dir_index,flex_bg -m 1 /dev/sdc2"Please run e4fsck on the filesystem."と言われるので実行します。[1]ではe4fsckではなくfsckにしていますが、ここではe4fsckにしてみます。オプションは[1]を真似します。
# e4fsck -pvfDC0 /dev/sdc1 /dev/sdc1: One or more block group descriptor checksums are invalid. FIXED. /dev/sdc1: Group descriptor 0 checksum is invalid. /dev/sdc1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options)すると[1]に書かれていた通り、-pオプションを外すように言われるので外して再実行。
# e4fsck -vfDC0 /dev/sdc1すると
e4fsck 1.41.9 (22-Aug-2009) One or more block group descriptor checksums are invalid. Fixと聞かれるのでyを押します。あとはしばらく待ちます。?
無事変換が終わったらマウントします。
# mount /dev/sdc1