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