  Ext2fs Undeletion mini-HOWTO  `Ext2Fsł̃t@C̕@`
  **************************************************************

  by Aaron Crane <aaronc@pobox.com>
  v1.0, Sat Jan 18 1997
  {
  gp <kikkawa@m.u-tokyo.ac.jp>

  
  ========

  0.  ͂߂
  1.  ǂt@Cɍςނ
  2.  ǂ̂炢t@C𕜊邱Ƃł̂H
  3.  ł́AǂāAt@C𕜊̂H
  4.  t@CVXẽA}Eg
  5.  im[h𒼐ڕς鏀
  6.  f[^𑼂̏ꏊɏޏB
  7.  ꂽ i m[hB
  8.  ڂ i m[h𒲂ׂB
  9.  f[^ubN𕜊B
  10. i m[h𒼐ڂB
  11. Iɂ́AƂ͂ƊȒPɂȂ̂H
  12. vZXc[͉̂H

  t^
  ----

  A.  oŎЃ}[N Colophon
  B.  NWbg
  C.  Ql
  D.  @

  0.͂߂
  ==========

   mini-Howto ́A ext2 t@CVXeŏt@C@ɂĎ
  oƂƂɂăqg񋟂̂łB܂, ŏɂ̓t@C
  Ȃ悤ɂɂ͂ǂǂƂƂxĂ܂B

  ̃hLǵA rm gĂāAƂ̂ɂĂ܂
  lɖɗ悤ɏ܂BAłȂẴhLgǂ
  ŗ~Ǝv܂B̓AɏꂽŊ낤𓦂邱Ƃ
  邩m܂񂩂B

  ́̕AʓI Unix t@CVXeɂāAX̒mz肵Ă
  BAقƂǂ Linux [U[ɂ͗łƎv܂BAȂ
  ܂̏S҂ƂA Linux ɂăt@C𕜊ɂ́A
  ȂƂł́AȂ̋ZpIȒmƔEςKvƂƂ͊oĂ
  B

  ext2 t@CVXeꂽt@C𕜊邽߂ɂ́Ãt@C
  Ă raw foCXɃANZXłȂĂ͂Ȃ܂Bʂɂ́A
   root łȂ΂ȂȂƂӖ܂B܂ `e2fsprogs' Ɋ܂܂
  `debugfs' KvłB́AȂ̎gfBXgr[Vi󒍁F
  Slackware, RedHat, DebianȂǁjCXg[Ă͂łB

  ǂĂ̂̕āH́AgA root  `rm -r' s
  ȂǂƂA܂nĔjIȂƂłB 97 
  JPEG t@CĂ܂A͎ɂƂĂ͕sŁAđ̏
  ͕邱ƂłȂ̂łB̗Lp tipsit^ B, `N
  Wbg'jƑȂEςɂāA 91 ̃t@C𖳏ŕ
  邱Ƃł܂B܂̃t@CɂĂ͂ǂɂ̈ꕔ𕜊邱
  Ƃł܂BȉꍇɓĂG̓eɂ͏\łBj
  邱ƂłȂ̂܂BA1024 oCgȏ
  ȂĂȂƂM͂܂BiA^̈Ƃɂ̓t@C
  ̍ŏ̂̕łB JFIF t@CtH[}bgɂĉmȂ
  A܂āA낭Ȍʂ͏oȂł傤Bj

  ŁAt@C𕜊ɂĂ̋c_邱Ƃɂ܂B

  1. ǂt@Cɍςނ
  =====================================

  Linux  MS-DOG ł͂ȂƂƂ͊̂ɖĂĂB MS-DOG
  (Windowze95 ܂߂ājł́At@C𕜊邱Ƃ́AȂȒPɂł܂B
  uIy[eBOVXevǐtLӖŎgĂ܂Bjɂ́A
  ̃vZX郆[eBeB[Ă܂B Linux ɂ͓Ă͂
  ܂B

  ł́A@Piŏdv߂łAĂȂˁj́A

       *** obNAbv邱 ***

  łBǂȎĂBgǂȎ̂Ƃ͎v̂łB
  Ȃ̂łΎd܂񂪁A(włĂA̗Վ
  ł傤Hj܂Ƃ Linux ̃[U[ȂAobNAbvfoCX𔃂ɍs
  āAƂobNAbvXPW[v悵AׂłIBڂ
  ́A Frisch (1995) ĂB

  ł́AobNAbvȂꍇ͂ǂ邩Hi邢́AobNAbvꍇ
  łFdvȃf[^Ɋւ́Aт߁A_o߂Ă̂́A
  Ƃł͂܂񂩂Bj

  dvȃt@CɂẮAp[~bV 440 (邢͂ȉjɂĂ
  ܂傤Bgł݂̏sɂ邱ƂŁA'rm' ̑Oɖ
  mFKvƂ܂Bi 'rm -r' ŃJ[VuɃt@CƂɂ́A
  ߂̈̊mFĂA rm 𒆎~Ăx 'rm -rf' 
  ܂ǂˁBj

  ʂȃt@CɂẮAsfBNgɂ̃t@C̃n[hN
  ĂƂ̂ǂ@łBOɉx /etc/passwd i܂AV
  Xe󂵂Ă܂jƂVXeǗ҂ǂ̂悤ɂĂ邩
  Ƃ܂Bɑ΂@́Airoot Łĵ悤ɂĂ
  łB

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

  ̃t@CSɏƂ猋\߂ǂłB

      # rm /etc/passwd

  ƂA

      # ln /.backup/passwd /etc

  Ƃ΁AƂɖ߂܂B񂱂łAt@C㏑悤ȎԂ
  ͏ɂ͂Ȃ܂񂩂AɂobNAbvĂB

  Ɏ咣lł傤BiŁAt@CƂɁAmF
  悤ɂȂ܂BjlIɂ́A\tgvƂɓȂ̂ɂ͑ς
  Ȃ̂ŁAɂ͂Ă܂BɒxꑁAɒʂ
  ƂɂȂ܂BȂȂVO[U[[hƂÃVFg
  ƂÃ}VgƂȂǂ͂ 'rm' ͂ɂ͖̂łB
  mFƂɂĂAifBNgc[́jɂ̂킷ꂽA
  t@C𑽂邱Ƃ͏\l܂BlɁA낢ȃXNvg
  ƂvO 'rm' u邱Ƃ́A̍l炢ƁAƂĂ댯
  ̂łB
  ܂ȕ@ƂẮATCN\ȏłpbP[Wg
  łBɊւďڂ Peek, et al (1993) ĂB

  2. ǂ̂炢t@C𕜊邱Ƃł̂H
  ===================================================

  ͏ꍇɂ܂B Linux ̂悤ɍȁA}`^XNA}`[U[
  ̃VXeɂẮ̖ANfBXNɏƂĂ邩킩
  ȂƂłBłIy[eBOVXet@C悤ɂ
  ́Ȁꂽt@CgpĂubŃAVȃt@Ĉ߂̊iD
  ̓IɂȂ̂łB( Linux ̈ʓIȌ̈łBc[ƂAJ[l
  ̓[U[Ԕł͂ȂƉ肵Ă̂łBjʓIɁAꐶ
  Ă}VقǁAt@C̕\͒ႭȂ܂B

  ܂AfBXNtOe[VĂ邩ǂ́At@C̓̕x
  ɑ傫e܂B폜t@CAɃtOe[VĂp
  [eBVɂƁAt@C̑ŜǂݍނƂ́AقƂǕs\ł傤B

  Ȃ̃}VÂ悤ɃVO[U[̃[NXe[Vł΁A
  îȂǁA܂lbg[NɂȂĂ܂񂯂ǁBNɂ͂Ȃ
  ȂjāAt@C̏uԂɕpɂɃfBXNANZXd
  ĂȂ΁Aɂ̂Ǝ悤ȕł낤Ǝv܂B
  94% ߂̃t@C𖳏ŕ邱Ƃł܂Bit@C̓oC
  i[t@CȂłIj 80% ȏ㕜邱Ƃł΁A\
  񂶂ȂƎv̂łA@łH

  3.  ł́AǂāAt@C𕜊̂H
  ================================================

  Iɂ́Araw p[eBVfoCXf[^oāAIy
  [eBOVXeɑ΂āAx悤ɂ邱ƂłB̂߂ɂ͊
  {IɂQ̕@܂B́Ãt@CVXe̍폜ꂽt@C
   i m[hāA 'deleted' ̃tOĂ܂Af[^@̂
  ɂƂ̏ꏊɖ߂Ă邱Ƃ҂̂łB̕@́Aƈ
  SłԂ܂Bf[^p[eBV̂ǂɂ̂o
  āAV炵t@Cɏo@łB

  ȉ 4 ͂ 6 ͂ł́Af[^𕜋OɂׂƂĂ܂B
  7 ͂ 10 ͂܂ł́Aۂɂǂ̂悤ɕ̂Ă܂B

  4.  t@CVXẽA}Eg
  ==================================

  ǂȕ@gɂAt@C̓Ăt@CVXeA}
  Eg邱Ƃn܂܂B}Egt@CVXeł́Aǂȋ}p
  A΂ɂĂ͂܂B̃Xebv́At@CĂ灖ł
  葁sȂ΂܂B

  ƂȒPȕ@͎̒ʂłBt@C /usr p[eBVɂ
  ̂ȂA

      # umount /usr

  sĂBA /usr ɂ邢̂̂𗘗p\ɂł
  BłAǂݍݐpōă}EgĂB

      # mount -o ro,remount /usr

  t@C[gp[eBVɂꍇɂ́A mount  /etc/mtab
  ɏ܂Ȃ悤ɃIvVƂ `-n' ^Ȃ΂Ȃ܂B

      # mount -n -o ro,remount /

  ĂĂÃvZXt@CVXegĂ\͎̂Ă
  ܂Bî umount ł `Resource busy' ƂG[f܂Bj
  ̂߂Ƀt@C}Eg|CggĂvOɑ΂ăVOi
  vO݂܂B `fuser' łB /usr p[eBVɑ΂Ď
  Ă݂ĂB

      # fuser -v -m /usr

  ŁA֌WvZX̃Xgo܂BFdvȂ̂łȂ΁A

      # fuser -k -v -m /usr

  ̂悤ɂăvZX SIGKILL ivZXmɎEVOij𑗂邱Ƃ
  ł܂A邢́A

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

  ƂāAꂼ̃vZX SIGTERMivZX𐳏ɏIVOij
  邱Ƃł܂B

  5.  i m[h𒼐ڏ鏀
  ================================

  ̃AhoCXH ̕@͎gȂłB̂߂ɂ͂
  Ȃɒ჌xŃt@CVXe񂷂̂́A@Ƃ͎v܂B

  ܂Aɂ肪āAꂼ̃t@C̍ŏ 12 ubN
  łۏ؂͂܂BłAt@C𕜋̂
  ΁A̕@gȂĂ͂Ȃ܂BiZNV 11 ƁA
  "ꂪƊȒPɂȂ邩H"ƂƂɂĒǉ񂪏Ă܂Bj

  ł̕@ƂvłAƂĂ raw p[eBV
  Ⴄp[eBVɃfBXNC[WƂăRs[āAꂩÃt@C
   loopback foCXgă}EgǂƎv܂B̓Iɂ͎
  ̂悤ɂ܂B

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

  ̂߂ɂ 'mount' ̍ŐVo[WKvɂȂ܂BiŖ
  A 2.6 ȍ~ mount gׂłǁBȂȂ 2.6 ȑÕo[Ŵ
  ̂́AZLeB[Ɋ֌WoOAʂ̃[U[ root 
  ܂łBW[ȃfBXgr[VA Debian, RedHat, Slackware
  ł̓o[W 2.6 ɃAbvf[gĂ܂ǁBj

  loopback foCXgĂ΁At@CVXeSɉ󂵂Ă܂
  iہAǂ邱ƂłBjAx raw p[eBVRs[
  ΂̂łB

  6.  ̏Ƀf[^
  ============================

  ǂɕp̃p[eBVmۂȂ΂Ȃ܂B^ǂ΁AVX
  eɂ͂̃p[eBVƎv܂B[gA /usrA /home
  ȂǂłB̒ȂǂIł͂܂B̂̈
  VfBNgĂB

   root p[eBVāAׂĂ̂̂ɒuĂꍇɂ
  iłBƍăp[eBVjO܂ł́BjAƂ͂
  ΂łBAgp\ MS-DOG  Windoze p[eBV܂
  ˁH邢 ramdisk hCoJ[lɑgݍł邩A邢̓W[
  ƂĎĂ܂H ramdisk gpɂ́iJ[l 1.3.48 V
  Ɖ肵ājÂ悤ɂ܂B

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

   2MB  RAM fBXN{[łāA /mnt Ƀ}Egł܂B

  łƂӁFAIɃW[[hAA[h
  ̂ `kerneld' gĂꍇɂ́A RAM fBXNs̋Lu
  Rs[܂ł ramdisk  unmount Ă͂܂B  unmount ƁA
  `kerneld' ̓W[A[hł̂ƎvĂ܂܂Bi΂炭
  ҂ĂłBjĈx̂悤ȂƂNƁA[͑̃J[l
  ̑̕ɎgĂ܂āAԂJĕf[^Ă
  ƂɂȂ܂B

   `superfloppy' ̂悤ȃ[oȗuĂ̂łAp
  ̃p[eBV̏ꏊƂĂ͑ǂIłB΁Atbs[
  gȂ΂Ȃł傤B

  ɕKvȂ̂ƂẮAp[eBVu̐^񒆂AKvȃf[^ǂݏo
  vOłBƂȂ `dd' ̎dĂ܂BႦ΁A
  800 MB p[eBV 600 MB ڂǂݏo悤ȏꍇA `dd' ͍ŏ 600 MB
  𖳎͂܂AǂĂǂ݂ɂĂ܂܂Bɂ鎞Ԃ
  ΂ɂ͂Ȃ܂B̉@́Ap[eBV̒Ԃ̓ǂݏov
  OƂłB `fsgrab' ƂÕvOłBȉ
  uuencode+gzip+tar `̃t@CŃ\[XuĂ܂BgACXg[
  @ƃRs[CgĂ܂B̂悤ȃR}hłŎɓ
  邱Ƃł܂B

      $ uudecode < Ext2fs-Undeletion-mini-HOWTO
      $ gzip -dc fsgrab.tar.gz | tar xf -

  :Ext2fs-Undeletion-mini-HOWTÔƂ͍ǂłt@C
       uĂˁB

  begin 644 fsgrab.tar.gz
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
  0EK*4I?^S]#\$XBC-`'@``$H9
  `
  end

  ̃vO͎ɂƂẮASɓ͂܂AvOǂ̂悤ɓ
  Ǝ͐ӔCȂƂxĂ܂B

  ̃vÓA܂APɓƂ߂̌pڂvOłB
  ۏ؂ł邱ƂɂāAڂ͒ɂ `COPYING' (the GNU General Public
  Licence)  `No Warranty' ZNVB

  7.  ꂽim[hB
  ==============================

  ̃Xebv́At@CVXe̒ŁAǂ i m[hŋ߉ꂽ
  ׂ邱ƂłB̎d `debugfs' ōsƂł܂Bt@CVXe
  foCXɂ `debugfs' 𗧂ĂB

      # debugfs /dev/hda5

   i m[h𒼐ڏA `-w' IvVāAt@CV
  Xeւ݂̏ĂB

      # debugfs -w /dev/hda5

  R}hvvg

      debugfs:  lsdel

  ̂悤ɓ͂΁AƑ҂ăfBXNu𖁂񂵂ĂA炵
  XgD݂̃y[W[i$PAGER̒ljɃpCvo͂܂BƂ̃Rs[
  ق̂ƂɃZ[uƎvł傤B 'less'  '-o'
  ƃ^CvāAo̓t@C̖O͂ĂΗǂ킯łBȂ΁A
  Ȃ炩̕@ŏo͂悤ɃAWȂ΂Ȃ܂BȉĂ
  ĂB

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

  āAԁATCYA^CvAp[~bVԍAL҂ɂāAǂ
  i m[hȂ̗~̂Ȃ̂TȂ΂Ȃ܂BK^ɂ 5 O
  ɏA΂łt@CƂƂŌ邱Ƃł邩m܂B
  łȂ΁A݂ԂɃXg𒲂ׂȂ΂Ȃ܂B

  \Ȃ i m[h̃XgɃvgAEgǂƎv܂B
  ̕yłB

  8.  i m[h̏ڍׂ𒲂ׂ
  =======================

  Debugfs ł `stat' R}hŁA i m[hɂĂ̏ڍׂvg邱Ƃ
  ł܂BXg̒ɂ i m[hɑ΂ `stat' R}hgĂ݂
  BႦ i m[hԍ 148003 𒲂ׂ悤ƂÂ悤ɂĂ݂
  B

      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

  R̃t@C𕜋Ȃ΂Ȃꍇɂ́A̍Ƃ
  vł傤Bׂ̈ɂ 'lsdel'  i m[hXg̕ i m[
  h̃Xg 'list' ɂƂƁAȉ̃R}hsĂB

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

  ŁAXg̒sɂ̂̔ԍ𔲂o 'inodes' ɃZ[u
  邱Ƃł܂B̕X̏ɕ֗łBꂩA

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

  ƂƁA 'stats' Ƃt@Cɂ 'stat' R}ȟʂS܂B

  9.  f[^ubN̕
  ==========================

  ́̕AɈՂA邢͂܂tm܂B
  ƂĂt@C̑傫 12 ubNȓł΁Af[^̓ĂS
  ubNԍ i m[hɎ߂Ă܂B܂肻 i m[hɊւ
  R}hgāAf[^o͂̂͂߂ĒPȎdłBقǂ̗
  āAxɎ

      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

  ̃t@C 6 ubNłłĂ܂BԂŐVt@Cɏo͂
  邽߂ɂ́AO 'recovered.001' ƂāA

      # fsgrab -c 2 -s 594810 /dev/hda5 > recovered.001
      # fsgrab -c 4 -s 594817 /dev/hda5 >> recovered.001

  ̂悤ɂ邱ƂłB recovered.001 ̏I̕ɂ͑S~邩
  m܂񂪁A܂AقǏdvł͂Ȃł傤B

  A̃ubNɏ㏑Ă܂Ă邩܂B
  Ȏ́A^ɌꂽƂ悤܂ˁB̃ubN͂i
  ߂Ă܂BiƑ unmount Ăǂ̂ɁIj

  ̓t@C 12 ubN傫ȏꍇłBł Unix t@CVX
  e̍\ɂẮA܂܂Bt@C̃f[^'ubN'ƌĂ
  PʂɕۑĂ܂B̃ubN͏ɔԍĂ܂Bt@
  C͂܂A'i m[h'Ƃ̂ĂāA owner ƂA permission
  ƂA type Ȃǂ̏񂪕ۑĂ܂BubNƓ悤 i m[h
  ɔԍUĂ܂A͂܂ʂ̕тłBfBNgGǵA
  t@C̖O i m[h̔ԍȂĂ܂B

  p[~bVȂǂ̏ێĂlɁA i m[h̓t@C̃f[^
  ̓ĂʒuێĂ܂Bt@C̐擪 12 ubNɂẮA
  ̓Ăʒuԍ͂ i m[hgɊ܂܂Ă܂B
  direct ubNiڃubNjłB i m[h 'indirect blockiԐ
  ubNj' iɂ͒ǉ̒ڃubN̓ĂꏊԍL^
  Ă܂Bj̔ԍێĂ܂B܂ i m[h͓dԐڃubNíA
  ԐڃubN̓ĂʒuԍL^Ă܂Bj̔ԍێ
  邱Ƃ܂AOdԐڃubNiɂ́AdԐڃubN̓Ă
  ꏊԍL^Ă܂Bj̔ԍێĂ邱Ƃ܂B

  xǂł݂ĂBGłˁAłAdvł̂łB

  ݂̃J[lł́i 2.0.27 ܂ł͂łBjcOȂƂɃt@C폜
  ƂɁAԐڃubN̕[ɂĂ܂悤ɂȂĂ܂Bł 12
  ubNt@Cꍇɂ́AKvƂSubN̔ԍo
  Ƃłۏ؂̂łB

  ܂ł̂Ƃ뎄ǂ蒅B̕@́At@CtOe[V
  ĂȂƉ肷邱ƂłBtOe[VĂςłBt@C
  ԐڃubNgĂāAtOe[VĂȂꍇ̔zu͈ȉ
  悤ɂȂĂ܂B

      #Blocks   e
      12        f[^ (ڃubN)
      1         ԐڃubN
      256       f[^ (ԐڃubÑubN)
      1         dԐڃubN
     [1         dԐڃubNɂԐڃubN
      256       f[^
     ] (256 JԂ -- dԐڃubN̊ԐڃubNɕt)
      1         OdԐڃubN
    [[1         dԐڃubN
      256       f[^
     ] (256 JԂ -- OdԐڃubNɂĎw肳ꂽ
                          dԐڃubN̊ԐڃubNɕtPj
    ]  (256 JԂ -- OdԐڃubNɂĎw肳ꂽ
                          dԐڃubN̊ԐڃubNɕtP)
  킩₷Ɨǂ̂łǁBAt@C 268 ubNȉł΁A
  Ȃ蕜݂̌܂B 12 ubÑf[^ubNi̔ԍ
  i m[hg̒ɏĂ܂jǍɊԐڃubNAi̓e
  [ɂĂ܂ǰɂ 256 ubÑf[^ubN܂B
  t@Cȏ̒łꍇɂ́AdԐڃubN𑫂Ă
  B̌ 256 f[^ubN閈ɁAԐڃubNƁAf[^ub
  N 256 ĂBt@C傫ȏꍇɂ́A
  t@CtOe[VĂƎv̂łǁAlȎ
  ɑ傫ȃt@CɓKj͖炩Ǝv܂B

  ł̓ubNTCYƂĕWIȒlł 1024 oCg肵Ă邱Ƃ
  ӂĂBubN傫΁A̒lς܂BƂ
  eubN 4 oCgȂ̂ŁAeԐڃubNɓĂubNԍ̐̓u
  bNTCY4 ɂȂ܂Bł 256 Ƃ\ɌꂽAu
  bNTCY4 ɓǂݑւĂB

  10. i m[h𒼐ڑ삷
  =============================

  ̕@́A\ʓIɂ͂Ղ@łBɂqׂ悤ɁA 12 ub
  Nt@Cɂ͎g܂B

  悤Ƃ i m[hꂼɂāA usage count 1 ɐݒ肵A
  deletion time  0 ɐݒ肷Kv܂B `debugfs'  `mi'
  (modify inode) R}hŎs邱Ƃł܂BL i m[h 148003 
  ςĂ鎞̏o͗܂B

      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]

  ܂폜̎ 0 ɂāANJEg 1 ɂÃtB[hɂ
  ̓^[AƂƂłB킩lɁAR̃t@C
  𕜋Ȃ΂ȂƂ猋\łAȂƂĂ
  Ƃ͖ł傤BƊiD悭肽 'Recycle Bin'̂OtB
  J 'operating system'łgłˁB

  [Ƃ 'mi' ̏o͂́A i m[h̒ 'creation time' tB[hɂ
  o͂Ă܂A͉RłI邢͂Ă̌łB
  ɂ Unix t@CVXeł́At@Cꂽ͂킩Ȃ̂
  B `struct stat' ̃o[ł `st_ctime' ́A i m[hς
  Ă܂B܂Ō i m[ĥǂςĂ̂łB
  āÃbX͂܂B]

  gĂ̂Vo[W debugfs ɂ͐Ɏ悤ȃtB[
  ĥ͖ȂĂ邩m܂Bi `Reserved1' 
  fragment tB[hîj́j

  U i m[hςA 'debugfs' 𔲂āÂ悤ɂĂB

      # e2fsck -f /dev/hda5

  ŗlXȖɗ񂪕\Aǂ̏QׂɂĂ̎₪
  ł傤B 'summary information' Ɋւ鎿ƁAȂgς i m[
  hɂĂ̎ɂ͑S 'yes' ƓĂB̕ɂĂ͂Ȃ
  C܂AĂ̏ꍇ 'yes' ƓĂč\Ȃł傤B
  ꂽt@C '/lost+found' fBNgɓĂ܂Bił炻̃p[
  eBV /usr Ƀ}Egꍇɂ́A /usr/lost+found ɍsĂ
  Bjt@C i m[h̔ԍɂĖOĂ܂B
  Ȃ΂ȂƂ́Aet@C̖OoāAt@CVX
  ec[̒œK؂ȏꏊɖ߂ƂłB

  ۂɂ 'e2fsck' g΁A /lost+found ɂt@CuȂ
  ł͂܂B 'debugfs' gāA悤Ƃ i m[hɑ΂ăt@
  CVXeɃN𒣂邱Ƃł܂B i m[hς 'debugfs'
   'link' R}hgāÂ悤ɂ܂B

      debugfs:  link <148003> foo.txt

   'debugfs' ɂƂẴJgfBNg 'foo.txt' Ƃt@C
  ܂BłȂ 'e2fsck' sāA summary information ƃu
  bNJEg₻̑𒼂Ȃ΂܂񂯂ǁB

  11. IɂꂪƊȒPɂȂ邩H
  ===================================

  ͂Bۂ̂ƂA݂͂Ă܂B̕ƂɂƁAŐV̊J
   2.1.x ɂĂ͊ԐڃubN[ɂȂłB 1996 N 12 ̏
  ߂ɂẮiԍŋ߂ linux-kernel list Ă݂ƂłjA
   2.0.x iŃJ[lāAł̓t@C폜̂ƂɊԐڃub
  NG炸ɂƂ悤Ƃb܂B Linus Ƒ̃J[l
  nbJ[B̌EA i m[hȂ΂Ȃ
  s̑啔͉ł傤B

  12. ̃vZX铹͂邩H
  =================================================

  ȂƁÂłBcOȂƂɁA̓قǂ̃}jA i m[h
  삷ƂƓɒʂĂAԐڃubN͕邱ƂłȂ
  ̂łBA̖߂lqȂ̂ŁAvO
  ǂȂĂ邩ӂĂ͉̂l邱ƂƎv܂B

  lbgŒNA Scott D. Heavner  `lde' ɂďqׂĂ܂B
  ƂA͂t@C̎̓ƂĎgƂ͂߂ł܂B
  ǂ炩ƂƁAtXN[ł `debugfs' ƌƂł傤B
  ̃^CvƂA̒g̃t@CTƂłƌ
  Ă܂B܂ xia (ꂩgĂl܂Hj minix t@CVXe
  ɑ΂Ă܂Ał͂ꂪ傫ȃZ[X|CgƎ͎v
  łB
  URL:
      ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/lde-2.2.tar.gz

  (ƐVo[Ŵ̂\͏\ɂ܂ǁB--  14
  O CD-ROM A[JCuŌ̂ŁB)

  GNU Midnight Commander 'mc' *{*ɎpɂȂ̂̂悤Ɏv܂B́A
  tXN[̃t@C}l[Wgc[ŁA 'NC' ƌĂ΂ MS-DOG 
  tXN[t@C}l[Wgc[ɊÂĂ܂B 'mc'  Linux
  R\[ xterm ̒ł̃}EXT|[gĂA tar t@C̒
  ŉzIȃt@CVXe\āA cd i󒍁Fchange directoryj邱
  Ȃǂł悤ɂȂĂ܂B̉zt@CVXë ext2
  undeletion ̋@\܂BƂĂg₷悤Ȃ̂łAcOȂ玄
  gł͂̃vOxgƂȂ̂łB--́AÂǂ
  ̃VFR}h̕DȂ̂łBRłÃvORpC
  鎞ɂ `--with-ext2undel'  configure sȂ΂܂B
  ܂̎ɂ `e2fsprogs' ɕtĂJpCuƃCN[ht@
  CKvɂȂ܂BxvOłĂ܂΁A `cd undel:/dev/hda5'
  Ɩ߂āA `directory listing' ŏꂽt@C̃Xgƕ
  Ă܂B

  ŐV̊JrłȂo[W͑ 3.2.11 łBJ[lƓlAJr
  o[W̓nbJ[łȂlɂ͂߁ł܂񁖁BȉURL̂̂ǂ
  \łB

      ftp://sunsite.unc.edu/pub/Linux/utils/file/managers/
          (may be an older version)
      ftp://ftp.nuclecu.unam.mx/linux/local/
      ftp://ftp.nuclecu.unam.mx/linux/local/devel/
          (unsupported, developmental, alpha versions)
      ftp://ftp.cvut.cz/pub/mc/
          (European mirror of public and alpha releases)

  i󒍁Fŋ߂ 3.5.x ł undel ɊւĂ͑傫ȃoOƂ̂Ƃł̂ŁA
  ł邾 ftp://ftp.nuclecu.unam.mx/linux/local/devel/ ŐV̂Ă
  قł͂ȂƂ܂Bj

  ܂ȉ website QƂĂ݂ĉB

      http://stekt.oulu.fi/~jtklehto/mc/

  ̈ۂł 'mc' ̊J҂́Ǎ[XɊւĂƂĂĂ
  悤łB̃o[Wł͑AJ[l̑ŊԐڃubN[ɂȂĂ
  ܂Ȃ悤ɍlʂf邱ƂɂȂ肻łB

  A.  Colophon(({̔w\莆ɂ)oŎЃ}[N)
  ==================================================

  ͎Ԃ̋ƁA[ƂA̕IɉĂ
  ƎvĂ܂B܂AƂĂ͓ǎ҂̕ẌӌƂ
  ƂłBƂ킩₷ȂāHȒPɂłȂāH
  Vc[͉āHNJFKEāH

  Ȃł\܂B̕ɊւĂƂÂق̎Ɋւĉӌ
  ܂A <aaronc@pobox.com> Ɉꌾ`B(:{Ɋ
  Ⴂ킩ɂ_Ȃǂ܂ kikkawa@m.u-tokyo.ac.jp ܂ł`
  Bj

  B.  ӎ
  ===========

      "If I have seen farther than others, it is because I was standing
      on the shoulders of giants."
                      -- ACUbN j[g
    iɎ̐lGłĂƂĂA
           ľɗĂƂ̎łBj

   mini-Howto ̑啔 comp.os.linux.misc  Robin Glover
  <swrglovr@met.rdg.ac.uk> 񂪓ê瓾Ă܂Bɂ̃AC
  fA mini-Howto ɏƂĂ Robin ɂ
  \グ܂B

  C.  
  ================

  Frisch, leen (1995), `Essential System Administration', second edition,
      O'Reilly and Associates, Inc., ISBN: 1-56592-127-5.

  Glover, Robin (31 Jan 1996), `HOW-TO : undelete linux files
      (ext2fs/debugfs)', comp.os.linux.misc Usenet posting.

  Peek, Jerry, Tim O'Reilly, Mike Loukides et al (1993), `Unix Power Tools',
      O'Reilly and Associates, Inc./Random House, Inc., ISBN: 0-679-79073-X.

  D.  @
  ==========

  MS-DOG  Windoze̓g[h}[Nł͂܂B̖OɎp̐i
  邩܂񂯂ǁA͂܂̋RłB

  Unix ͏Wł͂܂BWłȂȂĂ炷łɑ̎Ԃo
   Ă܂BAڂo܂ĉԂ̍𖡂ĉI

  ĂƂŁA͖^ Walter R. Della Croce A̒Pɑ΂Ė
  ɖȃg[h}[No^sׂłBA̖͂Olbgs
  ̌YƂĈȊO̖OƂđ݂F߂邱Ƃ͒fłƂĔF߂܂B
   Linus  Linux g[h}[NƂƂ̂ł΁Agł
  Ăł傤B(󒍁F̖͂ǂ悤łBڂ́A
  http://www.iplawyers.com/text/linux.htm B)

  ̃hLg̒쌠 Aaron Crane <aaronc@pobox.com>i1997 Njɂ
  B̂܂܂̌`ŁA쌠\Ȃǂ܂łΎRɗʂĂč\
  ܂񂪁A҂ Linux hLe[VvWFNg̃R[fBl[^[
  ɉς邱Ƃ͂ł܂Bꕔ̗ṕA]ׂ̈p̂߂
  ꌾ傻̂܂܂ɃRs[̂łΔF߂܂B̂悤ȏꍇɂ́A
  ꂼ͓̏͂KȈpƂƂɎgĂBA쌠\͕Kv
  B

  ҂͂̃hLg̃Rs[̔҂ɑ΂ẮÃhLgR
  s[^œǂނƂ̂ł郁fBǍ`ł낤Ǎ`ł낤AI
  ɒ҂A Linux HOWTO R[fBl[^[ɒm点Ă悤肢܂A
  Kv͂܂B

  i:̂܂܍ڂĂ܂Bj
  This document is Copyright D 1997 Aaron Crane <aaronc@pobox.com>.  It may
  be freely redistributed in its entirety, including the whole of this
  copyright notice, but may not changed without permission from the author or
  from the Linux Documentation Project Co-ordinator.  Dispensation is granted
  for copying small verbatim portions for the purposes of reviews or for
  quoting: in these circumstances, sections may be reproduced in the presence
  of an appropriate citation but without this copyright notice.

  The author requests but does not require that parties intending to sell
  copies of this document, whether on computer-readable media or on paper,
  inform him or the Linux HOWTO Co-ordinator of their intentions.

  Linux HOWTO ̃R[fBl[^[ Greg Hankins  <gregh@sunsite.unc.edu> łB

  󒍁F܂AFAQ̘a̍쐬ɂA삳񁗐AeJ 
        ͂𓾂܂B

