Linux之檔案系統 inode block

2021-10-11 10:55:51 字數 2910 閱讀 9042

一、檔案系統

1、ext3檔案系統

ext3,第三代擴充套件的檔案系統,它是日誌檔案系統,用於linux作業系統。

2、ext4檔案系統

ext4是***擴充套件檔案系統(英語:fourth extended filesystem),linux下的日誌檔案系統,是ext3公升級版,它被引入到linux2.6核心中,缺點建立檔案系統慢,修復檔案系統也慢。它是規定好inode個數,當inode被佔滿時,就不能在建立檔案了。

3、xfs檔案系統

xfs,高階日誌檔案系統,它是centos預設的檔案系統,支援高容量和大儲存,擁有高效能,會動態產生inode個數,沒建立乙個檔案,產生乙個inode號。

4、nfs 檔案系統

nfs 檔案系統是指網路檔案系統,這種檔案系統也是 linux 的獨到之處。它可以很方便地在區域網內實現檔案共享,並且使多台主機共享同一主機上的檔案系統。而且 nfs 檔案系統訪問速度快、穩定性高,已經得到了廣泛的應用,尤其在嵌入式領域,使用 nfs 檔案系統可以很方便地實現檔案本地修改,而免去了一次次讀寫 flash 的憂慮。

5、vfat檔案系統

linux 中把 dos 中採用的 fat 檔案系統(包括 fat12,fat16 和 fat32)都稱為 vfat檔案系統。

二、理解inode&block

1、簡介

inode(index node 索引節點),儲存檔案元資訊的區域叫做inode。每乙個檔案都有對應的inode,裡面包含了與該檔案有關的資訊,同時記錄此檔案資料所在的block number。作業系統通過inode來識別不同的檔案。inode大小 為 128 bytes。

inode內容

(1)檔案的位元組數

(2)檔案的擁有者userid

(3)檔案的groupid

(4)檔案的讀、寫、執行許可權

(5)檔案的時間戳,共有3個

ctime:指inode上一次變動的時間;

mtime:指檔案內容上一次變動的時間;

atime:指檔案上一次開啟的時間。

(6)鏈結數,即有多少檔名指向這個inode

(7)檔案資料block的位置

2、名詞解釋

(1)block:儲存檔案的實際資料。塊是儲存檔案的最基本的單位。實際儲存檔案的內容,若檔案較大,會占用多個block。block大小 為預設為4k

(2)superblock超塊:block 與 inode 的總量; 未使用與已使用的 inode / block 數量;

(3)block group塊組:乙個分割槽可以有多個塊組。

3、索引檔案系統工作流程

建立檔案時只佔索引節點而不佔塊,當向檔案寫入時,inode會去關聯block,block預設固定空間為4g,inode可以關聯0~多個block,這取決於檔案的大小。

系統讀取檔案時,會先去找索引節點,索引節點包括元資料(matedata),然後根據索引節點去查詢關聯的block,從而得知檔案儲存的位置。

4、示例

示例1:inode(index node 索引節點)

創造乙個檔案,觀察inode資訊。

ll -i 檔名

[root@localhost ~]# touch 1.txt

[root@localhost ~]# ll -i 1.txt

33574988 -rw-r–r--. 1 root root 0 12月 6 17:43 1.txt

示例2:block(塊 檔案內容)

(1) 觀察某個分割槽中的inode節點數

df -i

[root@localhost sdk1]# df -i | grep sdk1

/dev/sdk1 128016 11 128005 1% /mnt/sdk1

(2) 建立乙個檔案

touch 檔名

[root@localhost sdk1]# touch 1.txt

(3) 再次觀察inode節點數

df -i

[root@localhost sdk1]# df -i | grep sdk1

/dev/sdk1 128016 12 128004 1% /mnt/sdk1

(4)創造大量檔案。觀察inode使用情況

[root@localhost sdk1]# touch file

[root@localhost sdk1]# df -i | grep sdk1

/dev/sdk1 128016 128016 0 100% /mnt/sdk1

建立檔案總數:

[root@localhost sdk1]# ll | wc -l

128007

嘗試再建立檔案:

[root@localhost sdk1]# touch a.txt

touch: 無法建立"a.txt": 裝置上沒有空間

此時分割槽可用空間為442m

[root@localhost sdk1]# df -ht | grep sdk1

/dev/sdk1 ext4 477m 5.9m 442m 2% /mnt/sdk1

結論1:inode決定了檔案系統中檔案的數量。

(5)向分割槽寫入大量資料,填滿

[root@localhost sdk1]# dd if=/dev/zero of=/mnt/sdk1/file1 bs=1m count=500

dd: 寫入"/mnt/sdk1/file1" 出錯: 裝置上沒有空間

記錄了467+0 的讀入

記錄了466+0 的寫出

488972288位元組(489 mb)已複製,47.4518 秒,10.3 mb/秒

(6)檢視目標分割槽容量,已滿

[root@localhost sdk1]# df -ht | grep sdk1

/dev/sdk1 ext4 477m 473m 0 100% /mnt/sdk1

結論2:block決定了檔案儲存的空間。

linux 檔案系統之 inode 和 block

inode 和 block 1 含義 index node 索引節點 用來存放檔案屬性的空間,通過inode 號碼來找到這個空間 inode號碼 家庭位址 inode空間 家房子 2 怎麼來的 格式化建立檔案系統時來的 3 特點 1。inode 是存放檔案屬性 2.我們每建立乙個檔案占用乙個inod...

Linux 的檔案系統 inode

linux 的檔案系統 inode 看完了上面的說明,您應該對於硬碟有一定程度的認識了!好了,那麼接下來就是要談一談 linux 的檔案系統 filesystem 囉!我們這裡以 linux 最標準的 ext2 這個檔案系統來作為說明。還記得我們在 linux 檔案屬性與目錄配置 那個章節提到的,在...

Linux檔案系統和inode

學到linux上的軟連線和硬鏈結,不得不了解inode,要想知道inode,不得不了解一些檔案系統,至少是linux檔案系統 檔案系統是什麼 我的理解,檔案系統類似現實中的檔案管理,條理化的儲存資料。它定義了磁碟上儲存檔案的方法和資料結構。不同的人管理檔案有不同的管理方法,那麼相對於不同的系統格式有...