Zabezpieczenia przed skutkami awarii dysku twardego – przemyślenia
Dysk twardy należy do tych części systemu komputerowego, których działanie jest uzależnione od elementów mechanicznych. A elementy mechaniczne, nawet gdy są najwyższej jakości, będą ulegać awarii częściej niż elementy elektroniczne. Chciałbym podzielić się kilkoma spostrzeżeniami na temat skutków awarii oraz metod zabezpieczania się przed nimi.
Najczęstszym objawem trwałego uszkodzenia dysku jest pojawienie się tzw. bad sectorów. Krótko mówiąc są to obszary na dysku, które uległy fizycznemu uszkodzeniu i nie można odczytać i/lub zapisać na nich danych. Obszary te mogą mieć bardzo różny rozmiar, przykładowo widziałem raz uszkodzenie długości zaledwie 11 bitów (polecam narzędzie SpinRite). Rodzaj skutków takiego uszkodzenia ściśle zależy od tego, w którym miejscu ono wystąpi. Jest to oczywiście zupełnie losowe. Można wyróżnić takie przypadki:
W miejscu oznaczonym jako wolne: wówczas nic złego się nie stanie. O ile awaria zostanie w porę zaobserwowana np. poprzez monitoring S.M.A.R.T. albo skanowanie powierzchni dysku programem sprawdzającym, ważne dane skopiowane, a dysk wycofany z użycia. Sprawą oczywistą jest to, że praca na dysku z uszkodzeniem fizycznym prędzej czy później zakończy się jego kompletną “wysiadką”.
W miejscu, w którym znajduje się plik, ale niekrytyczny dla systemu operacyjnego. Wówczas też nic złego się nie stanie, o ile, podobnie jak w (1), awaria zostanie zauważona.
W miejscu, w którym znajduje się plik należący do systemu operacyjnego. W tym momencie zaczynają się już poważne skutki. Trudno przewidzieć co się może dziać, ale system o ile w ogóle się uruchomi, to w najlepszym wypadku będzie się zachowywał dziwnie. Zanim zacznie się przeklinać producenta systemu dobrze jest upewnić się czy na dysku nie pojawił się właśnie bad sector. Należy użyć stosownych narzędzi do sprawdzania dysku i jak najszybciej skopiować cenne dane. Warto wiedzieć, że w systemie Windows awarie dysku można również zauważyć w dzienniku systemu (eventvwr.msc) jako błąd pochodzący od “disk” o komunikacie jednoznacznie wskazującym, że dyskiem nie jest dobrze (swoją drogą podobny komunikat może pojawić się w przypadku problemów z aparatem fotograficznym, kartą pamięci, pendrive’em etc. Wtedy nie należy się bać, bo przyczyną może być np. wadliwy kabel - trzeba upewnić się kiedy te błędy się pojawiają, czy zdarza się to podczas podłączenia np. aparatu do komputera). Należy również cieszyć się, że dostęp do danych jest w ogóle możliwy, bo w ostatnim przypadku.
W miejscu, w którym znajduje się tzw. superblok systemu plików, czyli struktura opisująca fizyczną organizację danych w pliki na dysku. Widziałem kiedyś taki przypadek, że bad sector “trafił” w obszar MFT partycji NTFS. W takiej sytuacji przestaje być możliwy dostęp do systemu plików (w jakikolwiek sposób - zapomnij o sztuczkach z ratunkowymi dystrybucjami Linuxa). Jeżeli stało się to na partycji systemowej to objaw jest taki, że system wyświetla na czarnym ekranie enigmatyczny komunikat o błędzie odczytu (niestety nie pamiętam treści) i komputer zawiesza się. Komunikat jest na czarnym, a nie słynnym niebieskim ekranie, bo BSOD jest komunikatem o błędzie jądra, a tutaj jądro nie zostało jeszcze załadowane, ponieważ 16-bitowy kod bootloader’a nie był w stanie otworzyć systemu plików partycji systemowej. W tej sytuacji można pożegnać się z danymi na dysku (dokładniej: partycji). Aczkolwiek podejrzewam, że firmy specjalizujące się w odzyskiwaniu danych potrafią binarnie grzebać w partycji NTFS (jest to robota porównywalna do szukania igły w stogu siana, dosłownie), ale koszt takiej usługi zapewne jest astronomiczny.
Widok przypadku (4) był dla mnie bardzo pouczający. Warto sobie uzmysłowić, że coś takiego w ogóle może się zdarzyć (fakt, dysk miał wyjątkowego pecha) i, że skutki są aż tak katastrofalne. Na tej podstawie można wywnioskować, że bezpieczniej jest mieć wiele partycji na dysku niż jedną dużą. W przypadku jednej dużej, gdy nastąpi awaria typu (4) tracimy zwartość całego dysku. Gdy natomiast mamy wiele partycji, tracimy zawartość tylko tej, w którą “trafiło”.
Chciałbym poruszyć jeszcze zagadnienie macierzy RAID. Moje refleksje w tym temacie są takie, że pomimo dostępności tego typu rozwiązań w domowych komputerach, są one raczej mało użyteczne.
RAID 0. Stosowanie tego poziomu jest raczej bez sensu z punktu widzenia bezpieczeństwa. Zwiększa się prawdopodobieństwo awarii i utraty danych kosztem większej wydajności.
RAID 1. Stosowanie tego poziomu w domowym komputerze jest wątpliwe, ponieważ chyba nie ma wielu osób, które chciałyby kupić 2 dyski a mieć dostępną przestrzeń tylko jednego.
RAID 0+1, albo 1+0. W domowych warunkach odpada, ze względu na zbyt dużą minimalną liczbę potrzebnych dysków - aż 4.
RAID 5. W najnowszych płytach głównych poziom ten jest dostępny w sprzętowych kontrolerach. Jest to szeroko stosowane rozwiązanie w sieciowych urządzeniach pamięci dyskowych oraz modularnych macierzach dyskowych. Poziom ten charakteryzuje się bardzo dobrymi parametrami, ale również wymaga zbyt wielu (tak sądzę), jak na domowy komputer, dysków: 3 dając dostęp do przestrzeni dwóch.
Moim zdaniem najlepszym rozwiązaniem dla domowego komputera jest montaż dwóch dysków twardych, na każdym z nich instalacja oddzielnego systemu operacyjnego oraz ręczne kopiowanie najważniejszych danych w taki sposób, aby zawsze były w aktualnej postaci na obu dyskach. Rozwiązanie to ma szereg zalet:
Mamy dostępną przestrzeń obu dysków, nie występuje problem np. RAID’u 1 gdzie de facto kupujemy 2 dyski a “mamy” 1.
Zabezpieczamy się przed awariami (1), (2) i (3) ponieważ w przypadku awarii któregokolwiek dysku mamy gotowy do działania drugi system operacyjny, który możemy uruchomić i użyć do uratowania danych z uszkodzonego dysku.
Dodatkowo zabezpieczamy się przed programową awarią samego systemu operacyjnego. Gdy jeden z systemów odmówi posłuszeństwa, po prostu uruchamiamy drugi i mamy możliwość dalszej pracy.
Zyskujemy możliwość wygodnego wykonywania kopii zapasowej również takich plików, które są zablokowane podczas działania systemu operacyjnego. Można uruchomić drugi system, np. Linux i na wszelki wypadek zrobić kopię zapasową pierwszego systemu operacyjnego np. Windows’a, bo planujemy wykonywać na nim jakąś ryzykowną operację, którą warto byłoby móc przywrócić.
Sam stosuję takie rozwiązanie, że na obu dyskach mam działający program rozruchowy, dzięki temu w każdej chwili mogę odłączyć dowolny z dysków i drugi pozwoli na uruchomienie znajdującego się na nim systemu. Na jednym dysku mam system Windows zainstalowany standardowo, na drugim mam system Linux z menedżerem rozruchu GRUB uwzględniającym oba systemy. Dysk z systemem Linux jest dla komputera pierwszym urządzeniem do rozruchu dzięki czemu mogę wybierać między dwoma systemami. Gdyby dysk ten uległ awarii, mogę przełączyć drugi dysk na główne urządzenie rozruchowe i bez wprowadzania jakichkolwiek dodatkowych zmian pracować w systemie Windows. Analogicznie, gdyby dysk z system Windows się zepsuł, mogę o nim zapomnieć i pracować w systemie Linux.
Podsumowanie będzie krótkie: dbajmy o to, aby najważniejsze dla nas dane przechowywać na co najmniej dwóch, niezależnych fizycznych nośnikach. Doświadczenie pokazuje, że awarie zdarzają się zwykle właśnie tym użytkownikom, którzy nie robią kopii zapasowych :)