In-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
View the file systems supported by Linux (loaded into memory): cat /proc/filesystems
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
Select a formatted device and view the detailed information of the file system: dumpe2fs /dev/vda1
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!

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

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.

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.

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.

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.

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

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.

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


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

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
Easy-to-use and free code editor

WebStorm Mac version
Useful JavaScript development tools

Dreamweaver Mac version
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)