AFAIK, a file on a file system has two components.
- The pointer that stores the directory path of the file. Also stores the list of sectors/blocks on the disk that the file is composed of.
- The real sectors/blocks on the disk that store the file data.
When deleting a file, the pointer is removed without any changes to the blocks. But the list of blocks are marked free to be used whenever data is written. Considering no overwritten data,
- If the pointer is completely removed, How can Recovery programs recover files?
- From what source these Recovery programs get the list of blocks the deleted file is composed of?
And,
- Can I shred file without overwriting its blocks? By completely clearing list of blocks that file to be deleted is composed of.
- Can I make file recovery impossible of already deleted files by not overwriting free space? By completely clearing list of blocks that deleted file is composed of.
Consider a fragmented filesystem like ext4 on a 512 Byte physical sector sized disk. File Recovery is pretty much useless when a deleted file's list of blocks cannot be known. If such thing is possible maybe it gives the disk little more life.