Não é bonito, mas funcionará como último recurso:
Instale "photorec", que pode ser incluído no pacote "testdisk" em sua distribuição (ambos podem ser encontrados aqui ).
Digite "photorec <foo.tar>"
e siga os prompts (escolha "Nenhum - mídia não particionada" e "outro" para a opção filesytem). Ele deve ser capaz de recuperar muitos dos arquivos, mas você terá que identificá-los e renomeá-los manualmente. Pelo menos, é melhor perder tudo. (Para referência, eu gravei meu diretório / etc e tentei isso. Mesmo em um arquivo tar não danificado, ele só tem 225 de 337 arquivos, e até mesmo alguns deles foram bem alterados.)
Uma abordagem de força ainda mais bruta seria executar "strings foo.tar > out.txt"
para recuperar dados de texto do arquivo, que precisariam ser classificados e colocados em arquivos separados manualmente.
BTW ... um google em "recuperar arquivo tar corrompido" rendeu várias ferramentas específicas para o seu problema.