Se você estiver procurando por uma sobreposição de sistema de arquivos personalizada, o FUSE é a direção certa. Existem vários sistemas de arquivos personalizados escritos usando FUSE (sshfs, ntfs-3g, wikipediafs ...), incluindo sobreposições simples como bindfs .
Pode-se usar o código-fonte bindfs e modificá-lo para, digamos, o primeiro byte com alguns dados aleatórios sempre que ele processar uma operação de leitura.
Para uma opção de kernel puro, você pode modificar overlayfs
ou unionfs
drivers de maneira semelhante.
Outra alternativa é usar o Samba, gravar um módulo Samba vfs para corromper arquivos, compartilhar o diretório de origem e montá-lo na mesma máquina usando o driver cifs
do Linux. (O mesmo também é possível usando o driver 9p
e o daemon u9fs
, ou com o daemon nfs
e algum daemon do servidor NFS.)
Se você não se importa com o conteúdo, crie arquivos esparsos com o tamanho desejado; eles não ocuparão espaço algum:
$ truncate -s 1G largefile
$ du -h --apparent largefile
1G largefile
$ du -h largefile
0 largefile
Faça um loop em uma árvore assim:
cd /foo
find -type d | while read -r file; do
mkdir -p "/foobar/$file"
done
find -type f | while read -r file; do
truncate -r "$file" "/foobar/$file"
done