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