Regrettably, my office workstation has numerous ext2 and ext3 partitions. At some time in the future, unknown, I will be able to obtain a few 4 Tbyte drives, and redo the entire filesystems as xfs under logical volumes, not partitions. For now, I have upgraded to SL 7.2 and installed the latest elrepo appropriate nvidia driver and utilities rpms. However, the system would not boot until I modified /etc/fstab to eliminate mounting of a number of the ext2 partitions. Hence, I plan to migrate all partitions to ext4 as this purportedly can be done in place. I cannot find a utility or script that does this automagically, nor specific EL7 instructions. I have found a set of instructions by which one migrates ext2 to ext3 and then ext3 to ext4. I have appended these below. Has anyone done this and, if so, does the procedure below "work"? is there a better procedure or an automagic utility?

I did a perusal of this list, but can find no such instructions for SL7. Given the number of changes between many of the older SL major releases and the current one, it seemed wise to use a SL7 proven methodology.

Yasha Karant

It is possible to enable journalling, extents, directory indexes, and uninitialized block groups for a modest speedup.

First, ensure that your e2fsprogs is up to date. Newer versions have many, many bug fixes.

Second, ensure that your filesystem is in good working order!

|# umount /dev//DEV/|

|# e2fsck -fy /dev//DEV/|

Next, to change an ext2 filesystem to ext3 (enabling the journal feature), use the command:

|# tune2fs -j /dev//DEV/|

To enable the ext4 features on an existing ext3 filesystem, use the command:

|# tune2fs -O extents,uninit_bg,dir_index /dev//DEV/|

WARNING: Once you run this command, the filesystem will no longer be mountable using the ext2 or ext3 filesystem driver!

After running this command (specifically, after setting the uninit_bg parameter), you MUST run fsck to fix up some on-disk structures that tune2fs has modified:

|# e2fsck -fDC0 /dev//DEV/|

Finally, edit */etc/fstab* to change the filesystem type to ext4.

Notes:

 * Running fsck will complain about "One or more block group descriptor
   checksums are invalid" - this is expected
   <http://marc.info/?l=linux-ext4&m=125834107118172&w=2> and one of
   the reasons why tune2fs requests to fsck.
 * By enabling the *extents* feature new files will be created in
   extents format, but this will not convert existing files to use
   extents. Non-extent files can be transparently read and written by
   Ext4. You can convert files to extent format by running chattr +e on
   each file. Starting in e2fsprogs 1.43 you will be able to run e2fsck
   with -E bmap2extent -fy to do this conversion.
 * If you convert your root filesystem ("/") to ext4, and you use the
   GRUB boot loader, you will need to install a version of GRUB which
   understands ext4. Your system may boot OK the first time, but when
   your kernel is upgraded, it will become unbootable (press /Alt+F+F/
   to check the filesystem).
 * If you do the conversion for the root fs on a live system you'll
   have to reboot for fsck to run safely. You might also need to add
   /rootfstype=ext4/ to the kernel's command line so the partition is
   not mounted as ext3.
 * *WARNING*: It is NOT recommended to resize the inodes using
   resize2fs with e2fsprogs 1.41.0 or later, as this is known to
   corrupt some filesystems.
 * If you omit "uninit_bg" on the tunefs command, you can skip the fsck
   step.


<<attachment: ykarant.vcf>>

Reply via email to