Odzyskiwanie skasowanych partycji i plików

Strona 1 z 6

drukuj

anuluj

Na własną rękę

2004-02-21

Adam Rudziński

Odzyskiwanie skasowanych partycji i plików

Komu nie przechodzą po plecach ciarki, kiedy po włączeniu komputera ogląda komunikat "Invalid

partition table"? Szczególnie wtedy, gdy płyty CD z kopiami zapasowymi ważnych plików zdążyły

pokryć się centymetrową warstwą kurzu?

Nieszczęścia chodzą po ludziach - a nieszczęściem może być wirus

masakrujący tablicę partycji albo młodszy brat pozostawiony sam na

sam z włączonym komputerem. Oczywiście najwygodniej byłoby wtedy

sięgnąć po kopie zapasowe zbiorów, ale pewnie okaże się, że po

prostu ich nie mamy. Pozostaje zatem udać się do firmy, która

odzyska nasze pliki, albo wysupłać z kieszeni pieniądze na pakiet typu

EasyRecovery Pro. Narzędzie kosztuje mniej więcej 2000 złotych.

Możemy też spróbować uratować dane samodzielnie, korzystając

z darmowych aplikacji. Istnieją bowiem narzędzia, które pozwalają

naprawić uszkodzoną tablicę partycji albo pliki, których nie znajdziemy

już w systemowym Koszu. Jak to zrobić, wyjaśnimy w niniejszym

Rys. 1. Opisy dysków logicznych znajduj ą się

w tzw. Extended Master Boot Recordzie.

artykule.

Zaznaczone na rysunku 64 bajty to kolejna

tablica partycji

Bez złudzeń

Nie róbmy sobie nadziei, że uda nam się tak dopracować domowe sposoby odzyskiwania danych, aby podważyć

sens istnienia firmy Ontrack albo innych, podobnych laboratorów. Nic z tego - zaprezentowane dalej "patenty"

mają zdecydowanie chałupniczy charakter i przeznaczone są do własnego użytku. Choć efekty pracy mogą być

niezłe, to osiągniemy je sporym nakładem sił. I już tylko dlatego zaznaczam, że to, co opiszę dalej, robi się

wyłącznie wtedy, gdy nie ma innego wyjścia. Nie powinniśmy szukać w ten sposób rozrywki albo metod zabicia

czasu. Zapewniam, że rozrywka jest żadna, a czasu zabijemy naprawdę zbyt wiele.

Jeszcze jedno: programy, które będą nam potrzebne, nie pomogą, w przypadku gdy doszło do

mechanicznego uszkodzenia dysku. W takiej sytuacji nie ma rady - musimy skorzystać z pomocy specjalistów.

Ich adresy znajdziecie w ramce "Więcej informacji" na końcu artykułu.

W zerowym sektorze

Przyjmijmy, że po uruchomieniu komputera wita nas komunikat o uszkodzeniu tablicy partycji bądź o

niewłaściwych wpisach w całym sektorze zajmowanym przez Master Boot Record. Nie mamy wtedy co liczyć na

załadowanie systemu operacyjnego. Zanim zajmiemy się metodami pozbywania się kłopotu, musimy przypomnieć

sobie wiadomości na temat głównego rekordu ładującego.

Master Boot Record ma rozmiar 512 bajtów i zajmuje w całości pierwszy fizyczny sektor na dysku. Rekord

składa się z dwóch części: umieszczonego na początku kodu wykonywalnego i tablicy partycji. Kod ładowany jest

do pamięci RAM i uruchamiany podczas startu komputera. W samym kodzie znajdziemy program odpowiedzialny

za odnalezienie i odczytanie tablicy partycji oraz określenie, która partycja jest aktywna - czyli z której powinien

być uruchamiany system operacyjny.

Na razie te wiadomości powinny nam wystarczyć. Wynika z nich jasno, że dobrze jest mieć zapasową

kopię Master Boot Recordu. Można ją zrobić, posługując się programem MBRutil, który zamieszczamy na CHIP-

http://www.chip.pl/arts/n/printversion/printversion_84825.html

2004-02-21

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Odzyskiwanie skasowanych partycji i plików

Strona 2 z 6

CD. Wystarczy wydać komendę mbrutil /S=plik_z_kopia_MBR. Odtwarzanie rekordu startowego wymaga

wydania komendy mbrutil /R=plik_z_kopia_MBR.

Gdy kopii brak

Zazwyczaj jednak jest tak, że żadnej kopii MBR nie mamy. Ale

nawet wtedy możemy spróbować naprawić sektor rozruchowy.

Najczęstszym - i dość banalnym - zdarzeniem jest uszkodzenie

kodu wykonywalnego, zapisanego w Master Boot Recordzie. W takiej

sytuacji musimy dysponować dyskietką startową z programem fdisk.

Po wystartowaniu komputera z dyskietki wydajemy komendę

fdisk /mbr. Wystarcza to do naprawienia kodu. Jeżeli jednak

problemu nie da się rozwiązać poprzez skorzystanie z dyskietki

Rys. 2. W pierwszym sektorze dysku twardego

startowej i fdiska, to najwyraźniej doszło do awarii w innej części

znajdziemy Master Boot Record, składający

się z kodu wykonywalnego i tablicy partycji.

MBR.

MBR zawsze kończy się sygnaturą 55 AA. Na

A co właściwie mogło ulec uszkodzeniu? Miejmy nadzieję, że

ilustracji po prawej zaprezentowano

"normalny" obszar MBR

przypadek jest w miarę prosty. Nieuszkodzony Master Boot Record

kończy się specjalną sygnaturą. Ma ona rozmiar dwóch bajtów o

szesnastkowej postaci 55 AA. Jeśli sygnatura jest inna, to podczas startu komputera oglądamy komunikaty: "The

system did not load because of a computer disk hardware configuration problem (...)", "Boot Record Signature

AA55 Not Found", "NTDETECT failed" itp. Możemy zatem sprawdzić sygnaturę i ewentualnie ją skorygować.

Posłużymy się aplikacją WinHex. Jest to darmowy edytor dyskowy, za pomocą którego spróbujemy poprawić

uszkodzone dane.

Bajt po bajcie

Po uruchomieniu WinHeksa wydajemy komendę Tools | Disk Editor. Następnie zaznaczamy ikonkę dysku,

którego zawartość chcemy edytować. Naciskamy przycisk OK. Pojawi się okno prezentujące zawartość

"twardziela". Klikamy pole Access i wybieramy opcję Partition | Partition table. Teraz pokazuje się cały

Master Boot Record. Każda wyświetlona na ekranie para szesnastkowych cyfr to jeden zapisany bajt. Na razie

WinHex pracuje w trybie przeglądania danych i nie grozi nam żadne przypadkowe zmodyfikowanie dysku.

Trzeba jakoś się orientować w tych wszystkich liczbach wyświetlanych na ekranie. Przypominam: szukamy

dwóch ostatnich bajtów Master Boot Recordu (tych o numerze 510 i 511, czyli szesnastkowo 1FE i 1FF). W

kolumnie oznaczonej jako Offset odnajdujemy linię 1F0 i przesuwamy się w prawo o 15 pozycji. Powinna tam

być wpisana liczba 55. O jeden bajt w prawo znajdziemy miejsce dla drugiej części sygnatury, czyli AA. Jeżeli

widzimy, że sygnatura jest niepoprawna, wydajemy komendę Options | In-Place Editor (albo naciskamy

kombinację [Shift]+[F6]). W ten sposób przechodzimy do trybu edycji dysku. Po zaakceptowaniu ostrzeżenia o

tym, że wszystkie zmiany zostaną wprowadzone bez pytania o potwierdzenie, wpisujemy wartość 55 AA na

dwóch ostatnich pozycjach Master Boot Recordu.

Zamykamy WinHeksa i próbujemy załadować system z "poprawionego" dysku. Udało się? Jeśli nie,

potrzebna będzie kolejna dawka informacji.

Na własną rękę

Jak opisać dysk?

Wygląda na to, że uszkodzona została tablica partycji. Niestety,

przyjdzie nam teraz przełknąć sporą porcję liczb. Na razie wiemy, że

Master Boot Record ma wielkość 512 bajtów, zaczyna się kodem

wykonywalnym i kończy sygnaturą. Między tymi elementami

znajdziemy tablicę partycji.

http://www.chip.pl/arts/n/printversion/printversion_84825.html

2004-02-21

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Odzyskiwanie skasowanych partycji i plików

Strona 3 z 6

Kod wykonywalny zajmuje około 400 początkowych bajtów

MBR. Piszę "około", gdyż ta wartość może się zmieniać w zależności

od tego, jakiego systemu operacyjnego używamy. W każdym razie

kod musi się skończyć najpóźniej na bajcie numer 445. Dalej

rozpoczyna się tablica partycji, złożona z czterech rekordów o długości

16 bajtów każdy.

Wszystkie rekordy mają identyczną strukturę, pokazaną na

rysunku na poprzedniej stronie. Pierwszy bajt określa stan partycji.

Jeżeli wpisana jest tam wartość 00, to partycja jest nieaktywna. W

przypadku gdy mamy do czynienia z partycją startową, oznaczana jest

ona liczbą 80. Kolejne trzy bajty wskazują, gdzie rozpoczyna się

Rys. 1. Ranish Partition Manager dostarcza

szczegółowych danych dotyczących dysku

partycja. Ta informacja jest prezentowana w formacie CHS (cylinder,

twardego i tablicy partycji

głowica, sektor). Piąty bajt określa typ partycji; szósty, siódmy i ósmy

wskazują miejsce, w którym się ona kończy (w formacie CHS). Następne cztery bajty to podana w sektorach

odległość między początkiem dysku a początkiem partycji. Ostatnie cztery bajty to rozmiar partycji, określany

jako liczba zajmowanych przez nią sektorów.

Jeszcze kilka słów na temat zapisanych w tablicy partycji danych CHS. Na numer głowicy przeznaczono

jeden bajt, natomiast informacja cylinder-sektor podawana jest jako dwubajtowe słowo. Dokładny opis danych

CHS znajduje się pod adresem http://www.datarescue.com/laboratory/partition.htm.

Rzućmy teraz okiem na ilustrację z poprzedniej strony i przyjrzyjmy się tablicy partycji. Możemy z niej

wyczytać, że pierwsza partycja jest aktywna (80), jej początkowe "namiary" (w formacie CHS) to 00 01 01, a

końcowe - FE BF FC. Typ partycji to Windows NT (07). Partycja zaczyna się na 63 sektory od początku dysku

(00 00 00 3F) i zajmuje 12 289 662 sektory (00 BB 86 7E).

W przypadku gdy dojdzie do jakiegoś nieszczęścia, możemy spróbować przywrócić odpowiednie wpisy w

tablicy partycji. Znowu użyjemy WinHeksa, ale zanim go włączymy, powinniśmy jeszcze przyswoić sobie trochę

informacji o sposobie zapisywania danych w tablicy partycji.

Nie tylko cztery partycje

Powróćmy do widocznego na ilustracji obrazu Master Boot Recordu.

Widać, że w tablicy partycji znajduje się jeszcze jeden wpis. To

partycja rozszerzona (extended). W tym przypadku może się okazać,

że w MBR nie znajdziemy jej dokładnego opisu. Trzeba go poszukać

w zupełnie innym miejscu.

Jak wiadomo, na dysku można założyć cztery partycje

podstawowe albo do trzech partycji podstawowych i jedną

rozszerzoną. Dlaczego akurat cztery? Widać to gołym okiem: bo tyle

Rys. 2. Recover4All odnajdzie na dysku

jest miejsca na opisy partycji w MBR. Ale skoro tak, to w jaki

zagubione pliki. Niestety, darmowa wersja

sposób można dzielić partycje rozszerzone na w zasadzie dowolną

aplikacji ma pewne ograniczenie - odzyska dla

nas zbiory o rozmiarze do 10 KB

liczbę dysków logicznych? Otóż opis partycji rozszerzonej to

odwołanie się do innego obszaru dysku, w którym znajdziemy...

kolejną tablicę partycji. Może być w niej umieszczony zarówno opis partycji (noszącej tym razem nazwę "dysku

logicznego"), jak i odwołanie do kolejnego obszaru z następną tablicą partycji i dyskami logicznymi. Innymi

słowy, jeżeli chcemy poznać lub uzupełnić opis partycji rozszerzonej z dysku zaprezentowanego na zrzucie

ekranowym (Na własną rękę), musimy "przeskoczyć" do sektora BB 86 BD - bo tam rozpoczyna się partycja

rozszerzona.

Aby przenieść się w odpowiednie miejsce, zaznaczamy pierwszy bajt w MBR, wydajemy komendę Position

| Go to Offset i uaktywniamy opcję Current position. W polu New position wpisujemy liczbę bajtów, o

którą chcemy przesunąć się na dysku. W opisywanym przypadku wynosi ona 1 77 0D 7A 00. Dlaczego akurat

http://www.chip.pl/arts/n/printversion/printversion_84825.html

2004-02-21

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Odzyskiwanie skasowanych partycji i plików

Strona 4 z 6

tyle? Bo taki jest wynik operacji (liczba sektorów do początku partycji rozszerzonej) x (liczba bajtów w sektorze).

Naciskamy przycisk OK - i już jesteśmy w tzw. Extended Master Boot Recordzie. Kończy się on sygnaturą 55

AA - tak samo jak MBR. Poprzedzające sygnaturę 64 bajty to znowu tablica partycji. Ale są w niej najwyżej

dwa wpisy: pierwszy to informacje o "bieżącym" dysku logicznym; drugi to "namiary" kolejnego dysku

logicznego.

Kiedy kasujemy partycję, to wpisy w obszarach MBR i EMBR zostają przesunięte o jedno miejsce "do

góry". Same dane nie znikają jeszcze z dysku i jest nadzieja, że uda się je odzyskać.

Na własną rękę

Poprawiamy!

Wiemy już dosyć. Jeżeli z tablicy partycji zniknie nam jakiś wpis,

możemy spróbować go uzupełnić. Łatwo powiedzieć: "jakiś wpis".

Gorzej z ustaleniem, co za wartości powinniśmy podać podczas

naprawiania tablicy. Musimy znać przynajmniej rozmiar zagubionej

partycji i jej położenie względem początku dysku. Pewnie mało kto

jest zainteresowany tym, ile sektorów składa się na jedną albo drugą

partycję. A kiedy jej już nie ma, to przepadło - za poźno sprawdzać

rozmiary.

Jednak informacje o organizacji dysku możemy jeszcze uzyskać,

korzystając z Ranish Partition Managera. Ten program także

Rys. 1. Najprostszą metodą przywracania

zamieszczamy na CHIP-CD. Przygotowujemy dyskietkę startową z RPM plików jest skorzystanie z aplikacji PC

i po załadowaniu systemu wydajemy komendę part -p -r >

Inspector File Recovery

a:\part.txt. W efekcie na dyskietce pojawi się zbiór part.txt, w którym znajdziemy informacje o dysku - m.in.

liczbę sektorów zajmowanych przez poszczególne partycje, ich położenie na dysku itp. Nie będzie tam danych

dotyczących partycji, która zniknęła - ale zobaczymy, że pewien obszar na dysku jest niewykorzystany. Trochę

policzymy. Przypuśćmy, że "pusty" obszar znajduje się pomiędzy sektorem 22 523 130 a 53 239 410. Ma on

zatem rozmiar 30 716 280 sektorów. Gdzie się zaczyna? W sektorze następującym po poprzedzającej go

partycji. Mamy zatem pierwsze wartości. Przeliczamy je na liczby szesnastkowe.

Pora zająć się numerami cylindrów, głowic i sektorów. Wystarczy jednak przyjrzeć się danym uzyskanym

za pomocą Ranish Partition Managera, aby stwierdzić, że sekcja CHS niemal zawsze wygląda identycznie. Wpis

odpowiadający początkowi partycji to 1023-0-1 lub 1023-1-1. Z kolei "namiary" końca przedstawiane są w

postaci 1023-254-63. Powód tego stanu rzeczy jest oczywisty: informacja CHS nie pozwala opisać

współczesnych, gigabajtowych "twardzieli". Prawdziwe dane CHS są podawane tylko dla partycji podstawowej.

Zaczyna się ona 63 sektory za początkiem dysku.

Postępujemy podobnie jak w przypadku poszukiwania obszaru EMBR. Wydajemy komendę Position | Go

to Offset i przenosimy się do początku partycji pierwotnej (czyli do bajtu o numerze 63x512). Dane CHS

odczytamy z ekranu (sekcja Cylinder/Head/Sector No). Tak samo sprawdzimy informację CHS dotyczącą

końca partycji.

Musimy określić typ partycji. Symbole odpowiadające różnym partycjom znajdziemy pod adresem

http://www.ata-atapi.com/ hiwtab.htm .

W zasadzie mamy już skompletowane informacje do wpisania w MBR. Ale pamiętajmy o jednym: ręczne

naprawianie rekordu zajmuje co najmniej kilka godzin. Gdy chcemy odzyskać dysk logiczny opisany w obszarze

EMBR, to praca będzie trwała jeszcze dłużej - bo konieczne będzie poprzesuwanie wpisów z jednego EMBR do

drugiego. Jeżeli operacja się uda, to i tak powinniśmy skopiować w bezpieczne miejsce dane ze wskrzeszonego

dysku, a później przeprowadzić jego repartycjonowanie tradycyjną metodą.

Żegnaj, zbiorze

http://www.chip.pl/arts/n/printversion/printversion_84825.html

2004-02-21

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Odzyskiwanie skasowanych partycji i plików

Strona 5 z 6

Czasami jest nieco prościej: nie pożegnaliśmy się wcale z całą partycją, a "tylko" z dysku zniknęły nam jakieś

zbiory. Oczywiście możemy spróbować je odratować. Pomińmy przypadek, w którym po prostu otwieramy

systemowy Kosz i wydajemy komendę Przywróć. Zajmiemy się sytuacją, gdy danych w Koszu już nie

znajdziemy.

Nie powinniśmy liczyć na to, że za darmo odzyskamy kolekcję skasowanych zdjęć. Uda nam się uratować

raczej pliki tekstowe - a i to nie w oryginalnej w postaci, tylko w kawałkach. Złoży się na nie zawartość wielu

sektorów dysku, na których umieszczone były zbiory. Przyjdzie nad nimi popracować, aby skleić wszystko w

całość, przywrócić formatowanie itp. Ale dobre i to, zwłaszcza gdy chodzi o gotową pracę dyplomową.

Bez opłat

Spośród darmowych narzędzi do ratowania plików na początku

weźmiemy na warsztat program PC Inspector File Recovery. Po

uruchomieniu aplikacji i wybraniu wersji językowej wydajemy

komendę Object | Drive. Na zakładce Logical drive wskazujemy

dysk zawierający skasowane dane, a w menu Tools wybieramy

opcję Find lost data. Określamy, która część dysku powinna zostać

przeskanowana w poszukiwaniu utraconych zbiorów. Obszar

poszukiwań możemy zawęzić, korzystając z suwaków Start/End

Rys. 2. GetDataBack nie odzyska nam plików,

cluster. Po naciśnięciu przycisku OK program rozpocznie

ale dostarczy informacji o położeniu

utraconych zbiorów

skanowanie. Gdy je zakończy, powinniśmy zaznaczyć folder Lost i

sprawdzić, czy nie znajdują się w nim jakieś pliki. Jeżeli są,

wydajemy polecenie Recover.

PC Inspector File Recovery ma pewną wadę: nie potrafi sobie poradzić z dyskami i partycjami

sformatowanymi jako NTFS. W takim przypadku powinniśmy sięgnąć po narzędzie Recover4All. Uruchamiamy je z

dyskietki. Zaznaczamy dysk, na którym chcemy znaleźć utracone dane, i czekamy na przeskanowanie

"twardziela". Jeżeli Recover4All cokolwiek na nim znajdzie, to możemy zlecić odzyskanie plików.

Niestety, udostępniane za darmo wydanie programu pozwala tylko na odkasowanie tych plików, których

rozmiar nie przekracza 10 KB. W ten sposób odzyskamy zatem tylko małe pliki. Skoro tak, to trzeba jeszcze

trochę pokombinować.

Od początku zbioru

Powrócimy do WinHeksa, ale zanim go uruchomimy, skorzystamy z próbnej wersji aplikacji GetDataBack. Ten

program wyszuka nam na dysku zgubione pliki. Nie pozwoli nam ich odzyskać, dopóki nie wniesiemy opłaty za

wersję pełną, ale na razie wstrzymajmy się z wydawaniem pieniędzy. Zaznaczmy symbol pliku, który chcemy

odratować, i wydajmy komendę Info.

Zobaczymy dokładne "namiary" pliku. Interesuje nas przede wszystkim informacja o tym, gdzie znajduje

się pierwszy klaster "okupowany" przez zbiór. Teraz startujemy WinHeksa i przechodzimy właśnie do tego

klastra. Kopiujemy jego zawartość. Później będziemy mogli ją wkleić do edytora tekstu i poświęcić trochę czasu

na jej obrobienie. Oczywiście nieraz przyjdzie nam poszukać i kolejnych sektorów z danymi. Ciężka i naprawdę

niewdzięczna jest to praca - ale czego się nie robi, mając nóż na gardle?

Utrata danych - co robić?

Utrata danych - co robić?

Kiedy nie możesz odczytać niektórych plików, pamiętaj, że pośpiech jest złym doradcą. Najpierw postaraj się

uspokoić, a dopiero później próbuj odzyskać dane. Jeżeli nie wiesz, co robić, po prostu wyłącz komputer. Lepiej

będzie skorzystać z pomocy firmy specjalizującej się w ratowaniu uszkodzonych dysków niż doprowadzić do

jeszcze większych spustoszeń.

http://www.chip.pl/arts/n/printversion/printversion_84825.html

2004-02-21

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

Odzyskiwanie skasowanych partycji i plików

Strona 6 z 6

Jeżeli jednak zdecydujesz się na samodzielne odzyskiwanie danych, to:

- nie instaluj niczego na dysku, na którym znajdowały się utracone zbiory;

- gdy system operacyjny działa, a nie masz dostępu tylko do niektórych plików, uruchom program do

odzyskiwania danych z dyskietki lub płyty CD. Najlepiej jednak zamontuj swój dysk w innym komputerze;

- nie formatuj dysku, nie kasuj ani nie zakładaj na nim partycji;

- spróbuj skopiować zawartość dysku na innego "twardziela" - uratujesz przynajmniej to, co jeszcze da się

odczytać;

- jeśli dysk twardy wydaje podejrzane odgłosy, nie rób nic na własną rękę. Wyłącz komputer i skorzystaj z

pomocy firmy specjalizującej się w odzyskiwaniu danych.

A gdy już doprowadzisz swoją maszynę do porządku, pamiętaj, że:

- aktualna kopia zapasowa pozwala w ekspresowym tempie odzyskać pliki. Czysty nośnik CD kosztuje złotówkę;

- pofragmentowane pliki trudniej uratować, często więc wykonuj defragmentację dysku.

Copyright © 2001-2002 Vogel Burda Communications Sp. z o.o.

drukuj

anuluj

http://www.chip.pl/arts/n/printversion/printversion_84825.html

2004-02-21

PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com