ext4 becomes usable and has various advantages compared to the old grown ext3. Still, a conversation remains backwards compatible so only new files written will be in ext4 format while the old files remain in ext3 mode.

Always make a backup! And in case of changing /, /home or /boot you should keep the filesystems unmounted (live cd) changing the fs where grub runs on also requires a grub reinstall!

Open /etc/fstab to get an idea which filesystems should be converted. Furthermore, if there’s the UUID management (which is way more safe than depending on /dev/sd*), use df -h to find out which device should be converted.

$ sudo vim /etc/fstab

$ df -h | grep home
/dev/sdb4     ext3    131G   68G   57G  55% /home

Now change the filesystem to ext4 in /etc/fstab and reboot in order to activate kernel mode for ext4

UUID=20869f08-830d-41cb-8ac6-bdc9c0eeaf02     /home                ext4       defaults,noatime,errors=remount-ro 0 2

Now check that this is being done.

$ df -h | grep home
/dev/sdb4     ext4    131G   68G   57G  55% /home

Now for the fun part – enable the ext4 feature set. Best would be to have /home unmounted, but it could work on the fly too.

$ sudo tune2fs -O extents,uninit_bg,dir_index /dev/sdb4
tune2fs 1.42-WIP (02-Jul-2011)

Now it’s time to let fsck check the filesystem. This can be resolved by another reboot, as tune2fs marked the fs as ‘dirty’ meaning that fsck will check the fs on boot. If automatic fsck fails on boot, type your root password and run it manually as shown above

# fsck /dev/XXX

After having finished, issue another reboot by

# init 6

Special note on changing the filesystem where grub is installed (/ or /boot):

It works basically the same as noted above, but grub cannot handle ext4 by default. Make sure that grub2 is installed

# apt-get install grub2

configured

# update-grub

and targetted on the correct device (if installed on /dev/sdb3 the device is /dev/sdb).

# grub-install /dev/sdb

It would be ok for the first reboot because the existing kernel files are not converted to ext4 and grub can read those but when upgrading the kernel new images will be written into /boot and grub won’t be able to handle ext4 then. So beware! 🙂

%d bloggers like this: