Como "rm" em um sistema de arquivos NTFS difere da implementação do Windows?

16

Eu tenho um disco USB externo com um sistema de arquivos NTFS.

Se eu remover um arquivo do Windows e executar um dos vários utilitários "undelete" (por exemplo, TestDisk), posso recuperar o arquivo facilmente (porque "ele ainda está lá, mas está marcado como excluído").

Se eu remover o arquivo do Linux, nenhum utilitário (a menos que eu use um baseado em assinatura de pesquisa profunda) poderá recuperar o arquivo. Por quê? Como a desvinculação é implementada no código do sistema de arquivos NTFS do Linux? Parece que não apenas "marca como excluído", mas também limpa alguma estrutura em disco, é esse o caso?


fonte
2
@Jay silly_evarlast Wren Você provavelmente está certo, vou tentar com a falha do servidor . O sistema que usei para testar esse comportamento é um ubuntu, portanto, isso pode estar relacionado ao ubuntu.
Você pode ler o código-fonte do NTFS-3G e verificar se há algo sobre o seu problema.
Martin Ueding 3/11/11
Talvez perguntar aos desenvolvedores do NTFS-3G também seja uma possibilidade (eles sabem como o NTFS funciona e como o implementam).
janc

Respostas:

7

Eu olhei a fonte ntfs3g por curiosidade.

Parece haver uma função ntfs_delete(...)definida em dir.c, que faz a exclusão.

Ele definitivamente remove todos os metadados do arquivo / diretório excluído das estruturas do sistema de arquivos.

Como o código-fonte da versão da Microsoft não está disponível, só posso tentar adivinhar como ele executa a exclusão.

Parece que a Microsoft marca apenas a entrada MFT como não utilizada, uma vez que os utilitários não recuperados conseguem recuperar o local e o nome do arquivo excluído.

Jaka
fonte
3

Não conheço as especificidades do Windows e do NTFS, mas uma maneira comum de fazer isso nas GUIs do gerenciador de arquivos Unix / Linux e no Mac OS X Finder é não excluir o arquivo, mas movê-lo para uma pasta oculta especial chamada Lixeira (ou semelhante). o comando undelete recupera o arquivo dessa pasta Lixeira.

rm simplesmente remove o arquivo sem se preocupar com as pastas da Lixeira, conforme solicitado pelo usuário.

mouviciel
fonte
Obrigado, estou procurando uma explicação para esse comportamento!
Jcora # 30/13