Linux 於 ReiserFS 如何將 資料還原(undelete)

不小心砍掉一個檔案, 然後用 extundelete 想要將檔案救回來, 結果一直出現下述錯誤:

extundelete: Bad magic number in super-block when trying to open filesystem /dev/sdb1

一直找不出原因, 後來才發現到, 原來我這顆硬碟用的不是 ext4, 而是 reiserfs~ XD

於是來紀錄如何於 ReiserFS 作資料還原(undelete)的動作.

Linux 於 ReiserFS 如何將 資料還原(undelete)

環境:

  • Debian Linux
  • device: /dev/sdb1
  • mount sdb1 位置: /media/sdb1

ReiserFS 資料還原的步驟

要於 ReiserFS 作資料還原, 需要使用 reiserfsck, 主要命令: reiserfsck --rebuild-tree -S -l /root/rescue.log /dev/<device>

  1. sudo su - # 下述步驟都使用 root 執行, 避開權限問題.
  2. umount /dev/sdb1 # 於誤砍的當下, 就要趕快 umount, 避免資料被蓋掉.
  3. reiserfsck --rebuild-tree -S -l /root/recovery.log /dev/sdb1 # 於 recovery.log 可以看詳細救援 inode log 內容
  4. mount /dev/sdb1 /media/sdb1
  5. ls /media/sdb1/lost+found # 所有能救回來的檔案, 都會在這裡面, 不過檔名不是原本檔名, 要進去看檔案內容, 自己改檔名救回來.
  6. mv /media/sdb1/lost+found/xxx /tmp/your_filename.txt # 找到檔案後, 搬到原本該放的地方 + 改檔名
  7. rm -fr /root/recovery.log /media/sdb1/lost+found # 救援回來後, 這些就可以砍掉了.

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料