亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

Linux 文件系統介紹

從本小節我們將要開始 Linux 中的文件系統,在 Linux 系統中,文件系統都是基于硬盤創建的,Linux 系統支持多種不同類型的文件系統管理文件和目錄,本小節介紹幾種基本常見的文件系統。

Linux 文件系統中的文件是數據的集合,文件系統不僅包含著文件中的數據而且還有文件系統的結構,所有 Linux 用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。在 Linux 中普通文件和目錄文件保存在稱為塊物理設備的磁盤或者磁帶上,大多數 Linux 發行版在安裝時會提供默認的文件系統。

1. df 命令顯示文件系統類型

使用 df -T -h 命令可以查看當前文件系統的類型,命令如下:

 df  -T -h

執行結果如下圖:
圖片描述

執行結果詳解:

  • 第一列 文件系統 表示的含義是 設備的設備文件位置;
  • 第二列 類型 表示的含義是 文件系統類型(圖中類型包含 devtmpfs、tmpfs、xfs、ext4、iso9660);
  • 第三列 容量 表示的含義是 能容納的空間大小
  • 第四列 已用 表示的含義是 已經用了多少空間大小;
  • 第五列 可用 表示的含義是 還有多少空間大小可用;
  • 第六列 已用% 表示的含義是 已經占用的空間比例;
  • 第七列 掛載點 表示的含義是 設備掛載了那個掛載點上。

2. ext 文件系統介紹

Linux 操作系統最開始引入的文件系統是擴展文件系統,記作 ext,它可以使用虛擬的目錄操作硬件設備。ext 文件系統采用索引節點存放虛擬目錄中存儲的文件信息,索引節點系統在每個物理設備中創建一個單獨的表(稱為索引節點表)來存儲這些文件信息,存儲在虛擬目錄中的每一個文件在索引節點表有一個條目。ext 文件系統中的 extended 部分來自其跟蹤的每個文件的額外數據,這些數據包括:

  • 文件大小;
  • 文件的屬主;
  • 文件的訪問權限;
  • 指向存有文件數據的每個硬盤塊的指針;
  • 文件名;
  • 文件所在的屬組。

Linux 通過唯一的數值(稱作索引節點號)來引用索引節點表中的每個索引節點,這個值是創建文件時由文件系統分配的。文件系統通過索引節點號而不是文件全名及路徑來標識文件。

3. ext2 文件系統介紹

使用最開始的 ext 文件系統有很多的限制(如文件最大不能超過2GB),所以在 Linux 系統出現后,很快就有了 第二代拓展文件系統,記作 ext2。ext2 文件系統是 ext 文件系統基本功能的一個擴展,而且保持了 ext 文件系統一樣的結構,ext2 文件系統擴展了索引節點表的格式來保存系統上每個文件的更多信息。

ext2 的索引節點表為文件添加了創建時間、修改時間和最后一次訪問的時間幫助系統來追蹤文件的訪問情況。ext2 文件系統還將允許的最大文件大小增加到了 32 TB(Linux 2.6 之前是 2TB),以容納數據庫服務器中常見的大文件。除了額外擴展的索引節點外,ext2 文件系統還改變了文件在數據塊中存儲的方式。ext 文件系統在讀取文件時不需要為了數據塊查找整個物理設備。

3.1 ext2 文件系統特點

  • 當創建 ext2 文件系統時,系統管理員可以根據預期的文件平均長度來選擇最佳的塊大?。◤?024B~4096B)。例如,當文件的平均長度小于幾千字節時,塊的大小為 1024B 是最佳的,因為這會產生較少的內部碎片——也就是文件長度與存放塊的磁盤分區有較少的不匹配。另一方面,大的塊對于 大于幾千字節的文件通常比較合合適,因為這樣的磁盤傳送較少,因而減輕了系統的開銷。

  • 當創建 ext2 文件系統時,系統管理員可以根據在給定大小的分區上預計存放的文件數來選擇給該分區分配多少個索引節點。這可以有效地利用磁盤的空間。

  • 文件系統把磁盤塊分為組。每組包含存放在相鄰磁道上的數據塊和索引節點。正是這種結構,使得可以用較少的磁盤平均尋道時間對存放在一個單獨塊組中的文件并行訪問。

  • 在磁盤數據塊被實際使用之前,文件系統就把這些塊預分配給普通文件。因此當文件的大小增加時,因為物理上相鄰的幾個塊已被保留,這就減少了文件的碎片。

  • 支持快速符號鏈接。如果符號鏈接表示一個短路徑名(小于或等于 60 個字符),就把它存放在索引節點中而不用通過由一個數據塊進行轉換。

3.2 ext2 文件系統健壯性特點

文件更新策略的謹慎實現將系統崩潰的影響減到最少。我們只舉一個例子來體現這個優點:例如,當給文件創建一個硬鏈接時,首先增加磁盤索引節點中 的硬鏈接計數器,然后把這個新的名字加到合適的目錄中。在這種方式下,如果在更新索引節點后而改變這個目錄之前出現一個硬件故障,這樣即使索引節點的計數 器產生錯誤,但目錄是一致的。因此,盡管刪除文件時無法自動收回文件的數據塊,但并不導致災難性的后果。如果這種處理的順序相反更新索引節點前改變目錄,同樣的硬件故障將會導致危險的不一致,刪除原始的硬鏈接就會從磁盤刪除它的數據塊,但新的目錄項將指向一個不存在的索引節點。如果那個索引節點號以 后又被另外的文件所使用,那么向這個舊目錄的寫操作將毀壞這個新的文件。

在啟動時支持對文件系統的狀態進行自動的一致性檢查。這種檢查是由外部程序 e2fsck 完成的,這個外部程序不僅可以在系統崩潰之后被激活,也 可以在一個預定義的文件系統安裝數每次安裝操作之后對計數器加 1 之后被激活,或者在自從最近檢查以來所花的預定義時間之后被激活。

支持不可變 immutable 的文件不能修改、刪除和更名和僅追加 append-only 的文件只能把數據追加在文件尾。

既與 Unix System V Release 4(SVR4) 相兼容,也與新文件的用戶組 ID 的 BSD 語義相兼容。在 SVR4 中,新文件采用創建它的進程的用戶組 ID;而在 BSD 中,新文件繼承包含它 的目錄的用戶組 ID。ext2 包含一個安裝選項,由你指定采用哪種語義。

4. 小結

本小節介紹了 Linux 系統中較早期的文件系統 etxext2,使用 df -T -h 可以查看磁盤對應的文件系統類型,CentOs 8 默認的文件系統是 xfs,熟悉了 extext2 文件系統之后,有助于后面熟悉和學習其他文件系統。