search
HomeSystem TutorialLINUXIn-depth understanding of Linux's standard file system (Ext2/Ext3/Ext4)

Ext

The full name is Linux extended file system, extfs, which is the Linux extended file system. Ext2 represents the second generation file extension system, Ext3/Ext4 and so on. They are all upgraded versions of Ext2, but with the addition of log function, and They are backward compatible with each other, so Ext2 is called an indexed file system, and Ext3/Ext4 is called a journaled file system.

Note: Linux supports many file systems, including Network File System (NFS) and Windows’ Fat file system.

Check the file systems supported by Linux: ls -l /lib/modules/$(uname -r)/kernel/fs

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

View the file systems supported by Linux (loaded into memory): cat /proc/filesystems

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

Core Design

Data area

These elements are relatively stable and will be fixed after the disk is formatted.

1, inode (index node)
Record the permissions, attributes of the file and the number of the block where the data is located. Each file has one and only one inode. Each inode has its own number. The inode can be simply understood as a document index.

2. block(data block)
The stored file content is also called a data block. Each block has its own number. The unit block capacity supported by Ext2 is only 1k, 2k, and 4k.

Note: In order to facilitate inode recording, the block size has been fixed after the disk is formatted. Each block can only store the data of one file. If the file is too large, it will occupy multiple blocks; if the file is too small, the remaining space of the block cannot be used, which will cause a waste of disk space. Therefore, after the disk is partitioned, the file Before formatting your system, think carefully about the expected usage of the file system.

Metadata

These elements are designed to maintain the file system status. They mainly represent the dynamic configuration information of the file system and are descriptive information.

1. superblock(superblock)

Record the overall information of the file system (filesystem), including the total amount, usage, remaining amount, size of inode/block, as well as the format and related information of the file system.

Note: All basic information of the entire file system is recorded in the superblock. Its size is generally 1024Bytes. If it dies, it will take a lot of time to remedy it! ! !

2. block group

Just imagine, if our disk capacity reaches hundreds of G, when we format it, the inode and block will be very large. In order to facilitate management, the Ext file system introduces block groups when formatting. The concept is that each block group maintains an independent inode/block/superblock and has a fixed number of blocks, which is divided into a group of basic sub-file systems.

Note: superblock is too important for the file system, but there is only one superblock in the file system, so in addition to the first block group containing the superblock, subsequent block groups may contain backup superblocks. The purpose is to avoid the single superblock. Point cannot be rescued.

3. block bitmap (block comparison table)

A block can only be used by one file. When we add a new file, we must use a new block to record the file data. So how to quickly know which blocks are new? Which blocks are already used? The block bitmap is designed in this way to record all used and unused block numbers. Similarly, when we delete a file, we first find the corresponding block number from the block bitmap, then update the flag to unused, and finally release the block.

inode bitmap(inode comparison table)

The same design concept as block bitmap, except that it records used and unused inode numbers, which will not be described here.

group descriptor

Describe the block numbers at the beginning and end of each section (block group), and explain which block numbers each section (inodemap, blockmap, inode table) is between.

List all formatted devices in the current system: blkid

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

Select a formatted device and view the detailed information of the file system: dumpe2fs /dev/vda1

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

In-depth understanding of Linuxs standard file system (Ext2/Ext3/Ext4)

Note: The above Magic signature is 0xEF53, indicating that our disk partition is an ext2 and ext3 file system. Similar to the Magic at the beginning of the file, you can determine the file type.

Summarize

The Ext family is the most widely supported and complete file system in Linux. After we format the disk, all inode/block/metadate and other data have been planned for us, so that the system can be used directly without any Dynamic configuration is also its best feature, but this is also its most significant shortcoming. The larger the disk capacity, the slower the formatting. Centos7.x has chosen xfs as the default file system.

The above is the detailed content of In-depth understanding of Linux's standard file system (Ext2/Ext3/Ext4). For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:脚本之家. If there is any infringement, please contact admin@php.cn delete
Is it hard to learn Linux?Is it hard to learn Linux?Apr 18, 2025 am 12:23 AM

Learning Linux is not difficult. 1.Linux is an open source operating system based on Unix and is widely used in servers, embedded systems and personal computers. 2. Understanding file system and permission management is the key. The file system is hierarchical, and permissions include reading, writing and execution. 3. Package management systems such as apt and dnf make software management convenient. 4. Process management is implemented through ps and top commands. 5. Start learning from basic commands such as mkdir, cd, touch and nano, and then try advanced usage such as shell scripts and text processing. 6. Common errors such as permission problems can be solved through sudo and chmod. 7. Performance optimization suggestions include using htop to monitor resources, cleaning unnecessary files, and using sy

What is the salary of Linux administrator?What is the salary of Linux administrator?Apr 17, 2025 am 12:24 AM

The average annual salary of Linux administrators is $75,000 to $95,000 in the United States and €40,000 to €60,000 in Europe. To increase salary, you can: 1. Continuously learn new technologies, such as cloud computing and container technology; 2. Accumulate project experience and establish Portfolio; 3. Establish a professional network and expand your network.

What is the main purpose of Linux?What is the main purpose of Linux?Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

Does the internet run on Linux?Does the internet run on Linux?Apr 14, 2025 am 12:03 AM

The Internet does not rely on a single operating system, but Linux plays an important role in it. Linux is widely used in servers and network devices and is popular for its stability, security and scalability.

What are Linux operations?What are Linux operations?Apr 13, 2025 am 12:20 AM

The core of the Linux operating system is its command line interface, which can perform various operations through the command line. 1. File and directory operations use ls, cd, mkdir, rm and other commands to manage files and directories. 2. User and permission management ensures system security and resource allocation through useradd, passwd, chmod and other commands. 3. Process management uses ps, kill and other commands to monitor and control system processes. 4. Network operations include ping, ifconfig, ssh and other commands to configure and manage network connections. 5. System monitoring and maintenance use commands such as top, df, du to understand the system's operating status and resource usage.

Boost Productivity with Custom Command Shortcuts Using Linux AliasesBoost Productivity with Custom Command Shortcuts Using Linux AliasesApr 12, 2025 am 11:43 AM

Introduction Linux is a powerful operating system favored by developers, system administrators, and power users due to its flexibility and efficiency. However, frequently using long and complex commands can be tedious and er

What is Linux actually good for?What is Linux actually good for?Apr 12, 2025 am 12:20 AM

Linux is suitable for servers, development environments, and embedded systems. 1. As a server operating system, Linux is stable and efficient, and is often used to deploy high-concurrency applications. 2. As a development environment, Linux provides efficient command line tools and package management systems to improve development efficiency. 3. In embedded systems, Linux is lightweight and customizable, suitable for environments with limited resources.

Essential Tools and Frameworks for Mastering Ethical Hacking on LinuxEssential Tools and Frameworks for Mastering Ethical Hacking on LinuxApr 11, 2025 am 09:11 AM

Introduction: Securing the Digital Frontier with Linux-Based Ethical Hacking In our increasingly interconnected world, cybersecurity is paramount. Ethical hacking and penetration testing are vital for proactively identifying and mitigating vulnerabi

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)