phục hồi một tập tin vừa bị xóa trên ext4 với extundelete


54

Có một tùy chọn đơn giản về extundeletecách tôi có thể cố gắng khôi phục một tệp có tên /var/tmp/test.isomà tôi vừa xóa không?

(nó không quan trọng đến mức tôi sẽ bắt đầu ghi lại ổ đĩa chỉ đọc hoặc những thứ như vậy. Tôi cũng có thể tải lại tệp đó một lần nữa)

Tôi đang tìm kiếm một lệnh đơn giản mà tôi có thể thử nếu tôi có thể khôi phục nhanh nó.

Tôi biết, có thể với việc hiển thị lại ổ đĩa ở chế độ chỉ đọc : (xem Làm thế nào để tôi chỉ cần khôi phục tệp duy nhất trên một đĩa trống vừa bị xóa? )

Nhưng điều này cũng có thể bằng cách nào đó trên đĩa vẫn được gắn?


Câu hỏi chung với bất kỳ tiện ích nào: unix.stackexchange.com/questions/2677/iêng
Ciro Santilli

Đó là câu hỏi khác quá rộng. Ở đây tôi đang tìm kiếm một giải pháp không an toàn nhanh chóng mà không cần nhiều nỗ lực (và ít cơ hội thành công hơn)
rubo77

Tôi không có ý ám chỉ trùng lặp, nhưng bạn có thể muốn thêm nó vào câu hỏi tại sao câu hỏi đó không đủ.
Ciro Santilli 心 心

Câu trả lời:


36

Nhìn vào hướng dẫn sử dụng trên extundelete , có vẻ như bạn bị giới hạn trong việc xóa các tệp theo một số cách.

Khôi phục tất cả

extundelete được thiết kế để phục hồi các tập tin từ một phân vùng chưa được đếm đến một phân vùng (được gắn) riêng biệt. extundelete sẽ khôi phục bất kỳ tập tin nào nó tìm thấy vào thư mục con của thư mục hiện tại có tên là REC RECERER_FILES. Để chạy chương trình, hãy nhập extundelete - hãy giúp đỡ để xem các tùy chọn khác nhau có sẵn cho bạn.

Cách sử dụng thông thường để khôi phục tất cả các tệp đã xóa từ một phân vùng trông như thế này:

    $ extundelete /dev/sda4 --restore-all

Khôi phục một tập tin duy nhất

Ngoài phương thức này được tô sáng trong cách sử dụng dòng lệnh:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

Vì vậy, bạn sẽ có thể thực hiện những gì bạn muốn làm điều này:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

LƯU Ý: Trong cả hai trường hợp, bạn cần biết thiết bị, /dev/sda4để thực hiện lệnh này. Bạn sẽ phải kể lại hệ thống tập tin là chỉ đọc. Đây là một trong những điều kiện sử dụng extundeletevà không có cách nào khác.


2
có, nhưng tất cả chỉ hoạt động, nếu tôi ghi lại ổ đĩa chỉ đọc
rubo77

1
@ rubo77 - đúng rồi, không có cách nào khác cả.
slm

2
Điều này thực sự làm việc cho tôi một hệ thống tập tin ext4 mà không cần đọc lại. Nếu bạn cố gắng thực hiện nó mà không gặp lại r / o, thì bạn sẽ nhận được một cảnh báo dường như đang nói với bạn rằng xác suất thành công của bạn thấp hơn nếu bạn làm điều đó. Nếu nó thực sự rất quan trọng để khôi phục tập tin, thì có vẻ như bạn nên làm điều đó.
Ben Crowell

Giống như @BenCrowell tôi đã sử dụng mà không cần nhắc lại, nhưng chương trình quảng cáo cho tôi về hỏng dữ liệu nếu tôi tiếp tục sử dụng hdd ... là một lần xóa gần đây vì vậy tôi chỉ cần nhấn Enter sau đó lấy lại các tập tin của mình;)
erm3nda

16

Kịch bản sử dụng điển hình khi xóa tất cả các tệp bao gồm cần khôi phục tất cả các tệp đã bị xóa /dev/sdX1trong khoảng thời gian gần đây:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

Nếu hài lòng với các tập tin phục hồi:

mount -o remount,rw /dev/sdX1

mount: bạn phải chỉ định loại hệ thống tập tin

Remount mong đợi điểm gắn kết là đối số không phải là thiết bị
Đừng lo lắng Trẻ em

@ Don'tYouWdvisorChild mount -omất một trong hai dir hoặc thiết bị, theoman mount
sanmai

Thay vì trừ 2 giờ kể từ ngày bạn có thể làm $(date -d "-2 hours" +%s)và đầu ra của lsblk -pcó thể hữu ích để tìm vị trí mà khối lượng EXT4 được mã hóa LVM được lưu trong bộ nhớ cache. ;)
LiveWireBT
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.