Wenn Sie nach einem benutzerdefinierten Dateisystem-Overlay suchen, ist FUSE die richtige Richtung. Es gibt verschiedene benutzerdefinierte Dateisysteme, die mit FUSE geschrieben wurden (sshfs, ntfs-3g, wikipediafs ...), einschließlich einfacher Überlagerungen wie bindfs .
Man könnte den bindfs-Quellcode nehmen und ihn modifizieren, um zum Beispiel XOR das erste Byte mit einigen zufälligen Daten zu ändern, wenn er eine Leseoperation verarbeitet.
Bei einer reinen Kerneloption können Sie overlayfs
oder unionfs
Treiber auf ähnliche Weise ändern .
Eine andere Alternative ist, Samba zu nehmen, ein Samba-VFS-Modul zu schreiben, um Dateien zu beschädigen, das Quellverzeichnis freizugeben und es auf demselben Computer mit dem Linux- cifs
Treiber bereitzustellen . (Das Gleiche ist auch mit dem 9p
Treiber und dem u9fs
Daemon oder mit dem nfs
Treiber und einem anderen NFS-Server-Daemon möglich.)
Wenn Sie sich nicht für den Inhalt interessieren, erstellen Sie spärliche Dateien mit der gewünschten Größe. Sie nehmen überhaupt keinen Platz ein:
$ truncate -s 1G largefile $ du -h --apparent largefile 1G largefile $ du -h largefile 0 largefile
Schleife über einen Baum wie folgt:
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