Linux標準的文件系統(tǒng)知識分享(Ext2/Ext3/Ext4)

Ext
全稱Linux extended file system, extfs,即Linux擴展文件系統(tǒng),Ext2就代表第二代文件擴展系統(tǒng),Ext3/Ext4以此類推,它們都是Ext2的升級版,只不過增加了日志功能,且彼此向下兼容,所以Ext2被稱為索引式文件系統(tǒng),而Ext3/Ext4被稱為日志式文件系統(tǒng)。
備注:Linux支持很多文件系統(tǒng),包括網(wǎng)絡文件系統(tǒng)(NFS)、Windows的Fat文件系統(tǒng)。
查看Linux支持的文件系統(tǒng):ls -l /lib/modules/$(uname -r)/kernel/fs
查看Linux支持的文件系統(tǒng)(已載入到內(nèi)存中):cat /proc/filesystems
核心設計
數(shù)據(jù)區(qū)
這些元素相對穩(wěn)定,磁盤格式化后,就固定下來了。
1、inode(索引節(jié)點)
記錄文件的權限、屬性和數(shù)據(jù)所在塊block的號碼,每個文件都有且僅有一個的inode,每個inode都有自己的編號,可以把inode簡單地理解為文檔索引。
2、block(數(shù)據(jù)區(qū)塊)
存儲的文件內(nèi)容,也叫數(shù)據(jù)區(qū)塊(data block),每個block都有自己的編號,Ext2支持的單位block容量僅為1k、2k、4k。
備注:為了方便inode的記錄,在磁盤格式化后,block的大小都已經(jīng)固定了。每一個塊只能存放一個文件的數(shù)據(jù),若文件太大,將占用多個block;若文件太小,block剩余空間就不能被使用了,就會導致磁盤空間浪費,所以在磁盤分區(qū)后,文件系統(tǒng)格式化前,請先仔細想想文件系統(tǒng)的預計使用情況。
中介數(shù)據(jù)(metadata)
這些元素是為了維持文件系統(tǒng)狀態(tài)而設計出來的,主要代表的是文件系統(tǒng)的動態(tài)配置信息,屬于描述性信息。
1、superblock(超級塊)
記錄文件系統(tǒng)(filesystem)的整體信息,包括inode/block的總量、使用量、剩余量、大小、以及文件系統(tǒng)的格式和相關信息。
備注:整個文件系統(tǒng)的基本信息全部記錄在superblock,它的大小一般為1024Bytes,如果它死掉,將會花費大量的時間去補救哦?。?!
2、block group(區(qū)塊群組)
試想一下,假如我們的磁盤容量高達數(shù)百G,當我們格式后,inode和block會非常龐大,為了便于管理,Ext文件系統(tǒng)在格式化時,引入了區(qū)塊群組(block group)的概念,每個區(qū)塊群組都保持獨立inode/block/superblock,擁有固定數(shù)量的block,這樣就分成了一群一群最基礎的子文件系統(tǒng)。
備注:superblock對于文件系統(tǒng)太重要了,但是文件系統(tǒng)的superblock又只有一個,所以除了第一個block group含有superblock外,后續(xù)block group都可能會含有備份的superblock,目的就是為了避免superblock單點無法救援的問題。
3、block bitmap(區(qū)塊對照表)
一個block只能被一個文件使用,當我們新增文件時,肯定需要使用新的block來記錄文件數(shù)據(jù)。那么如何快速地知道,哪些block是新的?哪些block是已經(jīng)使用了的?block bitmap就是這樣被設計出來,記錄所有使用和未使用的block號碼。同樣的,當我們刪除文件時,先從block bitmap中找到對應的block號碼,然后更新標志為未使用,最后釋放block。
inode bitmap(inode 對照表)
和block bitmap一樣的設計理念,只不過它記錄地是已使用和未使用的inode號碼,這里就不再敖述了。
group descriptor
描述每個區(qū)段(block group)開始和結束的block號碼,以及說明每個區(qū)段(inodemap、blockmap、inode table)分別介于哪些block號碼之間。
列出目前系統(tǒng)所有被格式化的設備:blkid
挑選一個已格式化好的設備,查看文件系統(tǒng)的詳細信息:dumpe2fs /dev/vda1
備注:通過上面的Magic簽名為0xEF53,說明我們的磁盤分區(qū)是一個的ext2和ext3文件系統(tǒng)。類似于通過文件開頭的Magic,可以判斷文件類型一樣。
總結
Ext家族是Linux支持度最廣、最完整的文件系統(tǒng),當我們格式化磁盤后,就已經(jīng)為我們規(guī)劃好了所有的inode/block/metadate等數(shù)據(jù),這樣系統(tǒng)可以直接使用,不需要再進行動態(tài)的配置,這也是它最優(yōu)秀的特點,不過這也是它最顯著的缺點,磁盤容量越大,格式化越慢,centos7.x已經(jīng)選用xfs作為默認文件系統(tǒng)。
相關文章
Fedora Linux 42 穩(wěn)定版發(fā)布: 帶來大量新功能和軟件更新
Fedora 42昨日發(fā)布,這是 Red Hat 贊助開發(fā)的杰出前沿 Linux 發(fā)行版的最新版,包含大量新功能和軟件更新,使其成為 2025 年上半年發(fā)布的一款出色的 Linux 操作系統(tǒng)之一,內(nèi)2025-04-16如何在Linux查看硬盤信息? 查看Linux硬盤大小類型和硬件信息的5種方法
使用Linux系統(tǒng)的過程中,查看和了解硬盤信息是非常重要的工作,尤其是對于系統(tǒng)管理員而言,那么在Linux系統(tǒng)中如何查看硬盤信息?以下是具體內(nèi)容介紹2025-03-12如何在 Linux 中查看 CPU 詳細信息? 3招輕松查看CPU型號、核心數(shù)和溫度
在日常運維工作中,獲取 CPU 信息是系統(tǒng)運維管理員常見的工作內(nèi)容,無論是為了性能調(diào)優(yōu)、硬件升級還是僅僅滿足好奇心2025-03-11什么是 Arch Linux? 獨樹一幟的Arch Linux發(fā)行版分析
Arch Linux是為簡化,優(yōu)化,現(xiàn)代化,實用主義,用戶中心和多功能性而創(chuàng)建Linux發(fā)行版,究竟是什么讓 Arch 與眾不同?下面我們就來簡要解讀2025-02-19如何在Linux環(huán)境下制作 Win11裝機U盤?
一直用的linux辦公,想要將筆記本電腦從 Linux 系統(tǒng)切換回 Windows 11,我們可以制作一個win11裝機u盤,詳細如下2025-02-17Rsnapshot怎么用? 基于Rsync的強大Linux備份工具使用指南
Rsnapshot 不僅可以備份本地文件,還能通過 SSH 備份遠程文件,接下來詳細介紹如何安裝、配置和使用 Rsnapshot,包括創(chuàng)建每小時、每天、每周和每月的本地備份,以及如何進2025-02-06Linux Kernel 6.13發(fā)布:附更新內(nèi)容及新特性解讀
Linux 內(nèi)核 6.13 正式發(fā)布,新版本引入了惰性搶占支持,簡化內(nèi)核搶占邏輯,通過減少與調(diào)度器相關的調(diào)用次數(shù),讓內(nèi)核在運行時表現(xiàn)更優(yōu),從而提高效率2025-01-23五大特性引領創(chuàng)新! 深度操作系統(tǒng) deepin 25 Preview預覽版發(fā)布
今日,深度操作系統(tǒng)正式推出deepin 25 Preview版本,該版本集成了五大核心特性:磐石系統(tǒng)、全新DDE、Treeland窗口合成器、AI For OS以及Distrobox子系統(tǒng)2025-01-18Linux Mint Xia 22.1重磅發(fā)布: 重要更新一覽
Beta 版 Linux Mint“Xia” 22.1 發(fā)布,新版本基于 Ubuntu 24.04,內(nèi)核版本為 Linux 6.8,這次更新帶來了諸多優(yōu)化和改進,進一步鞏固了 Mint 在 Linux 桌面操作系統(tǒng)領域的2025-01-16LinuxMint怎么安裝? Linux Mint22下載安裝圖文教程
Linux Mint22發(fā)布以后,有很多新功能,很多朋友想要下載并安裝,該怎么操作呢?下面我們就來看看詳細安裝指南2025-01-16