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).