Następna strona Poprzednia strona Spis treści

7. Przygotowanie do zapisu danych w innym miejscu

Jeżeli wybierzesz tę drogę działania, musisz znaleźć partycję ratunkową -- miejsce, gdzie zapiszesz nowe kopie odzyskanych plików. Na całe szczęście, twój system zawiera kilka partycji: prawdopodobnie partycję główną, /usr i /home. Wybierz jedną z nich i utwórz na niej nowy katalog.

Jeśli masz tylko partycję główną i wszystko przechowujesz na niej, rozwiązanie troszkę się skomplikuje. Może masz partycje MS-DOS lub Windows, której bedziesz mógł użyć ? Albo masz sterownik do ramdisk-u w swoim jądrze, albo w module ? W celu użycia ramdisk-u (zakładając, że jądro jest nowsze od 1.3.48), napisz:

# dd if=/dev/zero of=/dev/ram0 bs=1k count=2048
# mke2fs -v -m 0 /dev/ram0 2048
# mount -t ext2 /dev/ram0 /mnt

W ten sposób stworzyłeś 2MB wolumen ramdisk-u i zamontowałeś do w /mnt.

Krótkie ostrzeżenie: jeżeli używasz kerneld (lub zastępującego go kmod w jądrach 2.2.x i późnych 2.1.x) w celu automatycznego ładowania i odładowywania modułów, nie odmontowuj ramdisk-u dopóki nie skopiujesz wszystkich plików na bardziej trwały nośnik. W chwili, gdy go odmontujesz, kerneld zakłada, że może odładować moduł (zwykle jednak czeka pewien okres). Gdy to już się stanie, pamięć zostanie użyta przez inne części jądra i stracisz wszystkie godziny spędzone na odzyskiwaniu danych.

Jeżeli masz napęd Zip, Jaz, LS-120 lub coś podobnego, może on spełniać z powodzeniem rolę partycji ratunkowej. W pozostałych przypadkach, użyj po prostu napędu stacji dyskietek.

Będziesz jeszcze potrzebował programu, który potrafi czytać dane ze środka partycji. Właściwie może to zrobić dd, ale aby przeczytać dane leżące od 600 MB do 800 MB, dd musi przeczytać i zignorować pierwsze 600 MB. Zajmuje to dosyć dużo czasu, nawet na szybkich dyskach. Moim sposobem na obejście tego problemu było napisanie programu, który przeskakuje w środek partycji. Nazywa się on fsgrab; pakiet ze źródłem możesz znaleźć na mojej stronie domowej lub na Metalab-ie (i kopiach, w Polsce - Sunsite ). Jeśli będziesz chciał stosować tę metodę, w dalszej części tego mini-JTZ zakładam, że masz fsgrab.

Nie potrzebujesz fsgrab-a, jeżeli żaden z plików, które starasz się odzyskać, nie zajmuje więcej niż 12 bloków (przeważnie blok ma rozmiar jednego kilobajta).

Jeżeli musisz użyć fsgrab-a, ale nie chce Ci się go ściągać i kompilować, jest też prosta droga na przetłumaczenie polecenia dla fsgrab na polecenie dla dd. Mając

fsgrab -c count -s skip device

możesz użyć komendy dd (przeważnie jest to dużo wolniejsze)

dd bs=1k if=device count=count skip=skip

Muszę Cię ostrzec, że chociaż dla mnie fsgrab działa doskonale, nie mogę brać odpowiedzialności za jego funkcjonowanie. Pisałem go dosyś szybko i niestarannie, po prostu, aby działał poprawnie. Więcej szczegółów o gwarancji znajdziesz w rozdziale `No Warranty' w pliku COPYING dołaczonym do pakietu (the GNU General Public Licence).


Następna strona Poprzednia strona Spis treści