Windows telah menyebutnya sebagai Recycle Bin selama lebih dari 10 tahun sekarang; dan ketika Anda mendorong hapus, secara eksplisit mengatakan itu memindahkan file, bukan menghapusnya. rmmemutuskan tautan i-node yang terkait dengan file.
Hal pertama yang harus diingat adalah - berhenti melakukan kegiatan menulis lebih lanjut pada sistem file.
Kemudian Anda dapat mencoba beberapa alat yang akan melihat sistem file dan mencoba mencari data di node yang dihapus. ' extundelete' adalah salah satu alat di sourceforge.
extundelete adalah utilitas yang dapat memulihkan file yang dihapus dari partisi ext3 atau ext4 . Sistem file ext3 adalah sistem file yang paling umum saat menggunakan Linux, dan ext4 adalah penggantinya. extundelete menggunakan informasi yang disimpan dalam jurnal partisi untuk mencoba memulihkan file yang telah dihapus dari partisi. Tidak ada jaminan bahwa file tertentu akan dapat dihapus, jadi selalu mencoba untuk memiliki sistem cadangan yang baik, atau setidaknya menempatkan satu di tempat setelah memulihkan file Anda!
Tulisan tidak lanjut tidak dapat cukup ditekankan. Itu bukan built-in, jadi "undeleting" adalah masalah perangkat lunak pemulihan yang menyusun kembali potongan-potongan yang tersisa sebelum filesystem menimpa data dengan penulisan selanjutnya.
Jeremy M
2
Langkah pertama adalah mencoba alat yang tidak terhapus untuk sistem file yang digunakan untuk drive root Anda.
Seperti disebutkan, ext3grep dan extundelete adalah alat untuk keluarga sistem file ext.
Pilihan lain tergantung pada jenis file yang ingin dipulihkan adalah menjalankan pemahat file pada drive. Ini akan memakan waktu lebih lama daripada utilitas di atas.
Terutama adalah salah satu opsi yang saya gunakan untuk ini.
Opsi terakhir, jika Anda mengetahui string tertentu di dalam file, adalah membuka drive di hex editor dan mencari string itu.
Tergantung pada pengaturan Anda, manajer jendela Anda dapat menyediakan tempat sampah / tempat sampah.
Pada akhirnya, sama sekali tidak ada pengganti untuk memiliki pengaturan sistem cadangan yang baik. Temukan satu yang melakukan tugasnya tanpa Anda menyentuhnya dan mengaturnya. Anda akan menghemat banyak waktu, masalah, dan rasa sakit dalam jangka panjang.
Karena undelete_ext3 tampaknya sudah tidak ada, berikut ini adalah skrip bash sederhana, yang membantu saya memulihkan beberapa file yang tidak dapat diperoleh menggunakan extundelete atau debugfs . Solusi dibagikan.
Anda dapat melihat daftar blok untuk dilihat, lihat PRESEED. Dibutuhkan satu nomor blok per baris. Jika Anda tidak melihat sebelumnya, semua blok akan dicari, default.
Untuk setiap blok, byte pertama diperiksa untuk konten gzip.
Jika berhasil, blok yang dimaksud adalah gunzip untuk menyelidiki lebih lanjut untuk string "ustar" pada byte 257, demarking arsip tar.
Akhirnya, data yang cocok dengan pola file diekstraksi (gaya jalur akhiran menggunakan opsi wildcard tar) dan diambil untuk string tertentu. Lihat variabel FILE_IN_TAR dan FIT_CONTENT untuk ini.
Jika ditemukan, simpan file tersebut.
Karena Anda mungkin memiliki kasus penggunaan yang berbeda, ini mungkin memberi Anda bingkai untuk dijadikan dasar penyaringan Anda sendiri. Anda pasti perlu mengubah nilai saat mencari tipe file lainnya.
Doa contoh: ./ext-undelete-tar-gz.sh devimage found_files/
#!/bin/bash# Brute force (linear) search specific tar files with# certain contents on ext2 / ext3 / ext4 devices or files## .. this is a last resort if extundelete and/or debugfs# did not find what you were looking for and limited# in that recoverable data must not have been stored# in fragments, i.e. non-sequentially[[-n "$2"]]||{
echo "usage: $0 [ device | imagefile ] "\
"[ destdir_for_recovered_data ] "\
"[ max_blocks_to_search (optional) ]"
exit 1}
IMG=$1
DEST=$2
TMP=/dev/shm/cand.tmp
PRESEED=/dev/shm/cand.list
GZMAGIC=$(echo -e "\x1f\x8b\x08")
TARMAGIC=$(echo -e "ustar")# max bytes to read into $TMP when a .tar.gz has been found
LEN=$((160*1024))# pick $TMP for recovery based on matched strings..
FILE_IN_TAR="debian/rules"# ..in the tar index (suffix-search)
FIT_CONTENT="link-doc="# ..within FILE_IN_TAR matches# determine FS parameters
BLOCKS=$(tune2fs -l $IMG | grep -Po"(?<=^Block count:).*"| xargs)
BS=$(tune2fs -l $IMG | grep -Po"(?<=^Block size:).*"| xargs)
LEN=$((LEN/BS))function _dd { dd $@ 2>/dev/null ;}function _gunzip { gunzip $@ 2>/dev/null ;}function _tar { tar $@ 2>/dev/null ;}function inspect_block {
bnum=$1
if _dd if="$IMG" skip=$bnum bs=$BS count=1| tee "$TMP" \
| _dd bs=1 count=3 \
| grep -qF "$GZMAGIC"thenif _gunzip -c "$TMP" \
| _dd bs=1 count=5 skip=257 \
| grep -qF "$TARMAGIC"then
_dd if="$IMG" skip=$((bnum+1)) bs=$BS count=$((LEN-1))>>"$TMP"
echo -n found $bnum.tar.gz
if _tar xzf "$TMP"-O --wildcards *"$FILE_IN_TAR" \
| grep -qF "$FIT_CONTENT"then
echo " ..picked, stripping trailing garbage:"
exec 3>&1
gunzip -c "$TMP"2>&3| gzip > $DEST/$bnum.tar.gz
exec 3>&-else
echo
fififi
echo -ne "$((bnum+1)) / $BLOCKS done.\r">&2}if[[-f "$PRESEED"]]thenwhile read bnum
do inspect_block $bnum
done<"$PRESEED"elsefor(( bnum =0; bnum < ${3:-$BLOCKS}; bnum++))do inspect_block $bnum
donefi| gzip >"$PRESEED.log.gz"
echo
Berhenti menggunakan filesystem yang dipermasalahkan setelah memperhatikan penghapusan ASAP yang salah.
Script ini mungkin akan gagal pada file besar, tidak mem-parsing struct tingkat tinggi dari sistem file.
Pada dasarnya, sistem file modern tidak dirancang untuk memulihkan data yang tidak terhubung dengan kuat, sehingga tidak ada jaminan untuk memulihkan data yang hilang.
Jika file lebih besar dari 12 blok, maka saya pikir kemungkinan Anda akan menemukan blok tipuan antara blok data. Dalam hal ini hanya dengan membaca berurutan akan menghasilkan keluaran sampah. Tetapi jika Anda dapat menemukan blok petunjuk Anda dapat memulihkan sisa file (kecuali jika ditimpa tentu saja).
rm
memutuskan tautan i-node yang terkait dengan file.Jawaban:
Hal pertama yang harus diingat adalah - berhenti melakukan kegiatan menulis lebih lanjut pada sistem file.
Kemudian Anda dapat mencoba beberapa alat yang akan melihat sistem file dan mencoba mencari data di node yang dihapus. '
extundelete
' adalah salah satu alat di sourceforge.sumber
Langkah pertama adalah mencoba alat yang tidak terhapus untuk sistem file yang digunakan untuk drive root Anda.
Seperti disebutkan, ext3grep dan extundelete adalah alat untuk keluarga sistem file ext.
Pilihan lain tergantung pada jenis file yang ingin dipulihkan adalah menjalankan pemahat file pada drive. Ini akan memakan waktu lebih lama daripada utilitas di atas.
Terutama adalah salah satu opsi yang saya gunakan untuk ini.
Opsi terakhir, jika Anda mengetahui string tertentu di dalam file, adalah membuka drive di hex editor dan mencari string itu.
Tergantung pada pengaturan Anda, manajer jendela Anda dapat menyediakan tempat sampah / tempat sampah.
Pada akhirnya, sama sekali tidak ada pengganti untuk memiliki pengaturan sistem cadangan yang baik. Temukan satu yang melakukan tugasnya tanpa Anda menyentuhnya dan mengaturnya. Anda akan menghemat banyak waktu, masalah, dan rasa sakit dalam jangka panjang.
sumber
Saya akan mencoba yang ini, ext3grep:
http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html
Anda harus melepas partisi sebelum memulai.
HTH
sumber
Karena undelete_ext3 tampaknya sudah tidak ada, berikut ini adalah skrip bash sederhana, yang membantu saya memulihkan beberapa file yang tidak dapat diperoleh menggunakan extundelete atau debugfs . Solusi dibagikan.
Anda dapat melihat daftar blok untuk dilihat, lihat PRESEED. Dibutuhkan satu nomor blok per baris. Jika Anda tidak melihat sebelumnya, semua blok akan dicari, default.
Karena Anda mungkin memiliki kasus penggunaan yang berbeda, ini mungkin memberi Anda bingkai untuk dijadikan dasar penyaringan Anda sendiri. Anda pasti perlu mengubah nilai saat mencari tipe file lainnya.
Doa contoh:
./ext-undelete-tar-gz.sh devimage found_files/
sumber