The ext3 ( third extended file system ) is a journaled file system that was developed for the Linux kernel. It was the forerunner of ext4 and was used in many Linux distributions as the default file system.
Developed by Stephen Tweedie journaling extension for ext2 ensures that metadata can not be corrupted and thus can be omitted e2fsck after a computer crash on a complete cycle of the integrity check. The combination of ext2 with journal extension is referred to as ext3.
In this case, the data format of the disk does not change with the use of a journal. The data can therefore be read with an ext2 file system driver. The journal is a file structure (optional user data ) are written to the metadata before they are written to the real file system. From an ext2 can therefore be made an ext3 file system, the need to convert any data.
As a direct successor ext4 exists.
Ext3 ext2 system adds the following capabilities to:
- A journal
- H-tree directory indexes
- Online change the file system size
At H - trees (English htree ) is a special form of B- trees, which were developed for ext3.
If a change to the file system (for example, renaming a file) is performed, it is recorded as a transaction in the journal, and can be in the event of a crash either completed or not completed. If a transaction was completed at the time of the crash point, it is guaranteed that all the blocks involved in this transaction represent a valid file system status. These blocks are then copied to the file system. If a transaction was to crash time not completed, there is no guarantee that the blocks involved are consistent, therefore, such transaction is discarded ( it means that the file system change, represented the transaction is lost ).
In aborted write operations, it may happen that a part of a file already exists from the new data and a part still from the old, which can sometimes be worse than an inconsistent filesystem. ext3 therefore offers a special mode are first stored in the data in the journal. ext3 does not protect you from having to lose data that should be indeed already written to the crash time on the board, but were still held by the kernel in so-called dirty buffers to write it back later. After playing the Journal is just guarantee that you can continue working at any given time with a consistent set of data.
The Linux implementation of ext3 journaling offers three levels:
- Full ( option data = journal ), where both metadata and file contents are first written to the journal before being written to the file system. This increases the reliability, however, is quite slow when writing, since all data must be written twice to disk. Read operations are accelerated.
- Write Back (option data = writeback ) with only metadata is written to the journal. The updating of the file contents is left to the normal sync process. This is much faster, but carries the risk of data loss due to broken out- of-order write operations in the event of a fall. Files, which were at that time in the write access, can the next mounting the filesystem contained at its end garbage.
- Ordered (option data = ordered ) works as writeback. However, file contents are written directly to the file system, and only then update the metadata in the journal. This is considered acceptable tradeoff between reliability and speed, and is therefore the default.
Compatibility with non-native operating systems
There are different drivers, programs and plugins that also allow access to ext3, through the backward compatibility to ext2, under other operating systems other than the native. These are particularly useful when drives are to be used on multiple operating systems, such as a USB drive in a mixed Linux / Windows environment. They represent an alternative to the approaches to be used in such a Linux / Windows environments, the in his abilities very limited file system FAT32 file system or to allow access to the proprietary NTFS Microsoft by reverse engineering Linux -based operating systems, such as NTFS 3G. Especially in dual-boot configurations, it is advantageous to be able to access a ext3 Linux partition and make this space available for Windows. Since ext3, how many UNIX based file systems, case- insensitive, it can ignore that case- insensitive on operating systems in use, such as Windows, come to serious problems.
Ext3 is slower than other modern journaling file systems, such as XFS or JFS, but however relatively robust.
Furthermore overwrites ext3 when deleting the block pointer of the inode with zeros. This makes it difficult to restore deleted files, but increases the likelihood that the integrity of the file system can be restored after a program error or system failure without data loss. Restoring the data is sometimes still possible.