it-swarm-vi.com

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

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?

82
crskhr

Tôi sẽ khuyên không nên cài đặt ngay lập tức 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/sda1 với thiết bị đã bật tệp và thay thế 'string' với 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-A tùy chọn khi thích 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.

95
Steven D

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 qua Steven's câu trả lời .

Bạn sẽ cần gói testdisk , rất nhiều dung lượng đĩa và rất nhiều lot của 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 hiện hỗ trợ tìm .tex các tậ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 photorec trê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 mà có thể là tệp bạn đã 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.

23
Stefan

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.

13
fschmitt

Có các công cụ phục hồi dữ liệu khác và hiệu quả nhất là trước hết , photorec , dao mổ giải cứu ma thuật . (Tôi giả sử rằng thủ thuật 'grep' đã nói ở đây là không đủ) Ở đây bạn có thể tìm thấy một số hướng dẫn về cách sử dụng chúng:

http://www.howtogeek.com/howto/15761/recover-data-like-a-forensics-expert-USE-an-ubfox-live-cd/

https://help.ubfox.com/community/DataRecovery

9
Attilio

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 của bạn chỉ đọc để tránh 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.

4
Martin C.

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 trong /proc/<pid>fd/ và chỉ cần sao chép chúng. Gửi SIGSTOP trước tiên cho nhóm quy 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 kill -9 nó và đặt các tập tin trở lại vị trí của họ. 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.

3
pawel7318

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.

2
Thaha kp

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 video là một hướng dẫn nhỏ có thể giúp bạn.

0
Juan

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 phục hồi 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)

0
Gallup Noel