  Linux Ext2fs Undeletion mini-HOWTO
  Autor: Aaron Crane aaronc@poboc.com
  v1.3, 2 lutego 1999
  ssaawwiicckkiibb@@eeee..ppww..eedduu..ppll
  v1.0, 15 kwietnia 1999


  Wyobra sobie. Trzy ostatnie trzy dni spdzie bez snu, jedzenia, a nawet
  bez prysznica. Wanie ukoczye program, ktry przyniesie Ci wiatow saw i
  uznanie. Musisz go jeszcze tylko starowa i umieci na Metalab-ie. No, i
  skasowa wszystkie kopie zapasowe tworzone przez Emacs-a.  Piszesz wic
  rm * ~. Ju za pno, zauwaye dodatkow spacj w poleceniu. Wanie skasowae
  cae swoje dzieo !  Nadchodzi pomoc.  Dokument ten wyjania jak
  odzyskiwa skasowane pliki w systemie plikw Second Extended File Sys-
  tem. Moe uda Ci si jednak opublikowa Twj genialny program.  Dokument
  ten zosta napisany w standardzie ISO-8859-2.  Orygina tego dokumentu
  znajduje si pod adresem http://pobox.com/~aaronc/
  <http://pobox.com/~aaronc/>.
  ______________________________________________________________________

  Spis treci













































  1. Wstp

     1.1 Historia publikacji
        1.1.1 Zmiany w wersji 1.1
        1.1.2 Zmiany w wersji 1.2
        1.1.3 Zmiany w wersji 1.3
     1.2 Inne lokalizacje tego dokumentu

  2. Jak nie skasowa plikw

  3. Jakiego wspczynnika odzyskania skasowanych plikw mog si spodziewa ?

  4. Jak odzyska skasowane pliki ?

  5. Odmontowanie systemu plikw

  6. Przygotowanie do bezporednich zmian iwzw

  7. Przygotowanie do zapisu danych w innym miejscu

  8. Szukanie skasowanych iwzw

  9. Uzyskiwanie szczegowych informacji o iwzach

  10. Odzyskiwanie blokw danych

     10.1 Mae pliki
     10.2 Wiksze pliki

  11. Bezporednie modyfikacje iwzw

  12. Czy bdzie to kiedy atwiejsze?

  13. Czy s jakie programy automatyzujce ten proces?

  14. Kolofon

  15. Wyrazy uznania i bibliografia

  16. Formalnoci

  17. Od tumacza



  ______________________________________________________________________

  11..  WWssttpp

  To mini-Howto stara si dostarczy porad jak odzyskiwa skasowane pliki w
  systemie plikw ext2. Zawiera ono rwnie dyskusj, jak przede wszystkim,
  nie dopuci do skasowania wanych plikw.

  Chciabym, aby byo ono przydatne dla ludzi, ktrym zdarzy si may wypadek
  z rm; jakkolwiek mam rwnie nadziej, e przeczytaj je take inni.  Nigdy
  nie wiadomo, pewnego dnia, ktra z zamieszczonych tu informacji z moe
  uratowa Ci tyek.

  Tekst ten zakada ogln podstawow wiedz o systemie plikw UNIX-a.  Mam
  jednak nadziej, e bdzie dostpny dla wikszoci uytkownikw Linux-a.  Jeli
  jeste cakowicie pocztkujcy, obawiam si, e odzyskiwanie plikw _w_y_m_a_g_a
  iloci wiedzy technicznej, ktrej nie posiadasz.

  Nie bdziesz mg odtwarza skasowanych plikw z systemu plikw ext2 bez
  praw odczytu do urzdzenia, na ktrym byy one przechowywane. Oglnie
  oznacza to, e musisz by administatorem (root). Niektre dystrybucje
  (takie jak Debian GNU/Linux) tworz grup disk, ktrej czonkowie maj
  dostp do takich urzdze.  Bdziesz potrzebowa take debugfs z pakietu
  e2fsprogs.  Prawdopodobnie jest on ju zainstalowany przez Twoj
  dystrybucj.

  Dlaczego to napisaem? Wyniko to gwnie z moich wasnych dowiadcze ze
  zwyk gupot i katastrof spowodowan przez komend rm -r wykonywan z
  prawami administratora. Skasowaem 97 plikw typu JPEG, ktrych
  potrzebowaem i ktrych prawie na pewno nie mona byo odzyska z innych
  rode. Z pomoc uytecznych wskazwek (patrz rozdzia ``Wyrazy uznania i
  Bibliografia'') i duej wytrwaoci, odzyskaem 91 nieuszkodzonych plikw.
  Udao mi si odtworzy czciowo nastpne pi (wystarczajco, aby zobaczy co
  byo na tych obrazkach). Tylko jednego nie byem w stanie obejrze, ale
  nawet w tym przypadku, jestem prawie pewien, ze stracone zostay nie
  wiecej ni 1024 bajty (niefortunnie z samego poczatku pliku;
  uwzgldniajc to, e nic nie wiem o formacie JPG, zrobiem wszystko co
  mogem).

  W dalszych rozwaaniach bd chcia przedstawi jakiej wielkoci wspczynnika
  odtworzenia skasowanych plikw moesz si spodziewa.


  11..11..  HHiissttoorriiaa ppuubblliikkaaccjjii

  Istniej nastpujce upublicznione wersje tego dokumentu (i daty ich
  publikacji):


  +o  v1.0, 18 stycznia 1997

  +o  v1.1, 23 lipca 1997 (patrz rozdzia ``Zmiany w wersji 1.1'')

  +o  v1.2, 4 sierpnia 1997 (patrz rozdzia ``Zmiany w wersji 1.2'')

  +o  v1.3, 2 lutego 1999 (patrz rozdzia ``Zmiany w wersji 1.3'')


  11..11..11..  ZZmmiiaannyy ww wweerrssjjii 11..11

  Jakie zmiany zostay zrobione w tej wersji? Przede wszystkim, zosta
  poprawiony bd w przykadowym odzyskiwaniu pliku. Dzikuj wszystkim,
  ktrzy napisali, eby wskaza mi ten bd. Mam nadziej, e nauczyem si by
  bardziej uwanym przy interakcyjnej pracy z programem.

  Po drugie, rozwaania o systemie plikw w UNIX-ie zostay przerobione
  tak, aby uczyni je bardziej zrozumiaymi. Od pocztku nie byem z tego
  zadowolony i dostaem komentarze, e nie byo to napisane zbyt jasno.

  Po trzecie, uuencode'owany gzip-owany tar-owany pakiet fsgrab ze rodka
  pliku zosta usunity. Teraz program dostpny jest na mojej stronie
  domowej <http://pobox.com/~aaronc/tech/fsgrab-1.2.tar.gz> i na
  Metalab-ie <http://metalab.unc.edu/pub/Linux/utils/file/> (i kopiach,
  w Polsce - Sunsite
  <http://sunsite.icm.edu.pl/pub/Linux/sunsite/utils/file/> ).

  Po czwarte, dokument ten zosta przetumaczony na jzyk skadu SGML uywany
  w Linux Documention Project. Ten jzyk moe by atwo konwertowany do
  innych jzykw skadu (np. HTML-a i LaTeX-a) w celu dogodnego sposobu
  wywietlania i drukowania. Jedn z korzyci z tego jest to, e adny wygld
  wersji papierowej jest atwiejszy do osigniecia. Inn jest to, e
  dokument zawiera wewntrzne i zewntrzne odnoniki, gdy ogldany jest
  przez WWW.




  11..11..22..  TToo wwyyddaanniiee zzaawwiieerraa wwyycczznniiee ppoopprraawwkkii.. GGwwnniiee uuwwzzggllddnniieemm zzmmiiaannyy
  ssuuggeerroowwaannee pprrzzeezz cczzyytteellnniikkww,, ttoo oonnee ss wwaanniiee nnaajjwwaanniieejjsszzee..  PPiieerrwwsszzaa
  zzmmiiaannaa zzoossttaaaa zzaassuuggeerroowwaannaa pprrzzeezz EEggiillaa KKvvaalleebbeerrggaaeeggiill@@kkvvaalleebbeerrgg..nnoo,,
  kkttrryy wwsskkaazzaa nnaa ppoolleecceenniiee dduummpp  ww ddeebbuuggffss .. JJeesszzcczzee rraazz,, ddzziikkii EEggiill..
  DDrruuggaa zzmmiiaannaa ppoolleeggaaaa nnaa zzaazznnaacczzeenniiuu,, ee uuyycciiee cchhaattttrr  ppoommaaggaa uunniikknn sskkaa--
  ssoowwaanniiaa wwaannyycchh pplliikkww.. DDzziieekkuujj HHeerrmmaannoowwii SSuuiijjss HH..PP..MM..SSuuiijjss@@kkuubb..nnll zzaa
  zzaauuwwaaeenniiee tteeggoo..  SSttrreesszzcczzeenniiee zzoossttaaoo uuaakkttuuaallnniioonnee.. ZZoossttaayy ddooddaannee UURRLL--ee
  ddoo oorrggaanniizzaaccjjii ii oopprrooggrraammoowwaanniiaa.. WWpprroowwaaddzzoonnoo wwiieellee iinnnnyycchh mmnniieejjsszzyycchh
  zzmmiiaann ((lliitteerrwwkkii ii ttyymm ppooddoobbnnee))..  ZZmmiiaannyy ww wweerrssjjii 11..22

  11..11..33..  ZZmmiiaannyy ww wweerrssjjii 11..33

  Pomimo, e jest to pierwsza wersja od 17 miesicy, jest tutaj mao
  nowego. W wersji tej poprawione s drobniejsze bdy (literwki, puste
  URL-e, tego typu rzeczy -- szczeglnie nie zwizane z Open Group),
  uaktualniono kilka czci tekstu, ktre ulegy przeterminowaniu, takich
  jak partie dotyczce wersji jdra i lde. No i zmieniem `Sunsite' na
  `Metalab'.

  To wydanie jest przewidywane jako ostatnie przed wersj 2.0, ktra, mam
  nadziej, bdzie penym Howto. Pracuj nad istotnymi zmianami, ktre
  spowoduj zwikszenie gwnego numeru wersji.


  11..22..  IInnnnee llookkaalliizzaaccjjee tteeggoo ddookkuummeennttuu

  Najnowsza publiczna wersja tego dokumentu powinna by zawsze dostpna na
  Linux Documentation Project site <http://metalab.unc.edu/LDP/> (i
  kopiach, w Polsce - Sunsite
  <http://sunsite.icm.edu.pl/pub/Linux/sunsite/docs/LDP/> ).

  Najbardziej aktualna wersja jest rwnie przechowywana na mojej stronie
  domowej <http://pobox.com/~aaronc/> w kilku formatach:


  +o  rdo SGML <http://pobox.com/~aaronc/tech/e2-undel/howto.sgml>.  To
     jest format rdowy, tak jak to napisaem uywajc pakietu SGML Tools.

  +o  HTML <http://pobox.com/~aaronc/tech/e2-undel/html/>.  To jest HTML,
     automatycznie wygenerowany ze rda SGML.

  +o  czysty tekst <http://pobox.com/~aaronc/tech/e2-undel/howto.txt>.
     To jest czysty tekst, ktry rwnie zosta automatycznie wygenerowany
     ze rda SGML.



  22..  JJaakk nniiee sskkaassoowwaa pplliikkww

  Trzeba pamita, e Linux rni si od MS-DOS jeli chodzi o kasowanie plikw.
  W MS-DOS (jak i w Windows 95), dosy atwo jest odzyska skasowane pliki
  - `system operacyjny' (uywam tego terminu dosy swobodnie) dostarcza
  nawet narzdzi, ktre automatyzuj ten proces.  W Linux-ie jest inaczej.

  Regua numer jeden (podstawowa wskazwka) brzmi:


       RRBB KKOOPPIIEE ZZAAPPAASSOOWWEE


  bez wzgldu na wszystko. Pomyl o wszystkich swoich danych. By moe, jak
  ja, trzymasz kilkuletni zbir listw, kontaktw, programw, dokumentw na
  swoim komputerze. Pomyl co by si stao z Twoim yciem, gdyby Twj dysk
  uleg katastrofalnemu uszkodzeniu, lub gdyby -- o wielkie nieba ! --
  zoliwy craker wyczyci Twj dysk. To nie jest niemoliwe; korespondowaem
  z wieloma ludmi w takiej sytuacji. Myl, e teraz wszyscy rozsdnie mylcy
  uytkownicy Linux-a wyjd, kupi urzdzenie do robienia kopii zapasowych,
  opracuj kalendarz archiwizacji i _b_d _s_i _j_e_g_o _t_r_z_y_m_a. Ja uywam wolnego
  dysku twardego w innym komputerze i okresowo kopiuj tam przez sie
  ethernet mj katalog domowy. Wicej informacji o planowaniu kalendarza
  archiwizacji znajdziesz u Frischa (1995) (patrz rozdzia ``Bibliografia
  i Wyrazy Uznania'').

  Co wtedy, gdy nie ma kopii zapasowej? (lub nawet przy istnieniu kopii
  zapasowej: adne rodki bezpieczestwa nie s zym rozwizaniem w miejscu
  gdzie przechowywane s wane dane).

  Sprbuj ustawi prawa dostpu do wanych plikw na 440 (lub mniej):
  odebranie sobie samemu praw zapisu oznacza, e rm bdzie wymaga
  potwierdzenia przed skasowaniem. (Zauwayem, e jeli rekursywnie kasuj
  katalog rm -r, proba potwierdzenia pojawi si przy pierwszym i drugim
  pliku, potem program zachowuje si jak rm -rf).

  Niez sztuczk dla wybranych plikw jest utworzenie w ukrytym katalogu
  twardych dowiza do nich. Kiedy usyszaem histori o administatorze, ktry
  przez pomyk skasowa /etc/passwd (nieomal w ten sposb niszczc system).
  Jednym z rozwiza takiego kopotu jest zrobienie czego nastpujcego (jako
  root):



       # mkdir /.backup
       # ln /etc/passwd /.backup




  Teraz skasowanie pliku wymaga wikszego wysiku: gdy napiszesz tylko



       # rm /etc/passwd




  wtedy



       # ln /.backup/passwd /etc




  odtworzy Twj plik. Oczywicie, to rozwizanie nie pomoe jeli nadpiszesz
  plik, wic nie zapomninaj o kopii zapasowej.

  W systemie plikw ext2 jest moliwe uycie atrybutw ext2, aby ochrania
  pliki. Atrybuty te mog by zmieniane za pomoc komendy chattr.  Istnieje
  atrybut `append-only`: plik z tym atrybutem moe by tylko powikszany,
  nie moe by skasowany i istniejca zawarto nie moe by nadpisana. Jeli
  atrybut ten ma katalog, kady plik czy katalog w nim lecy moe by
  normalnie modyfikowany, ale aden z plikw nie moe zosta skasowany.
  Atrybut `append-only' ustawia si poleceniem



       $ chattr +a FILE...



  Istnieje rwnie atrybut `immutable', ktry moe by zapalany lub gaszony
  tylko przez administratora. Pliku lub katalogu z tym atrybutem nie
  mona zmienieni, skasowa, zmieni jego nazwy, czy utworzy do niego
  twardego dowizania. Mona go ustawi w nastpujcy sposb:



       # chattr +i FILE...




  Ext2fs dostarcza rwnie atrybutu `undeletable' (+u in chattr).  Zaoenie
  byo takie, e plik z tym atrybutem po skasowaniu zostaje przeniesiony w
  bezpieczne miejsce `safe location', aby rzeczywiste skasowanie przesun
  w czasie. Niestety funkcja ta nie jest jeszcze zaimplementowana w
  jdrze. Mylaem, e bdzie wiksze zainteresowanie ni i stanie si to
  szybko, ale nie jest ona dostpna (wedug mojej wiedzy) w adnej
  aktualnej wersji jdra.

  Niektrzy radz, aby zrobi alias lub funkcj w powoce rm, ktra
  wykonywaaby rm -i (bdziesz musia potwierdzi skasowanie _k_a_d_e_g_o pliku).
  Dystrubucja  Red Hat <http://www.redhat.com/> robi to domylnie dla
  wszystkich uytkownikw, w tym i dla root-a.  Ja osobicie nie lubi
  oprogramowania, ktre nie moe dziaa bez mojej pomocy, dlatego nie uywam
  tego sposobu. Wczeniej, czy pniej moe pojawi si kolejny problem: kiedy
  bdziesz pracowa w trybie singe-user, lub bdziesz uywa innej powoki lub
  nawet innej maszyny, gdzie Twoja funkcja rm nie istnieje. Jeli bdziesz
  spodziewa si, e kade skasowanie wymaga potwierdzenia, dosy atwo jest
  nie przewidzie tego, e kazae skasowa zbyt wiele plikw. Rwnie skrypty i
  programy, ktre podmieniaj rm mog by bardzo niebezpieczne.

  Troch lepszym rozwizaniem jest uycie pakietu, ktry umoliwia
  `odtwarzalne' kasowanie poprzez specjaln komend zastpujca rm.  Szczegy
  znajdziesz u Peeka (1993) (patrz rozdzia ``Bibliografia i Wyrazy
  Uznania''). Jednak w ten sposb przyzwyczajamy uytkownika do pewniej
  nonszalancji przy kasowaniu plikw. Nie jest to najlepsze, bowiem
  system typu Unix wymaga jednak uwanego dziaania.



  33..  JJaakkiieeggoo wwssppcczzyynnnniikkaa ooddzzyysskkaanniiaa sskkaassoowwaannyycchh pplliikkww mmoogg ssii ssppooddzziieewwaa
  ??

  To zaley. Problem wynika z tego, e w systemie operacyjnym wysokiej
  jakoci, wielozadaniowym, wielouytkownikowym, takim jak Linux, nie
  moesz przewidzie kiedy kto zechce zapisa co na dysk. Po chwili, w
  ktrej kazae systemowi skasowa jaki plik, bloki przez niego zajte mog
  zosta uyte, gdy system bdzie chcia zapisa co nowego. (Jest to jeden
  przykad oglnej zasady systemw typu Unix: jdro i zwizane z nim programy
  zakadaj, e uytkownicy nie s idiotami). Oglnie rzecz biorc, im bardziej
  obciona jest Twoja maszyna, tym mniej prawdopodobne jest odzyskanie
  plikw.

  Znaczenie moe mie rwnie fragmentacja dysku. Jeli partycja, na ktrej by
  skasowany plik jest bardzo pofragmentowana, masz mae szanse na
  odczytanie caej jego treci.

  Jeli Twj komputer, tak jak mj, realnie jest maszyn jednouytkownikow i
  nie robie niczego co intensywnie korzystao z dysku w tragicznej chwili
  skasowania pliku, moesz si spodziewa wspczynnika odzysku zblionego do
  tego wymienionego niej. Ja odzyskaem prawie 94% plikw (byy to pliki
  binarne) w stanie nieuszkodzonym. Jeeli otrzymasz 80% lub wicej, myl,
  e bdziesz z siebie zadowolony.


  44..  JJaakk ooddzzyysskkaa sskkaassoowwaannee pplliikkii ??

  Operacja ta polega gwnie na znalezieniu danych na urzdzeniu partycji i
  uczynieniu ich ponownie widocznymi dla systemu operacyjnego. S dwa
  sposoby, eby to zrobi: pierwszy polega na takiej zmianie systemu
  plikw, eby usun znacznik `deleted' ze skasowanych iwzw z nadziej, e
  pliki nagle pojawi si na swoim miejscu. Inn metod, bezpieczniejsz, ale
  wolniejsz jest znalezienie pooenia interesujcych danych na partycji i
  zapisaniu ich jako nowy plik w innym systemie plikw.

  Przed odtwarzeniem danych musisz zrobi kilka rzeczy; patrz rozdziay
  ``Odmontowanie systemu plikw'', ``Przygotowanie do bezporednich zmian
  w iwzach'' i ``Przygotowanie do zapisania danych w innym miejscu''.
  Informacj jak odzyskiwa pliki znajdziesz w rozdziaach ``Szukanie
  skasowanych iwzw'', ``Uzyskiwanie szczegowych informacji o iwzach'',
  ``Odzyskiwanie blokw danych'' i ``Bezporednie modyfikacje iwzw''.



  55..  OOddmmoonnttoowwaanniiee ssyysstteemmuu pplliikkww

  Niezalenie od metody jak wybrae, pierwszym krokiem jest odmontowanie
  systemu plikw zawierajcego skasowane pliki. Zdecydowanie nie polecam
  adnych dziaa na zamontowanym systemie plikw. Krok ten powinien by
  wykonany najszybciej jak to bdzie moliwe od momentu, gdy zauwaye, e
  pomykowo skasowae pliki. Im szybciej odmontujesz system plikw, tym
  wiksza bdzie szansa, e Twoje dane nie zostan nadpisane (zamazane).

  Najprostsz metod, aby to zrobi jest: zakadajc, e skasowane pliki byy
  systemie plikw /usr,



       # umount /usr




  Jeli chcesz moesz rwnie utrzyma widoczno katalogu /usr.  Zamontuj go w
  trybie tylko-do-odczytu:



       # mount -o ro,remount /usr




  W przypadku, gdy skasowane pliki byy na gwnej partycji musisz doda
  opcj -n, aby zabroni programowi mount na prby zapisu do /etc/mtab:



       # mount -n -o ro,remount /




  Poza tym wszystkim, moliwe jest rwnie, e jaki inny proces uywa
  interesujcego nas systemu plikw (spowoduje to bd typu `Resource busy'
  przy prbie odmontowania). fuser jest programem, ktry wyle sygna do
  kadego procesu uywajcego wskazanego pliku lub punktu montowania.
  Sprbuj tego dla partycji /usr:



  # fuser -v -m /usr




  W ten sposb uzyskasz list przeszkadzajcych Ci procesw. Zakadajc, e
  aden z nich nie jest niezbdny, moesz napisa



       # fuser -k -v -m /usr




  aby wysa sygna SIGKILL do kadego z nich ( gwarantuje to ich zabicie),
  albo



       # fuser -k -TERM -v -m /usr




  aby przekaza kademu sygna SIGTERM (spowoduje to normalne zakoczenie
  pracy procesw).



  66..  PPrrzzyyggoottoowwaanniiee ddoo bbeezzppoorreeddnniicchh zzmmiiaann iiwwzzww

  Moja rada?  Nie uywaj tej metody.  Nie uwaam, eby dobrym pomysem bya
  zabawa na niskim poziomie w systemie plikw.  Metoda ta stwarza rwnie
  problemy jeli chcesz odtworzy pliki wiksze ni 12 blokw.  W celu
  odzyskania duych plikw, tak czy owak, bdziesz musia uy innej metody.
  (Chocia patrz rozdzia ``Czy bdzie to kiedy atwiejsze?'' w celu
  dodatkowych informacji.)

  Jeeli jednak chcesz koniecznie uy tego sposobu, lepiej skopiuj
  bezporednio obraz partycji na inn partycj, a pniej zamontuj j uywajc
  ptli zwrotnej (loopback):



       # cp /dev/hda5 /root/working
       # mount -t ext2 -o loop /root/working /mnt




  (Niektre wersje mount nie potrafi tego zrobi. Jeli Twj mount nie dziaa
  poprawnie, zalecam uycie najnowszej wersji, conajmniej 2.7. Duo
  starsze wersje maj problemy z utrzymaniem bezpieczestwa danych.)

  Uywajc ptli zwrotnej, nawet jeli cakowicie zniszczysz system plikw,
  moesz ponownie skopiowa partycj i zacz prby od nowa.



  77..  PPrrzzyyggoottoowwaanniiee ddoo zzaappiissuu ddaannyycchh ww iinnnnyymm mmiieejjssccuu

  Jeeli wybierzesz t drog dziaania, musisz znale partycj ratunkow --
  miejsce, gdzie zapiszesz nowe kopie odzyskanych plikw. Na cae szczcie,
  twj system zawiera kilka partycji: prawdopodobnie partycj gwn, /usr i
  /home. Wybierz jedn z nich i utwrz na niej nowy katalog.
  Jeli masz tylko partycj gwn i wszystko przechowujesz na niej,
  rozwizanie troszk si skomplikuje.  Moe masz partycje MS-DOS lub
  Windows, ktrej bedziesz mg uy ?  Albo masz sterownik do ramdisk-u w
  swoim jdrze, albo w module ?  W celu uycia ramdisk-u (zakadajc, e jdro
  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 sposb stworzye 2MB wolumen ramdisk-u i zamontowae do w /mnt.

  Krtkie ostrzeenie: jeeli uywasz kerneld (lub zastpujcego go kmod w
  jdrach 2.2.x i pnych 2.1.x) w celu automatycznego adowania i
  odadowywania moduw, nie odmontowuj ramdisk-u dopki nie skopiujesz
  wszystkich plikw na bardziej trway nonik.  W chwili, gdy go
  odmontujesz, kerneld zakada, e moe odadowa modu (zwykle jednak czeka
  pewien okres). Gdy to ju si stanie, pami zostanie uyta przez inne czci
  jdra i stracisz wszystkie godziny spdzone na odzyskiwaniu danych.

  Jeeli masz napd Zip, Jaz, LS-120 lub co podobnego, moe on spenia z
  powodzeniem rol partycji ratunkowej. W pozostaych przypadkach, uyj po
  prostu napdu stacji dyskietek.

  Bdziesz jeszcze potrzebowa programu, ktry potrafi czyta dane ze rodka
  partycji. Waciwie moe to zrobi dd, ale aby przeczyta dane lece od 600
  MB do 800 MB, dd musi przeczyta i zignorowa pierwsze 600 MB.  Zajmuje
  to dosy duo czasu, nawet na szybkich dyskach. Moim sposobem na obejcie
  tego problemu byo napisanie programu, ktry przeskakuje w rodek
  partycji. Nazywa si on fsgrab; pakiet ze rdem moesz znale na mojej
  stronie domowej <http://pobox.com/~aaronc/tech/fsgrab-1.2.tar.gz> lub
  na Metalab-ie <http://metalab.unc.edu/pub/Linux/utils/file/> (i
  kopiach, w Polsce - Sunsite
  <http://sunsite.icm.edu.pl/pub/Linux/sunsite/utils/file/> ). Jeli
  bdziesz chcia stosowa t metod, w dalszej czci tego mini-JTZ zakadam, e
  masz fsgrab.

  Nie potrzebujesz fsgrab-a, jeeli aden z plikw, ktre starasz si
  odzyska, nie zajmuje wicej ni 12 blokw (przewanie blok ma rozmiar
  jednego kilobajta).

  Jeeli musisz uy fsgrab-a, ale nie chce Ci si go ciga i kompilowa, jest
  te prosta droga na przetumaczenie polecenia dla fsgrab na polecenie
  dla dd. Majc


       fsgrab -c _c_o_u_n_t -s _s_k_i_p _d_e_v_i_c_e


  moesz uy komendy dd (przewanie jest to duo wolniejsze)


       dd bs=1k if=_d_e_v_i_c_e count=_c_o_u_n_t skip=_s_k_i_p


  Musz Ci ostrzec, e chocia dla mnie fsgrab dziaa doskonale, nie mog bra
  odpowiedzialnoci za jego funkcjonowanie. Pisaem go dosy szybko i
  niestarannie, po prostu, aby dziaa poprawnie. Wicej szczegw o
  gwarancji znajdziesz w rozdziale `No Warranty' w pliku COPYING
  doaczonym do pakietu (the GNU General Public Licence).

  88..  SSzzuukkaanniiee sskkaassoowwaannyycchh iiwwzzww

  Nastpnym krokiem jest odnalezienie w systemie plikw tych iwzw, ktre
  zostay ostanio uwolnione.  Do tego zadania uyjemy programu debugfs.
  Uruchom debugfs z nazw urzdzenia, na ktrym przechowywany jest system
  plikw:



       # debugfs /dev/hda5




  Jeeli chcesz bezporednio wprowadza zmiany do iwzw, dodaj opcj -w, aby
  umoliwi zapisywanie do systemu plikw:



       # debugfs -w /dev/hda5




  lsdel jest poleceniem debugfs, ktre wyszukuje skasowane iwzy. Po
  zachcie programu, napisz wic:



       debugfs:  lsdel




  Po chwili wiergotania dysku, duga lista zostanie przekierowana do
  Twojego ulubionego amacza na strony (ang. pager) (warto zmiennej
  $PAGER).  Powinienne zachowa gdzie kopi tej listy.  Jeeli uywasz less,
  moesz po prostu napisa -o i nazw pliku wyjciowego. W innym razie,
  bdziesz  musia przesa wyniki do pliku w inny sposb. Sprbuj czego
  takiego:



       debugfs:  quit
       # echo lsdel | debugfs /dev/hda5 > lsdel.out




  Teraz, tylko na podstawie czasu skasowania, rozmiaru, praw wasnoci i
  waciciela musisz okreli, ktre iwzy naleay do skasowanych plikw.  Bdzie
  to prawdopodobnie proste zadanie jeli wypadek przydarzy si 5 minut
  temu, jeli nie, przeszukaj list bardzo uwanie.

  Polecam wydrukowanie sobie listy iwzw, ktre chcesz odzyska. Uatwi Ci
  to dalsz prac.



  99..  UUzzyysskkiiwwaanniiee sszzcczzeeggoowwyycchh iinnffoorrmmaaccjjii oo iiwwzzaacchh

  debugfs dysponuje poleceniem stat, ktre wywietla szczegowe informacje
  o iwle. Wykonaj t komend dla wszystkich iwzw, ktre chcesz odzyska. Na
  przykad, jeeli interesuje Ci iwze o numerze 148003, napisz tak:


       debugfs:  stat <148003>
       Inode: 148003   Type: regular    Mode:  0644   Flags: 0x0   Version: 1
       User:   503   Group:   100   Size: 6065
       File ACL: 0    Directory ACL: 0
       Links: 0   Blockcount: 12
       Fragment:  Address: 0    Number: 0    Size: 0
       ctime: 0x31a9a574 -- Mon May 27 13:52:04 1996
       atime: 0x31a21dd1 -- Tue May 21 20:47:29 1996
       mtime: 0x313bf4d7 -- Tue Mar  5 08:01:27 1996
       dtime: 0x31a9a574 -- Mon May 27 13:52:04 1996
       BLOCKS:
       594810 594811 594814 594815 594816 594817
       TOTAL: 6




  Gdy chcesz odzyska wiele plikw, dobrze bdzie jak zautomatyzujesz ten
  proces. Przy zaoeniu, e Twoja lsdel lista interesujcych iwzw znajduje
  si w pliku lsdel.out, napisz co takiego:



       # cut -c1-6 lsdel.out | grep "[0-9]" | tr -d " " > inodes




  Nowy plik inodes zawiera tylko numery iwzwm, ktre chcesz odzyska, po
  jednym w jednej linii. Zapisalimy to, bowiem pniej bardzo nam si
  przyda. Potem piszesz po prostu:



       # sed 's/^.*$/stat <\0>/' inodes | debugfs /dev/hda5 > stats




  i plik stats zawiera wyniki wszystkich polece stat.



  1100..  OOddzzyysskkiiwwaanniiee bbllookkww ddaannyycchh

  Ta cz jest albo bardzo atwa, albo trudna, w zalenoci od tego, czy plik
  ktry chcesz odzyska zajmowa wicej ni 12 blokw.


  1100..11..  MMaaee pplliikkii

  Jeeli plik ma mniej ni 12 blokw, numery wszystkich blokw, ktre on
  zajmuje zapisane s w jednym iwle. Moesz odczyta je po wykonaniu
  polecenie stat dla tego iwza. Ponadto, w debugfs jest polecenie, ktre
  automatycznie odzyskuje taki plik. Wemy ten sam przykad co poprzednio:











  debugfs:  stat <148003>
  Inode: 148003   Type: regular    Mode:  0644   Flags: 0x0   Version: 1
  User:   503   Group:   100   Size: 6065
  File ACL: 0    Directory ACL: 0
  Links: 0   Blockcount: 12
  Fragment:  Address: 0    Number: 0    Size: 0
  ctime: 0x31a9a574 -- Mon May 27 13:52:04 1996
  atime: 0x31a21dd1 -- Tue May 21 20:47:29 1996
  mtime: 0x313bf4d7 -- Tue Mar  5 08:01:27 1996
  dtime: 0x31a9a574 -- Mon May 27 13:52:04 1996
  BLOCKS:
  594810 594811 594814 594815 594816 594817
  TOTAL: 6




  Plik ten zajmuje sze blokw. Poniewa jest to mniej ni 12, moemy uy
  debugfs, aby zapisa plik w nowym miejscu, na przykad
  /mnt/recovered.000:



       debugfs:  dump <148003> /mnt/recovered.000




  Oczywicie mona to zrobi rwnie, posugujc si fsgrab. Poka jak wyglda
  takie przykadowe wywoanie:



       # fsgrab -c 2 -s 594810 /dev/hda5 > /mnt/recovered.000
       # fsgrab -c 4 -s 594814 /dev/hda5 >> /mnt/recovered.000




  Zarwno przy korzystaniu z debugfs jak i fsgrab, na kocu pliku
  /mnt/recovered.000 pozostan mieci. Nie ma to wikszego znaczenia.  atwo
  mona si ich pozby. Najprostsz metod jest odczytanie pola Size w iwle i
  wpisanie tej wartoci za opcj bs komendy dd:



       # dd count=1 if=/mnt/recovered.000 of=/mnt/resized.000 bs=6065




  Moe si okaza, e jeden lub wicej z blokw zostao straconych, bowiem
  zostay ju nadpisane. Jeeli tak bdzie, po prostu nie miae szczcia:
  bloki te odeszy ju na zawsze. (Wybra sobie, e odmontowae je wczeniej!)


  1100..22..  WWiikksszzee pplliikkii

  Problem pojawia si, gdy plik zajmuje wicej ni 12 blokw danych.
  Przypadek ten wymaga pewnej wiedzy o tym jak zbudowany jest system
  plikw UNIX-a.  Dane pliku przechowywane s w jednostkach zwanych
  `blokami'.  Bloki te s numerowane sekwencyjnie.  Kady plik ma rwnie
  `iwze', w ktrym przechowywane s informacje typu: waciciel, prawa
  dostpu i typ. Podobnie jak bloki, iwzy s numerowane sekwencyjnie,
  chocia maj one rne numeracje.  Pozycja w katalogu odpowiadajca plikowi
  skada si z jego nazwy i numeru iwza.
  Jednak na postawie tych informacji jdro nie jest jeszcze w stanie
  odnale na partycji danych odpowiadajcych jednej z pozycji w katalogu.
  eby to umoliwi, iwze przechowuje pooenia blokw danych zajmowanych
  przez plik.  Zorganizowane jest to w nastpujcy sposb:


  +o  Numery pierwszych 12 blokw danych przechowywane s bezporednio w
     iwle; czasami nazywa si je _b_l_o_k_a_m_i _b_e_z_p_o_r_e_d_n_i_m_i.

  +o  Iwze zawiera numer _p_o_r_e_d_n_i_e_g_o _b_l_o_k_u. Blok poredni zawiera numery
     nastpnych 256 blokw z danymi.

  +o  Iwze zawiera numer _p_o_d_w_j_n_i_e _p_o_r_e_d_n_i_e_g_o _b_l_o_k_u. Blok podwjnie poredni
     zawiera numery dodatkowych 256 blokw porednich.

  +o  Iwze zawiera numer _p_o_t_r_j_n_i_e _p_o_r_e_d_n_i_e_g_o _b_l_o_k_u. Blok potrjnie poredni
     zawiera numery dodatkowych 256 blokw podwjnie porednich.

  Przeczytaj to jeszcze raz: wiem, e to jest skomplikowane, ale bardzo
  wane.

  Niestety wszystkie implementacje jdra, a do wersji 2.0.36 podczas
  kasowania pliku zeruj bloki porednie (podwjnie porednie, itd.). Jeli
  Twj plik jest wikszy ni 12 blokw, nie masz gawarancji, e bdzie moliwe
  odnalezienie numerw wszystkich jego blokw, nie mwic ju nic o ich
  zawartoci.

  Jedyn metod jak udao mi si znale, jest oparcie si na zaoeniu, e plik
  nie by pofragmentowany. Jeeli by, masz powany problem. Zakadajc, e
  plik nie by pofragmentowany, istnieje kilka sekcji blokw danych, w
  zalenoci od tego ile blokw danych zajmuje plik:


     00 ddoo 1122
        Numery blokw przechowywane s w iwle, jak to byo opisane
        wczeniej.


     1133 ttoo 226688
        Po blokach bezporednich, odlicz jeden na blok poredni, dalej
        znajduje si 256 blokw danych.


     226699 ddoo 6655880044
        Tak jak poprzednio jest: 12 bezporednich blokw, (nieprzydatny)
        blok poredni i 256 blokw. Po tym wszystkim nastpuje
        (nieprzydatny) podwjnie poredni blok oraz 256 powtrze jednego
        (nieprzydatnego) bloku poredniego i 256 blokw danych.


     6655880055 lluubb wwiicceejj
        Pooenie piewszych 65804 blokw jak wyej. Potem potrjnie poredni
        blok i 256 powtrze `sekwecji podwjnie poredniej'.  Kada podwjnie
        porednia sekwencja zawiera (nieprzydatny) podwjnie poredni blok,
        po ktrym nastpuje 256 powtrze jednego (nieprzydatnego) bloku
        poredniego i 256 blokw danych.

  Oczywicie, nawet jeli numery blokw, ktre przyjlimy, s poprawne, nie ma
  adnych gwarancji, e dane s w nich s nienaruszone.  Dodatkowo, im duszy
  by plik, tym mniejsze szanse, e system operacyjny zapisa go bez adnej
  fragmentacji (za wyjtkiem wyjtkowych sytuacji).

  Zaoyem, e rozmiar Twoich blokw wynosi 1024 bajty, tyle ile warto
  standardowa. Jeli Twj blok jest wikszy, niektre z liczb podanych wyej
  zmieni si.  Sprecyzujmy: dopki numer kadego bloku ma dugo 4 bajtw,
  rozmiarbloku/4 jest liczb numerw blokw, ktre mog by przechowane w
  kadym bloku porednim. Kade wystpienie liczby 256 we wczeniejszym
  opisie, zastp na rozmiarbloku/4. Zmianie ulegn rwnie ograniczenia na
  ilo wymaganych blokw.

  Popatrz na przykadowe odzyskiwanie duego pliku.



       debugfs:  stat <1387>
       Inode: 148004   Type: regular    Mode:  0644   Flags: 0x0   Version: 1
       User:   503   Group:   100   Size: 1851347
       File ACL: 0    Directory ACL: 0
       Links: 0   Blockcount: 3616
       Fragment:  Address: 0    Number: 0    Size: 0
       ctime: 0x31a9a574 -- Mon May 27 13:52:04 1996
       atime: 0x31a21dd1 -- Tue May 21 20:47:29 1996
       mtime: 0x313bf4d7 -- Tue Mar  5 08:01:27 1996
       dtime: 0x31a9a574 -- Mon May 27 13:52:04 1996
       BLOCKS:
       8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8583
       TOTAL: 14




  Wydaje si, e mamy pewne szanse, e plik nie jest pofragmentowany.
  Pewne jest tylko, e pierwsze 12 blokw, ktrych numery s zawarte w iwle,
  jest `po kolei'. Moemy wic odtworzy te bloki:



       # fsgrab -c 12 -s 8314 /dev/hda5 > /mnt/recovered.001




  Nastpny blok, wymieniony w iwle, 8326, jest blokiem porednim, ktry
  ignorujemy. Mamy jednak nadziej, e nastepne 256 blokw jest naszymi
  blokami danych (numery 8327 do 8582).



       # fsgrab -c 256 -s 8327 /dev/hda5 >> /mnt/recovered.001




  Ostatnim blokiem wymienionym w iwle jest 8583. Nadal zakadamy, e
  istnieje cigo w blokach. Jest to jednak uzasadnione bowiem: ostatnim
  blokiem danych by blok o numerze 8582 (8327 + 255). Blok 8583 jest
  podwjnie poredni i moe by zignorowany. Teraz moe nastpi do 256 powtrze
  bloku poredniego (ktry mona pomin) i 256 blokw danych.  Troch
  arytmetyki i ju mona pisa kolejne polecenie. Zauwa, e pominlimy
  podwjnie poredni blok 8583 oraz poredni blok 8584 i rozpoczlimy czyta
  dane od bloku numer 8585.



       # fsgrab -c 256 -s 8585 /dev/hda5 >> /mnt/recovered.001
       # fsgrab -c 256 -s 8842 /dev/hda5 >> /mnt/recovered.001
       # fsgrab -c 256 -s 9099 /dev/hda5 >> /mnt/recovered.001
       # fsgrab -c 256 -s 9356 /dev/hda5 >> /mnt/recovered.001
       # fsgrab -c 256 -s 9613 /dev/hda5 >> /mnt/recovered.001
       # fsgrab -c 256 -s 9870 /dev/hda5 >> /mnt/recovered.001


  Dodajmy to wszystko, zapisalimy do tej pory 12 + (7 * 256) blokw, co
  daje 1804. Wyniki polecenia `stat' dla iwza day nam `blockcount'
  (liczba blokw) rwne 3616. Niestety s to bloki o rozmiarze 512 bajtw
  (zaszo z UNIX-a), na prawd potrzebujemy wic 3616/2 = 1808 blokw o
  rozmiarze 1024 bajty.  Oznacza to, e musimy jeszcze odnale cztery
  bloki.  Ostatni przeczytany blok danych mia numer 10125.  Tak jak to
  robilimy do tej pory, pomijamy blok poredni (numer 10126) i moemy ju
  zapisa ostatnie cztery bloki.



       # fsgrab -c 4 -s 10127 /dev/hda5 >> /mnt/recovered.001




  Przy pewnym szczciu udao nam si odzyska cay plik.



  1111..  BBeezzppoorreeddnniiee mmooddyyffiikkaaccjjee iiwwzzww

  Metoda ta jest duo prostsza. Jednak, tak jak wspomniaem wczeniej, nie
  moe by jeszcze stosowana do plikw wikszych ni 12 blokw.

  W kadym iwle, ktry chcesz odzyska musisz ustawi licznik podcze
  (linkcount) na jeden i czas skasowania (deletion time) na zero. Robi
  si to za pomoc polecenia mi (modify inode) w debugfs.  Przykadowe
  wywoanie, modyfikacja iwza 148003 (tego co wczeniej):



       debugfs:  mi <148003>
                                 Mode    [0100644]
                              User ID    [503]
                             Group ID    [100]
                                 Size    [6065]
                        Creation time    [833201524]
                    Modification time    [832708049]
                          Access time    [826012887]
                        Deletion time    [833201524] 0
                           Link count    [0] 1
                          Block count    [12]
                           File flags    [0x0]
                            Reserved1    [0]
                             File acl    [0]
                        Directory acl    [0]
                     Fragment address    [0]
                      Fragment number    [0]
                        Fragment size    [0]
                      Direct Block #0    [594810]
                      Direct Block #1    [594811]
                      Direct Block #2    [594814]
                      Direct Block #3    [594815]
                      Direct Block #4    [594816]
                      Direct Block #5    [594817]
                      Direct Block #6    [0]
                      Direct Block #7    [0]
                      Direct Block #8    [0]
                      Direct Block #9    [0]
                     Direct Block #10    [0]
                     Direct Block #11    [0]
                       Indirect Block    [0]
                Double Indirect Block    [0]
                Triple Indirect Block    [0]

  Ustawiem czas skasowania na 0, licznik podcze na 1 i nacisnem Enter
  dla wszystkich innych pl.  Jest to pewn niedogodnoci, jeeli masz wiele
  plikw do odzyskania.  Myl jednak, e mona z tym y.  Jeli oczekujesz
  wygody, lepiej zacznij uywa graficznego `systemu operacyjnego' ze
  licznym `Koszem na mieci'.

  Przy okazji: polecenie mi pokazuje `Czas stworzenia' (Creation time) w
  iwle. To kamstwo ! (lub, jak kto woli, pomyka.) Prawda jest taka, e
  nie mona w systemie plikw UNIX-a stwierdzi kiedy dany plik zosta
  utworzony. Pole st_ctime w struct stat zawiera `czas zmiany iwza',
  czyli czas ostaniej zmiany, ktrego z parametrw iwza.  To tyle z
  dzisiejszej lekcji.

  Nowsze wersje debugfs ni moja, prawdopodobnie nie wywietalaj niektrych
  pl w iwle (szczeglnie, Reserved1 i Fragment).

  Po zmianie w iwzach, moesz wyj z debugfs i napisa:



       # e2fsck -f /dev/hda5




  Pomys polega na tym, e kady ze skasowanych plikw zosta odkasowany, ale
  nie pojawi si w adnym katalogu.  Program e2fsck umie to wykry i doda
  pozycj dla kadego z nich w katalogu /lost+found systemu plikw. (Jeeli
  partycja bya zamontowana w /usr, pliki pojawi si w /usr/lost+found,
  gdy j zamontujesz.) Prac, ktr musisz jeszcze zrobi, to nadanie plikom
  nazw i umieszczenie ich we waciwym miejscu drzewa plikw.

  Po uruchomieniu e2fsck, wywietli Ci on troch informacji, ale zada
  rwnie pytania, ktre zniszczenia naprawia. Odpowiadaj `yes' (tak) na
  wszystko co dotyczy `summary information' lub iwzw, ktre zmieniae.
  Reszt pozostawiam do Twojej decyzji, pamitaj, e nie jest najlepsz
  metod odpowiadanie `tak' na wszystkie pytania.  Po skoczeniu pracy
  przez e2fsck, moesz ponownie zamontowa system plikw.

  Istnieje alternatywne rozwizanie do pozwolenia, aby e2fsck utworzy
  pliki w /lost+found. Moesz uy debugfs i stworzy w systemie plikw
  doczenie (link) do iwza.  Suy do tego polecenie link w debugfs, po
  zmianach w samym iwle:



       debugfs:  link <148003> foo.txt




  W ten sposb powstanie w biecym katalogu plik o nazwie foo.txt; foo.txt
  bdzie Twoim odzyskanym plikiem.  Nadal musisz jednak uruchomi e2fsck,
  aby uaktualni informacje oglne, liczniki blokw itp. itd.



  1122..  CCzzyy bbddzziiee ttoo kkiieeddyy aattwwiieejjsszzee??

  Tak.  Waciwie, mam nadziej, e tak.  Chocia, gdy to pisz, aktualna,
  stabilna wersja jdra (seria 2.0.x) zeruje bloki porednie. Wersje serii
  rozwojowej 2.1.x i stabilnej 2.2.x nie maj tej wady. Dzisiaj, 2 lutego
  1999 mino dopiero kilka dni od wydania jdra 2.2.1; prawdopodobnie
  pojawi si ono w dystrybucjach za jeden, dwa miesice.


  Kiedy wersje jdra rozwi problem zerowania blokw porednich, wiele moich
  rcznych technik modyfikacji iwzw nie bdzie ju potrzebnych.  W tym
  samym czasie stanie si moliwe uycie polecenia dump w debugfs dla duych
  plikw i innych programw narzdziowych do odzyskiwania plikw.


  1133..  CCzzyy ss jjaakkiiee pprrooggrraammyy aauuttoommaattyyzzuujjccee tteenn pprroocceess??

  Pewnie, e s. Niestety cierpi one na te same problemy co rczna technika
  zmian w iwzach: bloki porednie s nieodzyskiwalne. Warto im si
  przyjrze, bowiem wydaje si, e ograniczenie to wkrtce zniknie.

  Napisaem program e2recover, ktry jest waciwie tylko Perl-ow otoczk
  dookoa fsgrab. Stara si on poradzi sobie z wyzerowanymi blokami
  porednimi i wydaje sie, e dziaa cakiem niele dla duych plikw, ktre nie
  ulegy fragmentacji.  Ustawia poprawne prawa dostpu (i waciciela, gdy
  to jest moliwe). Upewnia si rwnie, e odzyskiwany plik ma poprawny
  rozmiar.

  Program e2recover by planowany jako cz powanych zmian w tym Howto;
  oznacza to niestety, e wicej uytecznej dokumentacji do e2recover bdzie
  zamieszczone dopiero w nowej wersji tego dokumentu.  Jednak i teraz
  moe on si komu przyda; mona go cign z mojej strony domowej
  <http://pobox.com/~aaronc/tech/e2-undel/>, i wkrtce z Metalab-a (jest
  ju w Polsce - Sunsite
  <http://sunsite.icm.edu.pl/pub/Linux/sunsite/utils/file/>).

  Scott D. Heavner jest autorem programu lde, the Linux Disk Editor.
  Moe on by uywany zarwno jako binarny edytor dysku i jako odpowiednik
  debugfs dla systemw plikw ext2 i minix, a nawet dla systemu plikw xia
  (chocia wsparcie dla xia przestao by dostpne w jdrach 2.1.x i 2.2.x).
  Zawarto w nim kilka pomysw wspomagajcych odzyskiwanie skasowanych
  plikw: ledzenie listy blokw tworzcych plik i wyszukiwanie danych na
  dysku. Zawiera on take cakiem uyteczn dokumentacj o podstawach systemu
  plikw oraz jak go uywa do odzyskiwania plikw skasowanych. Wersja 2.4
  lde jest dostpna na Metalab-ie
  <http://metalab.unc.edu/pub/Linux/system/filesystems/lde-2.4.tar.gz>
  (i kopiach, w Polsce - Sunsite
  <http://sunsite.icm.edu.pl/pub/Linux/sunsite/system/filesystems/lde-2.4.tar.gz>),
  lub na stronie domowej autora
  <http://www.geocities.com/CapeCanaveral/Lab/7731/lde.html>.

  Inne moliwoci oferowane s przez GNU Midnight Commander, mc. Jest to
  penoekranowe narzdzie do zarzdzania plikami, oparte na znanym w
  rodowisku MS-DOS programie o nazwie `NC'.  mc obsuguje mysz zarwno na
  konsoli, jak i w oknie xterm-a, dostarcza mechanizm wirtualnych
  systemw plikw, co umoliwia triki takie jak cd do archiwum tar.
  Odzyskiwanie plikw obsugiwane jest przez jeden z takich wirtualnych
  systemw plikw.  Wszystko to brzmi bardzo zachcajco, ale musz przyzna,
  e nie uywam tego programu -- wol staromodne polecenia powoki.

  Aby uywa moliwoci odzyskiwania skasowanych plikw, musisz skonfigurowa
  program z opcj --with-ext2undel; bdziesz rwnie potrzebowa bibliotek w
  wersji rozwojowej i niektrych plikw zawartych w pakiecie e2fsprogs. W
  ten sposb zbudowana jest wersja dostarczana w Debian GNU/Linux
  <http://www.debian.org/>; tak samo moe by w innych dystrybucjach.
  Teraz moesz po prostu kaza mu cd undel:/dev/hda5, i otrzymasz `zawarto
  katalogu' ze skasowanymi plikami. Jak wiele innych i ten program
  bardzo le radzi sobie z zerowaniem blokw porednich -- przewanie
  odtwarza tylko pierwsze 12k wikszych plikw.

  Aktualn wersj mona cign z serwera ftp the Midnight Commander
  <ftp://ftp.nuclecu.unam.mx/Midnight/devel/>.



  1144..  KKoollooffoonn

  Mam zamiar regularnie uaktualnia ten dokument tak dugo jak bd mia
  wystarczajco duo czasu i co ciekawego do powiedzenia. Oznacza to, e
  bardzo mi zaley na komentarzach od czytelnikw.  Czy moje pisanie moe
  by bardziej zrozumiae? Czy mylicie o czym, co uczynioby problem
  prostszym?  Jest jaki program, ktry robi to wszystko automatycznie?
  Jeeli masz co do powiedzenia o tym dokumencie, albo o fsgrab, albo o
  e2recover, napisz do mnie aaronc@pobox.com.



  1155..  WWyyrraazzyy uuzznnaanniiaa ii bbiibblliiooggrraaffiiaa


       `Jeeli widz dalej od innych, to dlatego, e stoj na ramionach
       olbrzymw.' (Isaac Newton)


  To mini-Howto wywodzi si z listu zamieszczonego w grupie
  comp.os.linux.misc przez Robina Glovera swrglovr@met.rdg.ac.uk.
  Chciabym podziekowa Robinowi za wspaniaomylne pozwolenie na
  przetworzenie jego pomysw w to mini-Howto.

  Korzystajc z okazji, chciabym jeszcze raz podzikowa wszystkim, ktrzy
  napisali do mnie o tym Howto.  Otrzymywanie wyrazw wdziecznoci czyni
  prac wart wysiku.

  Niektre odnoniki bibliograficzne:


  +o  FFrriisscchh, leen (1995), _E_s_s_e_n_t_i_a_l _S_y_s_t_e_m _A_d_m_i_n_i_s_t_r_a_t_i_o_n, second e
     O'Reilly and Associates, Inc., ISBN: 1-56592-127-5.

  +o  GGaarrffiinnkkeell, Simson, Daniel WWeeiissee and Steven SSttrraassssmmaannnn (1994), _T_h_e
     _U_n_i_x_-_H_a_t_e_r_s _H_a_n_d_b_o_o_k, IDG Books, ISBN: 1-56884-203-1.  Wikszo tej
     ksiki wypeniaj jednynie modociane jki ludzi, ktrzy myl e _i_c_h system
     operacyjny by o wiele lepszy od Unix-a; a reszta ksiki nie dotyczy
     Ci, jeeli uywasz dobrego otoczenia uytkownika jakim jest GNU.  S
     tam jednak pewne ciekawe rzeczy; na przykad, dyskusja o tym jak
     atwo jest skasowa plik pod Unix-em warta jest przeczytania.

  +o  GGlloovveerr, Robin (31 Jan 1996), _H_O_W_-_T_O _: _u_n_d_e_l_e_t_e _l_i_n_u_x _f_i_l_e_s
     _(_e_x_t_2_f_s_/_d_e_b_u_g_f_s_), comp.os.linux.misc Usenet posting.

  +o  PPeeeekk, Jerry, Tim OO''RReeiillllyy, Mike LLoouukkiiddeess et al (1993), _U_N_I_X _P_o_w_e_r
     _T_o_o_l_s, O'Reilly and Associates, Inc./Random House, Inc., ISBN:
     0-679-79073-X.  Second edition, 1998.



  1166..  FFoorrmmaallnnooccii

  Wszystkie znaki towarowe s wasnoci ich prawowitych wacicieli.
  Konkretnie:


  +o  _M_S_-_D_O_S i _W_i_n_d_o_w_s s znakami towarowymi Microsoftu
     <http://www.microsoft.com/>.

  +o  _U_N_I_X jest znakiem towarowym the Open Group
     <http://www.opengroup.org/>.

  +o  _L_i_n_u_x jest znakiem towarowym zarejestrowanym w USA i kilku innych
     pastwach dla Linusa Torvalds.

  Prawa autorskie do tego dokumentu 1997, 1999 posiada Aaron Crane
  aaronc@pobox.com.  Moe on by darmowo rozpowszechniany w caoci, cznie z
  t not autorsk.  Nie moe by zmieniany bez zgody autora lub koordynatora
  Linux Documentation Project HOWTO.  Nie dotyczy to tylko kopiowania
  jego czci w celu przegldania lub cytowania; w takim przypadku, czci te
  musz by poprawnymi cytatami i nie musz zawiera noty o prawach
  autorskich.

  Autor oczekuje, ale nie wymaga, e ten kto bdzie chcia sprzedawa kopie
  tego dokumentu, niezalenie od tego, czy na noniku elektronicznym, czy
  papierowym, poinformuje jego lub koordynatora projektu Linux HOWTO o
  swoich zamiarach.

  Koordynatorem projektu Linux HOWTO jest aktulanie Tim Bynum linux-
  howto@sunsite.unc.edu.



  1177..  OOdd ttuummaacczzaa

  Staraem si, aby tumaczenie byo najwierniejsze z moliwych. Dlatego nie
  ma adnych zmian w stosunku do orginau, za wyjtkiem odnonikw do
  polskiej kopii serwera Metalab na Sunsite.icm.edu.pl.

  Czekam na komentarze pod adresem: Bartosz Sawicki
  sawickib@ee.pw.edu.pl.








































