ext3

from Wikipedia, the free encyclopedia
ext3
Manufacturer Open source community
Full name Third extended file system
Initial release November 2001 ( Linux 2.4.15)
Partition identifier 0x83 ( MBR )
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT )
Technical implementation
Directories Table, optional H-tree
Files bitmap (free space), table (metadata)
Defect block list Table
Maximum values
Size of a file 16 GiB -2 TiB
Number of all files Variable
Number of subdirectories per directory 32,000 (effectively only 31,998 because of the links to. And ..)
Length of the file name 255 bytes
File system size 2 TiB -32 TiB
Allowed characters in the file name All bytes except NUL and '/'
properties
Dates of a file changed (modification, mtime),
change of metadata (ctime),
last access (atime)
Date range 1901-12-13 20:45:52 to 2038-01-19 03:14:07 ( UTC +0)
(see  year 2038 problem )
Forks No
File attributes No-atime, append-only, synchronous-write, no-dump, h-tree (directory), immutable, journal, secure-delete, top (directory), allow-undelete
File rights management Unix file rights, ACLs and arbitrary security attributes
(from Linux kernel 2.6)
Transparent compression No
Transparent encryption No
Supporting operating systems Linux, BSD, Windows (through tools / drivers)

The ext3 ( English third extended filesystem ) is the third extended filesystem that was developed for the Linux kernel. It is a journaling file system and replaced its predecessor ext2 as the standard file system on many Linux distributions . It has been completely replaced by ext4 .

background

The journaling extension for ext2 developed by Stephen Tweedie ensures that metadata can no longer be corrupted and thus a complete run of the e2fsck integrity check after a computer crash can be dispensed with. The combination of ext2 with the journal extension is referred to as ext3 .

The data format of the data carrier does not change when a journal is used. The data can therefore be read with an ext2 file system driver. The journal is a file structure into which metadata (optionally the user data) is written before it is written to the actual file system. An ext2 file system can therefore be made into an ext3 file system without having to convert any data.

Ext4 is the direct successor .

In Linux 4.3 the native driver code for Ext3 has been permanently removed. Ext3 is still supported by the driver of the successor Ext4.

Technical characteristics

ext3 adds the following capabilities to the ext2 system:

  • a journal
  • H-tree directory indexes
  • Online change of the file system size

H-trees (English Htree ) are a special form of B-trees that were developed for ext3.

When a change is made to the file system (e.g. renaming a file), it is recorded as a transaction in the journal and, in the event of a crash, may or may not be completed. If a transaction was completed at the time of the crash, it is guaranteed that all blocks involved in this transaction represent a valid file system state. These blocks are then copied to the file system. If a transaction was not completed at the time of the crash, there is no guarantee that the blocks involved will be consistent, so such a transaction will be discarded (that is, the file system change that this transaction represented will be lost).

In the case of aborted write operations, it can happen that part of a file already consists of the new data and part of the old data, which can sometimes be even worse than an inconsistent file system. ext3 therefore offers a special mode in which data is initially stored in the journal. ext3 does not protect against the loss of data that should already have been written to disk at the time of the crash, but was still held by the kernel in so-called dirty buffers in order to write them back later. After the journal has been played, it is only guaranteed that you can continue working with a consistent database at a given point in time.

Journaling Levels

The Linux implementation of ext3 offers three levels of journaling:

  • Full (option data = journal ), whereby both metadata and file contents are first written to the journal before they are written to the file system. This increases reliability, but is quite slow to write because all data has to be written to disk twice. Reading processes are accelerated.
  • Writeback (option data = writeback ), whereby only metadata is written to the journal. Updating the file contents is left to the normal sync process. This is much faster, but carries the risk of data loss due to canceled out-of-order write processes in the event of a crash. Files that were in write access at this point in time may contain garbage at the end of the next mounting of the file system.
  • Ordered (option data = ordered ) works like writeback. However, file contents are written directly to the file system, only then is the metadata updated in the journal. This is considered an acceptable compromise between reliability and speed and is therefore the default setting.

Compatibility with non-native operating systems

There are various drivers, programs and plugins that allow access to ext3, through backward compatibility also to ext2, under other operating systems besides the native ones. These are particularly useful if drives are to be used under several operating systems, for example a USB drive in a mixed Linux / Windows environment. They represent an alternative to the approaches of using the FAT / FAT32 file system, which is very limited in its capabilities, in such Linux / Windows environments or of making the proprietary NTFS from Microsoft accessible to Linux-based operating systems through reverse engineering , such as NTFS 3G . In dual-boot configurations in particular, it is advantageous to be able to access an ext3 Linux partition and to make this space usable for Windows. Since ext3, like many UNIX-based file systems, is case-sensitive, it can ignore which case-insensitive when used under operating systems, e.g. B. Windows lead to serious problems.

criticism

Ext3 is slower than other modern journaling file systems, such as XFS or JFS , but it is relatively robust.

Furthermore, ext3 overwrites the block pointers of the inodes with zeros during deletion processes . This makes it difficult to recover deleted files, but increases the likelihood that the integrity of the file system can be restored without data loss after a program error or system failure. However, it is sometimes possible to restore the data.

See also

Web links

Individual evidence

  1. The maximum number of inodes (and thus the maximum number of files and directories) is specified when the file system is created. If the size of the file system is in bytes, the preset number of inodes results from (or the number of data blocks, the lower value is used), and the minimum number of inodes is . The preset value is sufficient for most application scenarios.
  2. http://kernelnewbies.org/Ext4
  3. Jörg Thoma: The Ext3 driver is missing in Linux 4.3. In: Golem.de . September 15, 2015, accessed September 15, 2015 .
  4. Linus Torvalds : Re: [GIT PULL] Ext3 removal, quota & udf fixes. (No longer available online.) In: Gmane .linux.kernel. September 2, 2015, formerly in the original ; accessed on September 15, 2015 .  ( Page no longer available , search in web archivesInfo: The link was automatically marked as defective. Please check the link according to the instructions and then remove this notice.@1@ 2Template: Dead Link / article.gmane.org  
  5. http://ext2.sourceforge.net/2005-ols/paper-html/node3.html
  6. Instructions for restoring files ( Memento of the original from September 19, 2010 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.  @1@ 2Template: Webachiv / IABot / www.xs4all.nl