Você deve começar por desmontar e usar fsck para verificar a corrupção do sistema de arquivos.
Se isso não for corrigido, tente examinar o sistema de arquivos manualmente.
O comando unlink simplesmente chama a função unlink() do sistema. Como ele retorna o erro No such file or directory , você pode começar observando exatamente o que a estrutura do diretório diz sobre o arquivo.
ls usa a chamada readdir() e retorna um erro ao tentar ler a entrada dir. Você teria que usar a chamada getdents() diretamente para ler o diretório. Felizmente, há um exemplo completo em man 2 getdents , que você pode compilar e usar sem precisar modificar nada.