Memulihkan file yang terhapus secara tidak sengaja

79

Saya tidak sengaja menghapus file dari laptop saya. Saya menggunakan Fedora. Apakah mungkin memulihkan file?

crskhr
sumber
9
apa filesystem Anda?
echox

Jawaban:

94

Saya akan menyarankan agar tidak segera menginstal beberapa utilitas. Pada dasarnya musuh terbesar Anda di sini adalah menulis disk. Anda ingin menghindarinya dengan cara apa pun saat ini.

Taruhan terbaik Anda adalah cadangan otomatis yang dibuat oleh editor Anda - jika ada. Jika tidak, saya akan mencoba trik berikut ini menggunakan grep jika Anda mengingat beberapa string unik dalam file .tex Anda:

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

Ganti /dev/sda1dengan perangkat tempat file itu aktif dan ganti 'string'dengan string unik di file Anda. Ini bisa memakan waktu. Tetapi pada dasarnya, apa yang dilakukan adalah mencari string pada perangkat dan kemudian mengembalikan 100 baris sebelum dan sesudah baris tersebut dan memasukkannya ke dalam file.txt. Jika Anda membutuhkan lebih banyak garis yang dikembalikan, sesuaikan saja -Bdan -Aopsi yang sesuai. Anda mungkin mendapatkan banyak sampah tambahan, tetapi Anda harus bisa mendapatkan kembali teks Anda.

Semoga berhasil.

Steven D
sumber
8
Seseorang menunjukkan ini kepada saya beberapa minggu setelah saya beralih ke Linux, ketika saya membunuh dokumen teks yang benar-benar saya butuhkan - itu sangat mengejutkan saya
Michael Mrozek
18
By the way, -B100 -A100dapat diganti dengan yang setara -C100(C untuk "konteks"). Dan saya pasti tidak akan menggunakannya -ijika memungkinkan, tetapi ada -Fdi tempatnya.
rozcietrzewiacz
Mungkin tidak mengejutkan - saya menganggap blok disk yang sama telah digunakan kembali - metode ini tidak berfungsi untuk file yang saya timpa secara tidak sengaja, tidak terhapus secara tidak sengaja.
ntc2
Ya, pada sebagian besar sistem file, blok yang sama digunakan kembali ketika file hanya ditimpa. Perhatikan bahwa beberapa aplikasi "mengatasi ini" dalam arti dengan menulis file sementara terlebih dahulu (yang membuatnya menjadi tulisan terpisah), kemudian mengganti nama file itu di atas file lama (yang menggantikan data dari sudut pandang pengguna). Ini dilakukan karena sejumlah alasan berbeda. Sistem penyimpanan (termasuk sistem file) yang melakukan ini setiap saat disebut copy on write .
CVn
apakah anda membutuhkan / dev / sda1 ?? Bisakah Anda pergi ke direktur di mana file itu dan berjalan tanpa / dev / sda1?
coolcool1994
22

Mungkin saja, itu hanya akan merepotkan.

UPDATE: sebelum Anda mencoba metode ini, silakan lihat jawaban Steven .

Anda akan memerlukan paket testdisk , banyak ruang disk dan banyak waktu.

PhotoRec, bagian dari TestDisk, dapat memulihkan file dari hampir semua disk. PhotoRec mendukung pencarian .texfile.


Pertama, instal testdisk dengan menjalankan

yum install testdisk

Catatan: Anda akan membutuhkan banyak ruang kosong di drive lain, tempat Anda dapat menyimpan file yang dipulihkan.

Pulihkan semua file yang dihapus pada disk Anda dengan menjalankannya photorecdi ruang kosong disk.

sudo photorec

dan ikuti instruksi ... (ingat untuk tidak menyimpan file ke disk yang sama dengan yang Anda pulihkan)

Setelah proses selesai, semua file yang dipulihkan harus berada dalam satu direktori, di mana Anda harus menjalankan:

find -name '*.tex' > filelist

Ini akan menampilkan daftar file yang mungkin hilang. Anda harus memeriksa semuanya, karena nama file akan hilang.

Stefan
sumber
11
photorec adalah util yang baik, saya hanya akan khawatir tentang penulisan disk yang akan terjadi selama instalasi. Apakah ada cara untuk mendapatkan ini sebagai executable mandiri yang dapat dijalankan dari media eksternal?
Steven D
1
Ya, Anda benar sekali. Saya tidak tahu tentang eksekusi mandiri, tetapi orang dapat mencoba menggunakan live-cd?
Stefan
2
untuk mengurangi file yang dipulihkan dengan Photorec, layar ketiga akan memberikan [Pilih File] pilih ini. Anda dapat dari daftar memilih jenis file apa yang Anda inginkan atau tidak ingin dipulihkan.
Steve Burdine
13

Banyak editor teks menyimpan file cadangan. Jika Anda benar-benar beruntung, mungkin ada sesuatu seperti filefile Anda.tex ~ termasuk versi file Anda sebelumnya.

fschmitt
sumber
4

Bagaimanapun saya akan berhenti bekerja pada perangkat yang digunakan sesegera mungkin untuk menghindari penulisan disk, dan boot ke OS pemulihan khusus, seperti SystemRescueCd , yang merupakan Live-CD sehingga Anda dapat me-mount disk Anda read-only di untuk mencegah kehilangan data lebih lanjut.

Distro-distro itu termasuk banyak alat pemulihan yang disebutkan oleh orang lain, dan Anda dapat menginstal yang paling banyak hilang.

Saya selalu cenderung memiliki CD dengan versi terbaru SystemRescueCd di pembaca USB eksternal saya, untuk berjaga-jaga.

Martin C.
sumber
3

CATATAN: Saya menambahkan jawaban ini mengenai beberapa pertanyaan lain tentang file database yang dihapus (server MySQL) yang ditutup dan diarahkan ke yang ini. Saya percaya ini dapat berguna dalam beberapa situasi serupa lainnya (sejauh beberapa proses masih menahan deskriptor file terbuka).

Jika proses Anda masih runnig maka Anda dapat menemukan file Anda /proc/<pid>fd/dan salin saja. Kirim SIGSTOPdulu ke grup proses. Salin file. Buat instance baru di samping dan biarkan yang ini berhenti atau kill -9letakkan file di tempat mereka. InnoDB akan pulih sendiri saat dijalankan tetapi jika ada beberapa MyISAM maka Anda harus melakukannya secara manual.

pawel7318
sumber
2

Saya tidak sengaja menghapus file db sqlite saya.

Apa yang saya lakukan untuk mengetahui file itu adalah,

Membuka lokasi /proc/di browser file dan mencari file sqlite db yang dihapus di sana.

Saya menemukan file itu dalam hasil pencarian. Menyalin file itu dari sana ke tempat lama saya.

Thaha kp
sumber
0

Saya memiliki masalah yang sama dua tahun lalu dan saya mencoba banyak program, seperti debugfs, photorec, ext3grep dan extundelete. ext3grep adalah program terbaik untuk memulihkan file. Sintaksnya sangat mudah:

ext3grep image.img --restore-all

atau:

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’

Video ini adalah tutorial mini yang dapat membantu Anda.

Juan
sumber
0

Jika Anda tidak memiliki cadangan, Alat Pemulihan Disk pihak ketiga mungkin memulihkan sebagian atau semua data tetapi Anda harus berhenti menggunakan mesin sekarang. File-file sampah sekarang tersedia untuk sistem Anda untuk menimpa mereka. Setelah ditimpa, akan sangat mahal untuk memulihkan data. Saya telah berhasil menggunakan pemulihan data uflysoft (ada aplikasi pemulihan data Mac OS lainnya) - Anda harus memiliki "drive pemulihan" (bukan drive utama atau drive yang mencari) untuk menyimpan data yang dipulihkan. Anda mem-boot dari disk (sistem) Pemulihan Data

Gallup Noel
sumber