ext3 から ext4 へ

パーティションの内容を保持しつつ ext3 から ext4 へのマイグレーション
今回はルートパーティションの /dev/sda7 について作業した.


基本的には ArchWiki に書いてある通りに.
https://wiki.archlinux.org/index.php/Ext4#Converting_ext3_partitions_to_ext4
適当な Live CD が無かったので Arch のインストールディスクを使った.

# tune2fs -O extents,uninit_bg,dir_index /dev/sda7
# fsck.ext4 -fDp /dev/sda7

fsck でちょっとつまづいたものの,問題無く通った.
/dev/sda7 をマウントできることを確認し,/etc/fstab を書き換えてリブート.


しかしブートの途中でルートパーティションのマウント時に No such device とか言われて失敗して起動できなかった.
ArchWiki の注意書きに

Warning: If the user converted their root (/) partition, a kernel panic may be encountered when attempting to boot. If this happens, simply reboot using the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk: mkinitcpio -p linux

とあって,これっぽいかんじだった.
fallback のほうだとたしかに起動できたので,

# mkinitcpio -p linux
# mkinitcpio -p linux-pae   # linux-pae を入れている場合

で作り直した後,通常通りに起動できることを確認した.


あとは extent を有効にするために chattr +e するとか.