Parece que você já entende muito, então não vou entrar em detalhes em excesso. Existem vários métodos para encontrar o inode e você pode geralmente cat e redirecionar STDOUT. Você pode usar debugfs
. Execute este comando dentro de:
ln <$INODE> FILENAME
Certifique-se de ter backups do sistema de arquivos. Você provavelmente precisará executar um fsck posteriormente. Eu testei isso com sucesso com um inode ainda sendo gravado e ele trabalha para criar um novo hard link para um inode desreferenciado.
Se o arquivo estiver desvinculado com um arquivo não aberto no ext3, os dados serão perdidos. Não sei ao certo como isso é verdade, mas a maior parte da minha experiência de recuperação de dados é com o ext2. Do FAQ ext3:
Q: How can I recover (undelete)
deleted files from my ext3 partition?
Actually, you can't! This is what one
of the developers, Andreas Dilger,
said about it:
In order to ensure that ext3 can
safely resume an unlink after a crash,
it actually zeros out the block
pointers in the inode, whereas ext2
just marks these blocks as unused in
the block bitmaps and marks the inode
as "deleted" and leaves the block
pointers alone.
Your only hope is to "grep" for parts
of your files that have been deleted
and hope for the best.
Há também informações relevantes nesta pergunta:
Eu sobrei um grande arquivo com um em branco em um servidor linux. Posso recuperar o arquivo existente?