2008-09-26 19 views
15

Chciałbym zasymulować uszkodzenie systemu plików w celu przetestowania sposobu, w jaki nasze systemy osadzone reagują na niego i ostatecznie sprawiają, że zawodzą tak zgrabnie, jak to tylko możliwe. Używamy różnych rodzajów emulowanych pamięci flash do urządzeń blokowych dla danych, które są często modyfikowane i nieodpowiednie do przechowywania w NAND/NOR.Jak mogę zasymulować uszkodzenie systemu plików ext3?

Ponieważ dobrze wiem, jak często dane są modyfikowane w różnych częściach drzewa plików i gdzie przechowywane są poufne dane. Chciałbym wprowadzić błędy w określonych obszarach, a nie tylko losowo.

W nagłych wypadkach używamy fsck -y jako środka ostatecznego w celu próby podniesienia systemu i zgłoszenia w bardzo złym stanie. Bardzo chciałbym wywołać błędy, które spowodowałyby, że fsck spróbowałby naprawy, aby zbadać wpływ na zdolność systemów do powrotu.

dd if=/dev/random nie jest wystarczająco dokładny dla mojego celu, ponieważ nie może być łatwo użyty do wstrzyknięcia kontrolowanych błędów. Czy są jakieś inne narzędzia lub metody, które lepiej odpowiadają moim potrzebom, czy muszę wymyślać własne?

+0

Świetne pytanie, ale oznaczyłbym tę tolerancję na błędy zamiast pełnego wdzięku rozkładu. –

Odpowiedz

2

Jeśli już wiesz, co zmodyfikować, dd może odczytać plik zawierający bajty, które chcesz napisać, i powiesz mu, gdzie je zapisać.

Aby dowiedzieć się, gdzie pisać, może pomóc ci debugf z pakietu e2fsprogs.

1

Powinno być możliwe użycie Linux plików obrazu fuzzer spowodować uszkodzenie:

lub jedną z technik wstrzykiwania błędu dysku twardego systemu Linux (np. dm-flakey w trybie korupcji) opisanym w https://unix.stackexchange.com/a/144200.