Domanda

Vorrei simulare la corruzione del filesystem allo scopo di testare come i nostri sistemi embedded reagiscono ad esso e alla fine farli fallire nel modo più grazioso possibile. Utilizziamo diversi tipi di memoria flash emulata da dispositivi a blocchi per i dati che vengono modificati spesso e non sono adatti per la memorizzazione in NAND / NOR.

Dal momento che ho una buona idea della frequenza con cui i dati vengono modificati in diverse parti dell'albero dei file e dove vengono archiviati i dati sensibili. Vorrei iniettare errori in aree specifiche e non solo in modo casuale.

In caso di emergenza usiamo fsck -y come una sorta di ultima risorsa per tentare di far apparire il sistema e segnalare che si trova in uno stato pessimo. Mi piacerebbe molto causare errori che inducono fsck a tentare riparazioni al fine di studiare l'effetto sulla capacità dei sistemi di tornare indietro.

dd if = / dev / random non è abbastanza preciso per il mio scopo poiché non può essere facilmente utilizzato per iniettare errori controllati. Ci sono altri strumenti o metodi che si adattano meglio alle mie esigenze o devo inventare i miei?

È stato utile?

Soluzione

Se sai già cosa modificare, dd può leggere un file contenente i byte che vuoi scrivere e gli dici dove scriverli.

Per capire dove scrivere, debugfs dal pacchetto e2fsprogs potrebbe aiutarti.

Altri suggerimenti

Dovrebbe essere possibile usare un fuzzer di immagini del filesystem Linux per causare corruzione:

o una delle tecniche di iniezione di errori del disco Linux (ad es. dm-flakey in modalità corruzione) descritta in https: //unix.stackexchange .com / a / 144200 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top