Apakah ada perintah untuk memulihkan / membatalkan penghapusan file yang dihapus rm
?
$ rm -rf /path/to/myfile
Bagaimana saya bisa sembuh myfile
? Jika ada alat seperti itu, bagaimana saya bisa menggunakannya?
linux
data-recovery
deleted-files
piring
sumber
sumber
Jawaban:
Tautan yang diberikan seseorang dalam komentar adalah peluang terbaik Anda.
Linux debugfs Hack: Membatalkan Penghapusan File
Tulisan itu meskipun tampak sedikit mengintimidasi sebenarnya cukup mudah untuk diikuti. Secara umum langkah-langkahnya adalah sebagai berikut:
Gunakan debugfs untuk melihat log filesystem
Pada prompt debugfs
Output sampel
Jalankan perintah dalam debugfs
Tentukan file inode
Dengan info inode di atas, jalankan perintah berikut
File telah dipulihkan ke
recovered.file.001
.Pilihan lain
Jika di atas bukan untuk Anda, saya telah menggunakan alat seperti
photorec
untuk memulihkan file di masa lalu, tetapi itu ditujukan untuk file gambar saja. Saya telah menulis tentang metode ini secara ekstensif di blog saya di artikel berjudul:Cara Memulihkan jpeg yang rusak dan memindah File dari Kartu SDD Kamera Digital pada Fedora / CentOS / RHEL .
sumber
debugfs -w /dev/sdb2
tetapilsdel
sais:0 deleted inodes found.
extundelete
lebih mudah untuk ext3 / 4 dan mungkin akan mengarah pada hasil yang sama./dev/mapper/wks01-root: No such file or directory while opening filesystem
mana Anda mendapatkan ini/dev/mapper/wks01-root
?Dengan sedikit peluang, kadang-kadang saya dapat memulihkan file yang dihapus dengan skrip ini atau solusi berikutnya dalam jawabannya:
Ada trik lain yang bermanfaat: jika Anda tahu pola dalam file yang dihapus, ketik alt+ sys+ resuountuk mem-boot ulang + remount dalam read-only, kemudian dengan live-cd, gunakan
grep
untuk mencari di hard-drive:lalu edit
/tmp/recover
untuk menyimpan hanya apa file Anda sebelumnya.Hei, jika dengan filosofi unix semua adalah file, saatnya mengambil keuntungan dari ini, bukan?
sumber
grep
Solusi berbasis Anda sangat pintar dan bekerja untuk saya, bahkan dengan sistem file yang masih terpasang. Terima kasih!grep -av "[^[:print:]]"
grep
solusi bekerja untuk saya dengan modifikasi: saya lakukansudo grep --line-buffered -ab "$PATTERN" /dev/sda1 | tee lines
dan mendapat offset byte (seperti123123123:line\n456456456:another\n...
), kemudian melakukann=1000; sudo dd of=before if=/dev/sda1 ibs=1 skip=$[123123123-$n] count=$n
dann=1000; sudo dd of=after if=/dev/sda1 ibs=1 skip=123123123 count=$n
berbeda dengann
nilai-nilai.Apa yang berhasil untuk saya diberikan oleh arch (hanya berlaku untuk file teks):
di mana
/dev/sdXN
partisi berisi file yang hilang (tanyakanmount
jika tidak yakin).Butuh sedikit waktu, tetapi berhasil ketika saya secara tidak sengaja menghapus beberapa kode sumber yang belum saya komit!
sumber
rm data/*.json python myFile.py
bukanrm data/*.json && python myFile.py
/dev/sdXN
untuk sistem file, kan? Saya menemukan milik saya dengandf -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep: conflicting matchers specified
Meskipun Pertanyaan ini sudah terpecahkan dan berumur beberapa tahun, saya ingin menyebutkan utilitas testdisk .
Cara memulihkan file dengan testdisk dijelaskan dengan baik dalam tutorial ini . Untuk memulihkan file, jalankan
testdisk /dev/sdX
dan pilih jenis tabel partisi Anda. Setelah ini, pilih[ Advanced ] Filesystem Utils
, lalu pilih partisi Anda dan pilih[Undelete]
. Sekarang Anda dapat menelusuri dan memilih file yang dihapus dan menyalinnya ke lokasi lain di sistem file Anda.sumber
Saya memiliki masalah yang sama minggu lalu dan saya mencoba banyak program, seperti debugfs, photorec, ext3grep dan extundelete. ext3grep adalah program terbaik untuk memulihkan file. Sintaksnya sangat mudah:
atau:
Video ini adalah tutorial mini yang dapat membantu Anda.
sumber
Alternatif mungkin menggunakan
del
alih-alihrm
untuk menghapus:http://fex.belwue.de/fstools/del.html
del
memiliki fungsi hapus dan bekerja dengan sistem file apa pun.Tentu saja itu bukan solusi jika Anda sudah menghapus file Anda dengan "take no prisones" rm: -}
sumber
del
perintah.menghubungkan drive melalui antarmuka eksternal
umount /dev/{sd*}
extundelete --restore-all /dev/{sd*}
Lihat tautan ini untuk info lebih lanjut: batalkan penghapusan file yang baru saja dihapus di ext4 dengan extundelete .
sumber
Alat Pemulihan - Baris Perintah:
Alat Pemulihan - Gui:
Informasi :
Dalam pengalaman pribadi saya, saya mendapatkan data saya kembali menggunakan ufs-explorer dan photorec
(1) = Tidak open source, tidak gratis
(2) = Tidak open source, gratis
(3) = Sumber terbuka dan gratis
(4) = Miliki dukungan ntfs
(5) = Memiliki fitur struktur direktori
sumber
Saya tidak setuju bahwa itu tidak mungkin, hanya sangat sangat sulit, dan saya juga tidak pernah melakukannya di Linux:
Ketika file dihapus, mereka sebenarnya tidak dihapus. Apa yang terjadi adalah bahwa ruang yang ada di hard-drive semacam reset, sehingga jika komputer mencoba menulis data di sana, tidak ada yang mengeluh. Secara umum, data pada hard drive yang Anda pikir Anda hapus dapat berada di sana hampir setahun kemudian. Atau setidaknya, ini pengalaman saya di mesin Windows. Apakah itu bekerja dengan cara yang sama dari commandline di Linux, saya tidak yakin, tetapi Anda mungkin akan membutuhkan Live CD terpisah untuk membuka partisi seperti itu, dan juga tidak ada jaminan file-file itu masih ada. Saya telah melakukan ini pada windows xp beberapa kali menggunakan Zero Assumption Recovery. Saya yakin ada alat serupa di sekitar jika Anda terlihat cukup keras.
sumber
Saat Anda menghapus file, jumlah tautan dalam tabel inode untuk file itu berkurang satu. Di Unix, ketika jumlah tautan turun ke 0, blok data untuk file itu ditandai sebagai bebas dan biasanya, referensi ke blok data tersebut hilang. Saya baru saja menemukan dari komentar @ fedorqui bahwa mungkin ada beberapa cara untuk mengakses blok-blok itu tetapi itu hanya berlaku untuk sistem file ext3.
Salah satu cara untuk melestarikan file adalah dengan menulis fungsi yang memungkinkan Anda memindahkan file ke area sampah (katakanlah
$HOME/.trash
) dan memulihkan file yang diperlukan dari sana. Fungsi ini dapat aliasrm
. Anda dapat menjadwalkan tugas cron untuk menghapus file yang telah ada di area sampah selama beberapa hari tertentu.sumber
Ini mungkin menghemat masalah bagi sebagian dari Anda.
Jika Anda pernah menggunakan gedit untuk mengedit file itu, secara default salinan file itu akan dibuat.
Misalnya, misalkan kita telah menghapus 'myfile.txt' secara tidak sengaja.
Dalam folder yang berisi file yang baru saja Anda hapus, gunakan perintah ini dan Anda akan memulihkan salinannya dari sana:
ls | grep 'myfile.txt~'
Dengan sedikit keberuntungan Anda akan menemukannya dan kemudian:
cp 'myfile.txt~' 'myfile.txt'
Saya telah memulihkan file yang sekarang menggunakan metode ini. Semoga berhasil!
sumber