Jak zasymulować bad sectory na dysku?

24 maja 2013, 17:55 | Teksty | Komentarze: 11

Jakiś czas temu na jednym szkoleniu miałem potrzebę zapewnienia uczestnikom możliwości pracy na uszkodzonych dyskach (np. w grę wchodziła realizacja obrazu posektorowego tego typu dysków). Z różnych powodów nie chciałem używać realnie uszkodzonego sprzętu – choćby ze względu na słabą powtarzalność. Z pomocą przyszedł “The Device Mapper”.

Czym jest ten mechanizm? Zobaczmy na jeden z bardziej rozbudowanych opisów:

The Device Mapper is a kernel driver that provides a framework for volume management. It provides a generic way of creating mapped devices, which may be used as logical volumes. It does not specifically know about volume groups or metadata formats.

Dalej w sekcji “The error Mapping Target” czytamy:

An error mapping target can be used for testing. To test how a device behaves in failure, you can create a device mapping with a bad sector in the middle of a device (…)

Wygląda obiecująco, szczególnie że ktoś już próbował tego wcześniej. Czas zakasać rękawy:

1. Przygotowanie pustego pliku bazowego na naszą symulację dysku.

2.  Stworzenie filesystemu na pliku.

3. Umożliwienie wykorzystania naszego pliku jako ‘realnego urządzenia’.

4.  Stworzenie dysku z wirtualnym jednym bad sectorem.

5. Zamontowanie dysku.

W porządku. Spróbujmy teraz wykonać kopię posektorową tego dysku, z wykorzystaniem narzędzia dd:

Wygląda na to, że całość działa poprawnie (to znaczy niepoprawnie działa nasz dysk ;-) ). Widać też pewne charakterystyczne zachowanie narzędzia dd – tj. zatrzymanie działania po napotkaniu błędu. Obraz x.img ma tylko 4096 bajtów!

Teraz do gry można włączyć narzędzia typu ddrescue czy dd_rescue, ale to już temat na osobny wpis. Miłego odzyskiwania danych z uszkodzonych dysków! :-)

– michal.sajdak<at>securitum.pl

 

 

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. soal

    Wystarczy właściwie parametr conv=noerror zamiast używać od razu ddrescue ;)

    Odpowiedz
    • @soal – słuszna uwaga, tej opcji nie znałem :-)

      Choć ddrescue ma prawdopodobnie trochę bardziej złożone możliwości. Np. dzielenie sektora aby odzyskać dane z jego części, powtarzanie odczytu (może za którymś razem się uda? ;) itd.
      Więcej info np. tutaj: http://www.forensicswiki.org/wiki/Ddrescue

      –ms

      Odpowiedz
      • Duży Pies

        Także program MHDD ma możliwość tworzenia bad sectorów na dysku. MHDD to znakomity program do diagnostyki i wykonywania niskopoziomowych operacji na dyskach twardych.

        Odpowiedz
  2. Damian

    Bardzo fajnie. Mało takich postów… producenci dysków zapewne uzywają podobnych narzędzi do testowania zachowania dysków na ich prace.

    Odpowiedz
    • @Damian
      No…choć bardziej do przydatne jest w temacie testowania narzędzi do odzyskiwania danych. Do parametrów dysku polecam za to np. hdparm.

      Odpowiedz
  3. Mateusz

    Świetny artykuł, choć chciałbym uzupełnienia odnośnie tego, co się dzieje w czwartym punkcie. Leniwy jestem, nie chce mi się zerkać do manuala dm_setup ;-)

    Odpowiedz
    • @Mateusz – tam jest definicja nowego “dysku”. Tj kopiowane jest (mapowane) kilka pierwszych sektorów z oryginalnego hdd – później wstawiany jeden bad sector i później znowu liniowo kopia z oryginalnego hdd. Tj. w zasadzie ten nowy dysk jest starym z tym że posiada jeden wprowadzony bad sector.

      –ms

      Odpowiedz
  4. soal

    @sekurak: Tak, zgadza się, ale do takich prostych testów taka opcja idealnie się nadaje. A oczywiście ddrescue przyda się do działania w przypadku ważniejszych danych ;) (chociaż backupy też b. ważna rzecz)

    Odpowiedz
  5. mbr

    # hdparm –help
    [...]
    –make-bad-sector Deliberately corrupt a sector directly on the media (VERY DANGEROUS)

    a potem

    –write-sector Repair/overwrite a (possibly bad) sector directly on the media (VERY DANGEROUS)

    Mógłbyś przygotować zestaw fizycznych dysków z “uszkodzonymi” tymi samymi sektorami. :)

    Odpowiedz
  6. Zawsze można użyć MHDD i komendy MAKEBAD albo RANDOMBAD :)

    Odpowiedz

Odpowiedz