Filesystems
如果您將 EXT4 文件系統中的某組塊歸零,會發生什麼?
基本上,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
工具將整個塊組歸零會發生什麼?如果您有一個(文件)足夠小以完全適合該組,則該文件(文件)將永久失去。但是還有其他情況,我不確定係統在這種情況下如何反應。
- 文件可以由許多塊組進行分段和描述,這(在這種情況下)意味著文件的只有一部分被清零。執行後該文件會發生什麼
fsck
?整個文件會放在 lost&found 目錄中嗎?或者也許它會在文件系統的結構中可見,但您將無法打開/訪問它?- 如果上面的組被清零,目錄中的文件會發生什麼?只有 info that
0 free blocks, 8182 free inodes, 10 directories, 8182 unused inodes
,這意味著該組描述了 10 個 dirs 和 0 個文件,並且所有塊都被數據使用。所以我們有 10 個目錄,可能還有一些零散的大文件。至少我是這樣理解資訊的。但是目錄可以包含文件,當您將該組歸零時,目錄中的文件會發生什麼?之後它們可以訪問fsck
嗎?
基本上它歸結為元數據和/或數據是否受到影響。
一般來說,當元數據損壞時,受影響的文件/目錄變得不可訪問(或部分不可訪問)。諸如此類的工具
fsck
可能能夠修復損壞,但這實際上取決於損壞的確切內容。但是,當數據損壞時,除非文件系統實施數據校驗和,而 EXT4 沒有,文件系統將表現得好像數據正常。如果可能,由應用程序來驗證和執行修復。