Linux

突然大規模文件系統損壞的原因?(“根 inode 不是目錄”)

  • June 20, 2014

我有一台執行 Maverick 的筆記型電腦(直到昨天還很開心),帶有 Patriot Torx SSD;整個分區的LUKS加密;一個 lvm 物理卷;然後在 ext4 邏輯卷中進行 home 和 root。

當我昨天嘗試啟動它時,它抱怨它無法掛載根文件系統。執行fsck,基本上每一個inode似乎都出錯了。主文件系統和根文件系統都顯示出類似的問題。檢查備份超級塊沒有幫助。

e2fsck 1.41.12 (17-May-2010)
lithe_root was not cleanly unmounted, check forced.
Resize inode not valid.  Recreate? no

Pass 1: Checking inodes, blocks, and sizes
Root inode is not a directory.  Clear? no   
Root inode has dtime set (probably due to old mke2fs).  Fix? no
Inode 2 is in use, but has dtime set.  Fix? no
Inode 2 has a extra size (4730) which is invalid
Fix? no
Inode 2 has compression flag set on filesystem without compression support.  Clear? no
Inode 2 has INDEX_FL flag set but is not a directory.
Clear HTree index? no
HTREE directory inode 2 has an invalid root node.
Clear HTree index? no
Inode 2, i_size is 9581392125871137995, should be 0.  Fix? no
Inode 2, i_blocks is 40456527802719, should be 0.  Fix? no
Reserved inode 3 (<The ACL index inode>) has invalid mode.  Clear? no
Inode 3 has compression flag set on filesystem without compression support.  Clear? no
Inode 3 has INDEX_FL flag set but is not a directory.
Clear HTree index? no
....

在文件系統中執行strings,我可以看到那裡有文件名和使用者數據。我確實有足夠好的備份(觸摸木頭),不值得為了拉回單個文件而苦苦掙扎,儘管我可能會在重建之前保存未加密磁碟的圖像,以防萬一。

smartctl不顯示任何錯誤,核心日誌也不顯示。在交換 lv 上執行寫入模式badblocks也沒有發現問題。所以磁碟可能出現故障,但不是很明顯。

在這一點上,正如他們所說,我基本上是 fscked?回到重新安裝,也許在磁碟上執行壞塊,然後從備份中恢復?似乎甚至沒有足夠的數據來送出有意義的錯誤……

我不記得上次我使用這台機器時崩潰了。

在這一點上,我懷疑是錯誤或記憶體損壞導致它在上次執行時在磁碟上寫入垃圾,或者 SSD 存在某種微妙的故障模式。

你認為是什麼原因造成的?你還有什麼要嘗試的嗎?

您的第一個超級塊似乎已損壞。超級塊有很多副本,因為它是文件系統中最關鍵的部分。您可以嘗試e2fsck使用該-b選項來檢查超級塊的不同副本是否具有正確的資訊。檢查e2fsck(8)以獲取有關該-b選項的更多資訊,以及如何確定附加超級塊的位置。

IIRC,根目錄只有一份副本,因此如果損壞,則必須重新創建它,為空。最初在根目錄下的目錄將出現在 /lost+found 中,您必須從那裡重新定位它們。

Inode 表分佈在分區中。您不太可能失去所有這些。那些可恢復的,如果他們的文件不能重定位到他們原來的目錄,他們也會以/lost+found結尾。

我以前見過這個。這與 Ubuntu 10.10 有關。我會在錯誤跟踪器上環顧四周,因為它已經發布了幾次。可以肯定的是,拍攝磁碟的快照,將其擦除,然後將其放入輔助系統中以查看錯誤是否重複出現(以排除磁碟 - 不太可能是罪魁禍首)。

引用自:https://serverfault.com/questions/204617