fsck 後檔案遺失

fsck 後檔案遺失

最近,我的硬碟崩潰了,我不得不運行fsck命令。許多文件已移至該資料夾,並且我已使用和lost+found檢索了重要文件,但我找不到我的 SQL 資料庫。findgrep

問題

  • 如何在我的lost+found目錄中找到InnoDB資料庫?
  • 有可能 fsck 沒有儲存我的 SQL 資料庫嗎?
  • 如果是的話我可以恢復這個檔案嗎?

答案1

嘗試#1:

也許它還在那裡,只是它的名字改為 fe /lost+found/#3456254 之類的。在你的地方,我file -szL對 中的所有內容進行了遞歸/lost+found,並 grep 了 innodb:

find /lost+found -type f|xargs -P 1 -n 500 file -szL|grep -i innodb

如果其中還有 innodb 資料庫,則您可以儲存資料。祝你好運!

嘗試#2:

如果您的資料庫有大量文字數據,基於磁區的六角搜尋也可以為您提供協助。

答案2

有問題的檔案可能無法透過 fsck 重建,因為它們已被刪除。 fsck 程式僅嘗試修復並盡力重建檔案。然而,它絕不是任何類型的備份。 fsck 執行的任何操作基本上都是不可逆的。

我在嘗試使用Lost+Found 目錄中包含的MySQL 資料庫部分時會非常小心,因為資料庫不包含在一個檔案中,而是包含在許多檔案中,這些檔案必須處於「同步」狀態,才能有希望在一個文件中復原資料庫。

至於檔案恢復,抱歉,您必須返回到您可能一直在進行的備份,因為資料很重要。不然的話,你就真的不走運了。

如果資料如此重要,那麼您也許可以嘗試尋求眾多資料復原服務之一的協助。它價格昂貴,而且結果並不完美。

答案3

我相信你運氣不好。您唯一的選擇是瀏覽lost+found目錄並目視檢查每個文件,尋找有關其原始名稱的線索。

將來

有一篇部落格文章標題為:更新:自動從遺失+找到的檔案恢復,其中討論了兩種在這種情況下會有所幫助的工具。

  • make-lsLR.sh- 定期呼叫此函數 (cron) 以建立儲存在 /root/ 中的所需檔案。當然,您可以輕鬆更改位置並排除其他目錄進行掃描。

  • check_lost+found.py- 第二個腳本將在您的 fsck 設法弄亂您的檔案並將其儲存到遺失+發現目錄時運行。它需要 3 個參數:1) 混亂的lost+found 目錄所在的來源目錄,2) 將保存資料的目標目錄,3) 實際執行此操作而不是空運行的開關。

這兩個腳本一起工作,第一個腳本需要定期運行,以建立系統上存在的文件的清單。如果您需要從lost+found目錄還原文件,第二個腳本可以使用此清單。

相關內容