Bagaimana "rm" pada sistem file NTFS berbeda dari implementasi Windows sendiri?

16

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?


sumber
2
@ Jay silly_evarlast Wren Anda mungkin benar, saya akan mencoba dengan serverfault. Sistem yang saya gunakan untuk menguji perilaku ini adalah ubuntu, jadi ini bisa terkait dengan ubuntu.
Anda dapat membaca kode sumber ntfs-3g dan melihat apakah ada sesuatu tentang masalah Anda.
Martin Ueding
Mungkin bertanya kepada pengembang ntfs-3g adalah suatu kemungkinan juga (mereka tahu bagaimana NTFS bekerja dan bagaimana mereka mengimplementasikannya).
JanC

Jawaban:

7

Saya telah melihat sumber ntfs3g karena penasaran.

Tampaknya ada fungsi yang ntfs_delete(...)didefinisikan dir.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.

Jaka
sumber
3

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.

mouviciel
sumber
Terima kasih, saya telah mencari penjelasan tentang perilaku itu!
jcora