  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 sys
  temie plikw Second Extended File System. Moe uda Ci si jednak opub
  likowa Twj genialny program.  Dokument ten zosta napisany w stan
  dardzie 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tp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):


    v1.0, 18 stycznia 1997

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

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

    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ycczznniiee ppoopprraawwkkii.. GGwwnniiee uuwwzzggllddnniie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kww,, ttoo oonnee ss wwaanniiee nnaajjwwaan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aa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e
  bbeerrgg..nnoo,, kkttr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ik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aaa nnaa zzaazznnaacczzeenniiuu,, ee uuy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assoowwaanniiaa wwaannyycchh pplliikkw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ae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aoo uuaakkttuuaall
  nniioonnee.. ZZoossttaay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d
  z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rw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:


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

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

    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kw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RB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pc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kw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kw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orreeddnniicchh zzmmiiaann iiwwzzw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wzzw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goowwyycchh iinnffoorrmmaaccjjii oo iiwwzza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kw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ae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ik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:


    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.

    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.

    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.

    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ic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orreeddnniiee mmooddyyffiikkaaccjjee iiwwzzw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bd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jc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:


    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.

    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.

    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.

    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occii

  Wszystkie znaki towarowe s wasnoci ich prawowitych wacicieli.
  Konkretnie:


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

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

    _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tu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.


























































