batalkan penghapusan file yang baru saja dihapus di ext4 dengan extundelete

54

Apakah ada opsi sederhana tentang extundeletebagaimana saya dapat mencoba membatalkan penghapusan file yang disebut /var/tmp/test.isosaya baru saja dihapus?

(tidak begitu penting bahwa saya akan mulai me-remount drive read-only atau hal-hal semacam itu. Saya juga dapat mengunduh ulang file itu lagi)

Saya mencari perintah sederhana yang bisa saya coba jika saya berhasil memulihkannya dengan cepat.

Saya tahu, itu mungkin dengan remounting drive di read-only : (lihat Bagaimana cara saya memulihkan file hanya pada disk kosong yang baru saja dihapus? )

Tetapi apakah ini juga mungkin terjadi pada disk yang masih terpasang?

rubo77
sumber
Pertanyaan umum dengan utilitas apa pun: unix.stackexchange.com/questions/2677/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
Pertanyaan lain itu terlalu luas. Di sini saya mencari solusi cepat yang tidak aman tanpa banyak usaha (dan lebih sedikit peluang untuk sukses)
rubo77
Saya tidak bermaksud menyiratkan duplikat, tetapi Anda mungkin ingin menambahkannya ke pertanyaan mengapa pertanyaan itu tidak cukup.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

36

Melihat panduan penggunaan pada ekstundelete sepertinya Anda terbatas untuk membatalkan penghapusan file dengan beberapa cara.

Pulihkan semua

extundelete dirancang untuk membatalkan penghapusan file dari partisi yang tidak di-mount ke partisi (terpasang) yang terpisah. extundelete akan mengembalikan file apa pun yang ditemukannya ke subdirektori dari direktori saat ini bernama "RECOVERED_FILES". Untuk menjalankan program, ketik "extundelete --help" untuk melihat berbagai opsi yang tersedia untuk Anda.

Penggunaan umum untuk mengembalikan semua file yang dihapus dari partisi terlihat seperti ini:

    $ extundelete /dev/sda4 --restore-all

Memulihkan satu file

Selain metode ini disorot dalam penggunaan baris perintah:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

Jadi, Anda harus dapat mencapai apa yang ingin Anda lakukan ini:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

CATATAN: Dalam kedua kasus ini, Anda harus mengetahui perangkat ini, /dev/sda4untuk melakukan perintah ini. Anda harus me-remount sistem file sebagai hanya baca. Ini adalah salah satu syarat penggunaan extundeletedan tidak ada jalan lain untuk mengatasi hal ini.

slm
sumber
2
ya, tapi itu semua hanya berfungsi, jika saya remount drive read-only
rubo77
1
@ rubo77 - benar, tidak ada jalan lain untuk itu.
slm
2
Ini sebenarnya bekerja untuk saya sistem file ext4 tanpa remount hanya baca. Jika Anda mencoba melakukannya tanpa menghitung ulang r / o, maka Anda mendapatkan peringatan yang sepertinya memberi tahu Anda bahwa probabilitas keberhasilan Anda lebih rendah jika Anda melakukannya. Jika sangat vital untuk memulihkan file, maka Anda harus melakukannya.
Ben Crowell
Seperti @BenCrowell yang saya gunakan tanpa remount, tetapi program mengiklankan saya tentang korupsi data jika saya terus menggunakan hdd ... baru-baru ini dihapus jadi saya cukup tekan Enter lalu dapatkan kembali file saya;)
erm3nda
16

Skenario penggunaan umum ketika membatalkan penghapusan semua file termasuk harus mengembalikan semua file yang dihapus dari /dev/sdX1sekitar jam terakhir:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

Jika puas dengan file yang dipulihkan:

mount -o remount,rw /dev/sdX1
sanmai
sumber
mount: Anda harus menentukan tipe sistem file
remount mengharapkan mount point sebagai argumen, bukan perangkat
Don't You Worry Child
@ Don'tYouWorryChild mount -omengambil dir atau perangkat, sesuaiman mount
sanmai
Alih-alih mengurangi 2 jam dari tanggal yang dapat Anda lakukan $(date -d "-2 hours" +%s)dan output dari lsblk -pmungkin berguna untuk menemukan di mana LUKS dienkripsi volume LVM cache EXT4 berada. ;)
LiveWireBT