檔案系統 inode節點

2022-05-03 11:03:17 字數 1902 閱讀 6317

檔案儲存在硬碟上,硬碟的最小儲存單位叫做"扇區"(sector)。每個扇區儲存512位元組(相當於0.5kb)。扇區是磁碟上儲存的最小單位

作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個"塊"(block)。

這種由多個扇區組成的"塊",是檔案訪問的最小單位。"塊"的大小,最常見的是4kb,即連續八個 扇區組成乙個 塊。

檔案資料都儲存在"塊"中,那麼很顯然,我們還必須找到乙個地方儲存檔案的元資訊,比如檔案的建立者、檔案的建立日期、檔案的大小等等。

這種儲存檔案元資訊的區域就叫做inode,中文譯名為"索引節點"。(這一點和記憶體池中一樣,分為記憶體描述資訊和實際記憶體)

inode包含檔案的元資訊,具體來說有以下內容:

1、檔案的位元組數

2、檔案擁有者的user id

3、檔案的group id

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

5、檔案的時間戳,共有三個:ctime指inode上一次變動的時間,mtime指檔案內容上一次變動的時間,atime指檔案上一次開啟的時間。

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

7、檔案資料block的位置

可以用stat命令,檢視某個檔案的inode資訊:stat example.txt

總之,除了檔名以外的所有檔案資訊,都存在inode之中。至於為什麼沒有檔名,下文會有詳細解釋。

inode也會消耗硬碟空間,所以硬碟格式化的時候,作業系統自動將硬碟分成兩個區域。乙個是資料區,存放檔案資料;另乙個是inode區(inode table),存放inode所包含的資訊。

每個inode節點的大小,一般是128位元組或256位元組。inode節點的總數,在格式化時就給定,一般是每1kb或每2kb就設定乙個inode。

假定在一塊1gb的硬碟中,每個inode節點的大小為128位元組,每1kb就設定乙個inode,那麼最多可以設定1024個inode節點,此時inode table的大小就會達到128mb(1024kb*128),

佔整塊硬碟的12.8%。

檢視每個硬碟分割槽的inode總數和已經使用的數量,可以使用df命令。      df -i

檢視每個inode節點的大小,可以用如下命令:

sudo dumpe2fs -h /dev/hda | grep "inode size"

由於每個檔案都必須有乙個inode,因此有可能發生inode已經用光,但是硬碟還未存滿的情況。這時,就無法在硬碟上建立新檔案。

每個inode都有乙個號碼,作業系統用inode號碼來識別不同的檔案。

這裡值得重複一遍,unix/linux系統內部不使用檔名,而使用inode號碼來識別檔案。對於系統來說,檔名只是inode號碼便於識別的別稱或者綽號。

表面上,使用者通過檔名,開啟檔案。實際上,系統內部這個過程分成三步:

首先,系統找到這個檔名對應的inode號碼;

其次,通過inode號碼,獲取inode資訊;

最後,根據inode資訊,找到檔案資料所在的block,讀出資料。

使用ls -i命令,可以看到檔名對應的inode號碼:                    ls -i example.txt

硬連線:

多個檔名可以對應同一inode節點,硬連線就是建立乙個檔名( ln 命令),這個檔名指向同乙個inode節點,多個檔名都是通過inode節點實現對同乙個檔案的操作,實際並沒有複製檔案

軟連線:

軟連線是通過新建乙個檔案a(ln -s),然後a檔案的資料是b檔案的路徑,雖然a、b檔案的inode節點不一樣,但都是對同乙個檔案的操作

**自   

Linux檔案系統中的inode節點詳細介紹

理解inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組成的 塊 是檔案訪問的...

Linux 的檔案系統 inode

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

Linux檔案系統和inode

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