File Systems

 

File Systems


 

The ext3 File System

The default file system, ext3 is essentially an enhanced version of the ext2 file system that provides:

Availability

After an unexpected power failure or system crash (also called an unclean system shutdown), each mounted ext2 file system on the machine must be checked for consistency by the e2fsck program. This is a time-consuming process that can delay system boot time significantly, especially with large volumes containing a large number of files. During this time, any data on the volumes is unreachable.

The journaling provided by the ext3 file system means that this sort of file system check is no longer necessary after an unclean system shutdown. The only time a consistency check occurs using ext3 is in certain rare hardware failure cases, such as hard drive failures. The time to recover an ext3 file system after an unclean system shutdown does not depend on the size of the file system or the number of files; rather, it depends on the size of the journal used to maintain consistency. The default journal size takes about a second to recover, depending on the speed of the hardware.

Data Integrity

The ext3 file system provides stronger data integrity in the event that an unclean system shutdown occurs. The ext3 file system allows you to choose the type and level of protection that your data receives. By default, Red Hat Linux 9 configures ext3 volumes to keep a high level of data consistency with regard to the state of the file system.

Speed

Despite writing some data more than once, ext3 has a higher throughput in most cases than ext2 because ext3's journaling optimizes hard drive head motion. You can choose from three journaling modes to optimize speed, but doing so means trade offs in regards to data integrity.

Easy Transition

It is easy to change from ext2 to ext3 and gain the benefits of a robust journaling file system without reformatting.

If you perform a fresh installation of Red Hat Linux 9, the default file system assigned to the system's Linux partitions is ext3. If you upgrade from a version of Red Hat Linux that uses ext2 partitions, the installation program allows you to convert these partitions to ext3 partitions without losing data.

 

Reverting to an ext2 File System

Because ext3 is relatively new, some disk utilities do not yet support it. For example, you may need to shrink a partition with resize2fs, which does not yet support ext3. In this situation, it may be necessary to temporarily revert a file system to ext2.

To revert a partition, first unmount the partition by logging in as root and typing:

umount /dev/hdb X

In the above command, replace /dev/ hdb with the device name and X with the partition number. For the remainder of this section, the sample commands will use hdb1 for these values.

Next, change the file system type to ext2 by typing the following command as root:

/sbin/tune2fs -O ^has_journal /dev/hdb1

Check the partition for errors by typing the following command as root:

/sbin/e2fsck -y /dev/hdb1

Then mount the partition again as ext2 file system by typing:

mount -t ext2 /dev/hdb1 /mount/point

In the above command, replace /mount/point with the mount point of the partition.

Next, remove the .journal file at the root level of the partition by changing to the directory where it is mounted and typing:

rm -f .journal

You now have an ext2 partition.

If you permanently change the partition to ext2, remember to update the /etc/fstab file.

 

Creating an ext3 File System

The steps for creating an ext3 file system are as follows:

  1. Create the partition using parted or fdisk.
  2. Format the partition with the ext3 file system using mkfs.
  3. Label the partition using e2label.
  4. Create the mount point.
  5. Add the partition to /etc/fstab.

 

Converting to an ext3 File System

The tune2fs program can add a journal to an existing ext2 file system without altering the data already on the partition. If the file system is already mounted while it is being transitioned, the journal will be visible as the file .journal in the root directory of the file system. If the file system is not mounted, the journal will be hidden and will not appear in the file system at all.

To convert an ext2 file system to ext3, log in as root and type:

/sbin/tune2fs -j /dev/hdb X

In the above command, replace /dev/ hdb with the device name and X with the partition number.

After doing this, be certain to change the partition type from ext2 to ext3 in /etc/fstab.

If you are transitioning your root file system, you will have to use an initrd image (or RAM disk) to boot. To create this, run the mkinitrd program. For information on using the mkinitrd command, type man mkinitrd. Also make sure your GRUB or LILO configuration loads the initrd.

If you fail to make this change, the system will still boot, but the file system will be mounted as ext2 instead of ext3.


 

Home