Saya memiliki disk USB eksternal dengan sistem file NTFS di atasnya.
Jika saya menghapus file dari Windows dan saya menjalankan salah satu dari beberapa utilitas "hapus" (katakanlah, TestDisk) saya dapat dengan mudah memulihkan file (karena "itu masih ada tetapi ditandai sebagai dihapus").
Jika saya menghapus file dari Linux, tidak ada utilitas (kecuali saya menggunakan pencarian berbasis signature) dapat memulihkan file. Mengapa? Bagaimana pembatalan tautan diterapkan dalam kode sistem file NTFS Linux? Sepertinya itu tidak hanya "tandai sebagai dihapus" tetapi menghapus beberapa struktur pada-disk, apakah ini masalahnya?
Jawaban:
Saya telah melihat sumber ntfs3g karena penasaran.
Tampaknya ada fungsi yang
ntfs_delete(...)
didefinisikandir.c
, yang melakukan penghapusan.Itu pasti menghapus semua metadata file / direktori yang dihapus dari struktur sistem file.
Karena ada kode sumber untuk versi Microsoft sendiri tidak tersedia, saya hanya bisa mencoba membuat tebakan yang berpendidikan tentang cara menghapusnya.
Tampaknya, Microsoft hanya menandai entri MFT sebagai tidak terpakai, karena utilitas yang tidak terhapus dapat memulihkan lokasi dan nama file yang dihapus.
sumber
Saya tidak tahu kekhususan Windows dan NTFS, tetapi cara umum untuk melakukan ini pada GUI pengelola file Unix / Linux dan Mac OS X Finder adalah tidak benar-benar menghapus file tetapi memindahkannya ke folder tersembunyi khusus bernama Sampah (atau serupa). perintah undelete mengambil file dari folder Trash.
rm
cukup menghapus file tanpa repot dengan folder Sampah, seperti yang diminta oleh pengguna.sumber