Já experimentou o parâmetro --parent
, conforme descrito na página ntfsundelete
man?
Como foi possível encontrar as informações da pasta que inicialmente as incluiu, isso normalmente funcionaria.
Eu quero usar o ntfsundelete para manter a estrutura de diretórios dos arquivos recuperados. A saída do ntfsundelete é assim:
Inode Flags %age Date Size Filename
191321 FN.. 100% 2016-04-26 1175 file.txt
191322 D... 100% 2016-04-26 10 my directory
A saída não mostra o caminho completo de 'file.txt', apenas seu inode. Então, como posso encontrar o inode de seu diretório pai?
Já experimentou o parâmetro --parent
, conforme descrito na página ntfsundelete
man?
Como foi possível encontrar as informações da pasta que inicialmente as incluiu, isso normalmente funcionaria.
Os inodes não possuem informações pai, é por isso que a entrada de diretório e os inodes são separados. São entradas de diretório (ou dentry) que têm pais.
O motivo acima é para suportar hardlinks. Como os hardlinks apontam para o mesmo inode, eles podem estar em diferentes diretórios (pais).
O Trinity Rescue Kit tem um utilitário chamado ntfsundeleteall
, que é descrito como
a simple wrapper for the utility 'ntfsundelete' ... it prepends the original inode (=internal number for the file on the filesystem) before the filename, so you always have a unique filename. It's up to you to rename the files afterwards, but at least you have the original name in the recovered filename.
Você pode usá-lo baixando o disco TRK e inicializando a partir dele. Infelizmente, não consegui encontrar a fonte desse script de wrapper. Não é difícil imaginar um script bash que criaria pastas com base nos nomes de iNode relatados por ntfsundelete --scan
, talvez até fizesse suposições otimistas sobre arquivos e pastas com base em números consecutivos de iNode ... Mas é difícil escrevê-lo e posso encontre alguém que tenha.
Você pode usar find(1)
, por exemplo:
find ./ -inum 191321
Pode ser um pouco lento, no entanto.