Khôi phục tập tin vô tình bị xóa


79

Tôi vô tình xóa một tập tin từ máy tính xách tay của tôi. Tôi đang sử dụng Fedora. Có thể phục hồi các tập tin?


9
hệ thống tập tin của bạn là gì?
echox

Câu trả lời:


94

Tôi sẽ khuyên không nên cài đặt ngay một số tiện ích. Về cơ bản kẻ thù lớn nhất của bạn ở đây là đĩa ghi. Bạn muốn tránh chúng bằng mọi giá ngay bây giờ.

Đặt cược tốt nhất của bạn là một bản sao lưu tự động được tạo bởi trình soạn thảo của bạn - nếu nó tồn tại. Nếu không, tôi sẽ thử mẹo sau bằng grep nếu bạn nhớ một số chuỗi duy nhất trong tệp .tex của bạn:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

Thay thế /dev/sda1bằng thiết bị đã bật tệp và thay thế 'string'bằng chuỗi duy nhất trong tệp của bạn. Điều này có thể mất một thời gian. Nhưng về cơ bản, những gì nó làm là nó tìm kiếm chuỗi trên thiết bị và sau đó trả về 100 dòng trước và sau dòng đó và đặt nó vào file.txt. Nếu bạn cần thêm dòng trả về, chỉ cần điều chỉnh -B-Atùy chọn cho phù hợp. Bạn có thể nhận được một loạt rác bổ sung được trả lại, nhưng bạn sẽ có thể lấy lại văn bản của mình.

Chúc may mắn.


8
Ai đó đã cho tôi thấy điều này một vài tuần sau khi tôi chuyển sang Linux, khi tôi giết một tài liệu văn bản mà tôi thực sự cần - nó đã thổi bay tâm trí của tôi
Michael Mrozek

18
Nhân tiện, -B100 -A100có thể được thay thế bằng tương đương -C100(C cho "bối cảnh"). Và tôi chắc chắn sẽ không sử dụng -inếu có thể, nhưng có -Fở vị trí của nó.
rozcietrzewiacz

Có lẽ không có gì đáng ngạc nhiên - Tôi cho rằng các khối đĩa tương tự đã được sử dụng lại - phương pháp này không hoạt động đối với một tệp mà tôi vô tình ghi đè, không vô tình bị xóa.
ntc2

Có, trên hầu hết các hệ thống tệp, các khối giống nhau được sử dụng lại khi một tệp chỉ bị ghi đè. Lưu ý rằng một số ứng dụng "giải quyết vấn đề này" theo nghĩa là bằng cách viết một tệp tạm thời trước (làm cho nó thành một ghi riêng biệt), sau đó đổi tên tệp đó trên đầu tệp cũ (thay thế dữ liệu từ quan điểm của người dùng). Điều này được thực hiện vì một số lý do khác nhau. Các hệ thống lưu trữ (bao gồm các hệ thống tệp) làm điều này mọi lúc được gọi là bản sao trên ghi .
một CVn

bạn có cần / dev / sda1 không ?? Bạn có thể đi đến giám đốc nơi tập tin được chạy và không có / dev / sda1 không?
coolcool1994

22

Có thể, nó sẽ là một rắc rối.

CẬP NHẬT: trước khi bạn thử phương pháp này, vui lòng xem câu trả lời của Steven .

Bạn sẽ cần gói testdisk , nhiều dung lượng đĩanhiều thời gian.

PhotoRec, một phần của TestDisk, có thể khôi phục các tệp từ hầu hết mọi đĩa. PhotoRec không hỗ trợ tìm .textập tin.


Đầu tiên, cài đặt testdisk bằng cách chạy

yum install testdisk

lưu ý: Bạn sẽ cần nhiều dung lượng trống trên một ổ đĩa khác, nơi bạn có thể lưu các tệp đã khôi phục.

Khôi phục tất cả các tệp đã xóa trên đĩa của bạn bằng cách chạy photorectrên không gian trống của đĩa.

sudo photorec

và làm theo hướng dẫn ... (nhớ không lưu các tệp vào cùng đĩa bạn đang khôi phục)

Sau khi quá trình hoàn tất, tất cả các tệp được phục hồi sẽ nằm trong một thư mục, nơi bạn sẽ chạy:

find -name '*.tex' > filelist

Điều này sẽ xuất ra một danh sách các tập tin có thể là tập tin bạn bị mất. Bạn sẽ phải kiểm tra tất cả chúng, vì tên tập tin sẽ bị mất.


11
photorec là một ứng dụng tốt, tôi sẽ chỉ lo lắng về việc ghi đĩa sẽ xảy ra trong quá trình cài đặt. Có cách nào để có được điều này như là một thực thi độc lập có thể chạy từ phương tiện bên ngoài?
Steven D

1
Vâng, bạn rất đúng. Tôi không biết về một thực thi độc lập, nhưng người ta có thể thử sử dụng một số live-cd?
Stefan

2
để cắt giảm các tập tin được khôi phục bằng Photorec, màn hình thứ ba trong sẽ đưa ra [File Opt] chọn mục này. Bạn có thể từ danh sách chọn loại tệp bạn muốn hoặc không muốn khôi phục.
Steve Burdine

13

Nhiều trình soạn thảo văn bản giữ các tập tin sao lưu. Nếu bạn thực sự may mắn, có thể có một cái gì đó giống như yourfile.tex ~ bao gồm cả phiên bản trước của tệp của bạn.



4

Trong mọi trường hợp, tôi sẽ ngừng làm việc trên thiết bị đang được sử dụng càng sớm càng tốt để tránh mọi việc ghi đĩa và khởi động vào một hệ điều hành phục hồi chuyên dụng, như SystemResTHERCd , đó là Live-CD để bạn có thể gắn đĩa chỉ đọc vào để ngăn ngừa mất dữ liệu hơn nữa.

Những bản phân phối đó bao gồm rất nhiều công cụ khôi phục được đề cập bởi những người khác và bạn có thể cài đặt hầu hết các phần còn thiếu.

Tôi luôn có xu hướng có một đĩa CD với phiên bản SystemResTHERCd gần đây trong đầu đọc USB ngoài của tôi, chỉ trong trường hợp.


3

LƯU Ý: Tôi đã thêm câu trả lời này liên quan đến một số câu hỏi khác về các tệp cơ sở dữ liệu đã bị xóa (máy chủ MySQL) đã bị đóng và chỉ vào câu hỏi này. Tôi tin rằng nó cũng có thể hữu ích trong một số tình huống tương tự khác (theo như một số quy trình vẫn giữ các mô tả tệp mở).

Nếu quy trình của bạn vẫn còn runnig thì bạn có thể tìm thấy các tệp của mình /proc/<pid>fd/và chỉ cần sao chép chúng. Gửi SIGSTOPđầu tiên cho nhóm quá trình. Sao chép các tập tin. Xây dựng trường hợp mới ở bên cạnh và giữ cho trường hợp này dừng lại hoặc đặt kill -9nó và đặt các tệp trở lại vị trí của chúng. InnoDB sẽ tự phục hồi khi chạy nhưng nếu có một số MyISAM hơn bạn sẽ phải làm điều này bằng tay.


2

Tôi đã vô tình xóa tập tin db sqlite của tôi.

Những gì tôi đã làm để tìm ra các tập tin là,

Đã mở vị trí /proc/trong trình duyệt tệp và tìm kiếm tệp db sqlite đã xóa ở đó.

Tôi tìm thấy tập tin đó trong một kết quả tìm kiếm. Sao chép tập tin từ đó đến nơi cũ của tôi.


0

Tôi đã có cùng một vấn đề hai năm trước và tôi đã thử rất nhiều chương trình, như debugfs, photorec, ext3grep và extundelete. ext3grep là chương trình tốt nhất để khôi phục tập tin. Cú pháp rất dễ:

ext3grep image.img --restore-all

hoặc là:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

Đây đoạn video là một hướng dẫn nhỏ có thể giúp bạn.


0

Nếu bạn không có bản sao lưu, Công cụ khôi phục đĩa của bên thứ 3 có thể khôi phục một số hoặc tất cả dữ liệu nhưng bạn phải ngừng sử dụng máy ngay bây giờ. Các tập tin rác hiện có sẵn để hệ thống của bạn ghi đè lên chúng. Một khi chúng được ghi đè, rất tốn kém để khôi phục dữ liệu. Tôi đã thành công khi sử dụng phục hồi dữ liệu uflysoft (có các ứng dụng khôi phục dữ liệu Mac OS khác) - bạn phải có "ổ đĩa khôi phục" (không phải ổ đĩa chính của bạn hoặc đưa bạn đi nhặt rác) để lưu dữ liệu đã phục hồi. Bạn khởi động từ đĩa Phục hồi dữ liệu (hệ thống)

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.