突然大規模文件系統損壞的原因?(“根 inode 不是目錄”)
我有一台執行 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 有關。我會在錯誤跟踪器上環顧四周,因為它已經發布了幾次。可以肯定的是,拍攝磁碟的快照,將其擦除,然後將其放入輔助系統中以查看錯誤是否重複出現(以排除磁碟 - 不太可能是罪魁禍首)。