Filesystems

如果您將 EXT4 文件系統中的某組塊歸零,會發生什麼?

  • August 6, 2018

基本上,EXT4 文件系統有大小為 128MiB 的數據塊(預設情況下),這個塊稱為“組”或“塊組”,在磁碟上基本上如下所示:

在此處輸入圖像描述

磁碟越大,一個接一個的組就越多。

當您使用該dumpe2fs工具時,它可以簡單地告訴您您有多少個組,並返回一些關於它們的資訊,例如:

Group 690: (Blocks 22609920-22642687) csum 0x7443 [ITABLE_ZEROED]
 Block bitmap at 22544386 (bg #688 + 2), csum 0xab2a9072
 Inode bitmap at 22544402 (bg #688 + 18), csum 0x1ef9c14a
 Inode table at 22545440-22545951 (bg #688 + 1056)
 0 free blocks, 8182 free inodes, 10 directories, 8182 unused inodes
 Free blocks: 
 Free inodes: 5652491-5660672

我的問題是:如果您使用該dd工具將整個塊組歸零會發生什麼?

如果您有一個(文件)足夠小以完全適合該組,則該文件(文件)將永久失去。但是還有其他情況,我不確定係統在這種情況下如何反應。

  1. 文件可以由許多塊組進行分段和描述,這(在這種情況下)意味著文件的只有一部分被清零。執行後該文件會發生什麼fsck?整個文件會放在 lost&found 目錄中嗎?或者也許它會在文件系統的結構中可見,但您將無法打開/訪問它?
  2. 如果上面的組被清零,目錄中的文件會發生什麼?只有 info that 0 free blocks, 8182 free inodes, 10 directories, 8182 unused inodes,這意味著該組描述了 10 個 dirs 和 0 個文件,並且所有塊都被數據使用。所以我們有 10 個目錄,可能還有一些零散的大文件。至少我是這樣理解資訊的。但是目錄可以包含文件,當您將該組歸零時,目錄中的文件會發生什麼?之後它們可以訪問fsck嗎?

基本上它歸結為元數據和/或數據是否受到影響。

一般來說,當元數據損壞時,受影響的文件/目錄變得不可訪問(或部分不可訪問)。諸如此類的工具fsck 可能能夠修復損壞,但這實際上取決於損壞的確切內容。

但是,當數據損壞時,除非文件系統實施數據校驗和,而 EXT4 沒有,文件系統將表現得好像數據正常。如果可能,由應用程序來驗證和執行修復。

引用自:https://unix.stackexchange.com/questions/460809