Phục hồi tập tin bị xoá
trong Linux
Một ngày kia, bạn lỡ tay gõ lệnh rm taptin.txt và xóa nhầm công việc mà bạn mất
nhiều ngày để hoàn thành. Điều này không hiếm gặp, vì chức năng autocomplete
hiện một tập tin ngoài ý muốn, và bạn lỡ tay ấn Enter để xóa mà không kịp kiểm
tra.
Một ngày kia, bạn lỡ tay gõ lệnh rm taptin.txt và xóa nhầm công việc mà bạn mất
nhiều ngày để hoàn thành. Điều này không hiếm gặp, vì chức năng autocomplete
hiện một tập tin ngoài ý muốn, và bạn lỡ tay ấn Enter để xóa mà không kịp kiểm
tra.
Tệ hại hơn, khi xóa tập tin trong dòng lệnh, tập tin sẽ bị xóa hẳn chứ không di
chuyển vào Thùng rác như khi dùng trong giao diện đồ họa. Vậy làm sao để phục
hồi?
Cách làm đơn giản nhất, và tôi đã thử thành công, là câu lệnh sau:
sudo grep -i -a -B10 -A100 'nội dung cần tìm' /dev/sda1 > /tmp/phuchoi.txt
Trong đó giả định /dev/sda1 là nơi bạn chứa tập tin đã xóa và nội dung cần tìm là
một chuỗi bất kì chứa trong tập tin bị xóa. Nhớ chọn chuỗi hiếm gặp trong các tập
tin khác, để giảm số kết quả trả về.
Lệnh trên cụ thể thực hiện tìm kiếm trên toàn bộ dĩa, không phân biệt chữ hoa hay
thường (-a), tìm trong chế độ văn bản (-a), và trích 100 dòng sau nội dung cần tìm
(-A100) và 10 dòng phía trước (-B10). Toàn bộ kết quả xuất ra tập tin
/tmp/phuchoi.txt. Sau đó bạn chỉ việc mở tập tin /tmp/phuchoi.txt này và dò tìm dữ
liệu trong đó.
Để đảm bảo kết quả tốt nhất, nên khởi động lại máy vào chế độ single user để tránh
việc dữ liệu xóa bị ghi đè trong quá trình phục hồi.