Linux Ext2fs Undeletion mini-HOWTO

Aaron Crane

aaronc@pobox.com

JF Project - {

JF@linux.or.jp

v1.3, 2 February 1999

̂悤ȏ󋵂zĂقB 3 ԁA܂H킷ŃV[
тɍƂ𑱂A悤₭̗}ȂnbLȌՓ
BɁAvÔBEIȏ܎^Ɩ炷낤
قǂ́BƂ tar ł߂āAMetalab ɂ邾BƁAEmacs 
obNAbvt@C̍폜YĂBłȂ́Arm * ~ ƃR}
hłBāAjāAR}hɗ]vȃXy[XĂ܂Ƃ
Ct̂łBÏi폜Ă܂IAs킯
͂ȂB́̕AExt2 t@CVXeō폜Ă܂t@C
@ɂĉĂB炭AŌɂȂ͂̃vO
[Xł͂....

 

Table of Contents
1. ͂߂
   
    1.1. XV
    1.2. ̐̕ȌJꏊ
   
2. t@Cč폜Ȃ߂ɂ
3. ǂ̒x̕߂̂H
4. ł́Aǂĕ̂H
5. t@CVXẽ}Eg
6. i-node 𒼐ڏꍇ̏
7. ʂ̏ꏊɃf[^oꍇ̏
8. 폜 i-node 
9. i-node ̏ڍׂ𒲂ׂ
10. f[^ubN̕
   
    10.1. ȃt@C
    10.2. 傫ȃt@C
   
11. i-node 𒼐ڂ
12. Iɂ͂ƊȒPɂȂł傤H
13. ÃvZXc[͂ȂłH
14. Ƃ
15. Credit ƎQl
16. @IȎ
17. {ɂ

1. ͂߂

 mini-Howto ́Aext2 t@CVXeō폜Ă܂t@C
@ɂāÃqg񋟂悤Ƃ̂łB܂A
t@Cč폜Ȃ悤ɂ邽߂̗\hɂĂA኱
Ă܂B

A rm R}hŁuƂ́vNĂ܂
l̂߂ɁA͖̕ɗł傤BƂ͂AɂĂ
ǎ҂ɖ{ǂł炢ƂĂ܂B܂͂܂킩Ȃ
傤Ȁ񂪂Ȃ̋n~Ȃ̂łB

́̕Aǎ҂ UNIX t@CVXeSʂɂĂxmĂ
ƂOɂĂ܂Ai Linux gĂlȂ炽ĂӖ
悤ɂłBǎ҂S̏S҂ȂALinux ł̃t@
C̕ɂ́A肩Ȃ̋ZpImƔEςƂvĂ
ƂqׂĂ܂B(󒍁FThe Linux Kernel <http://
www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-10.html> ɔrIڂ
܂B)

ext2 t@CVXeł̍폜t@C̕ɂ́AȂƂ̃t@C
ۑĂ(raw)foCXɑ΂ǂݏoANZXsłB
ʂɂ̂Ƃ root ł̍ƂӖ܂A(Debian GNU/Linux <http:/
/www.debian.org/> Ȃǂ) fBXgr[V̂Ȃɂ́Adisk O[
vɏĂ郁o[ȂAfoCXɃANZXł悤ɂ
Ă̂܂B e2fsprogs pbP[Wɂ debugfs Kvɂ
܂Ã[eBeB͂g̃fBXgr[VɊ܂܂
Ǝv܂B

҂̂́̕Arm -r ƂȂƂŔjIȃR}h
 root ŎgĂ܂ƂlIȌoɗRĂ܂B97 
JPEG t@C폜Ă܂̂łB͐ƂKvŁA
Ăю擾̂͂قƂǕs\ȑ㕨łBA(Section 15 ̏
ɂ) tips gĂȂSʁA91 𖳏ŕł܂Bc
̉摜ɂĂA 5 ܂ł͂ȂƂ߂Ƃł܂ (eX
ǂ摜x̕ł)BŌ̈ꖇ͕\s\ł
AɂĂ񌇗 1024 oCgȉxɂ͂łƎvĂ܂
(s^ɂ̓t@C̐擪̂łB JFIF t@
C`ɂĂ͉mȂƂẮAo邾̂Ƃ͂
̂ł)B

폜t@C̕ƂāAǂ̒x̒l҂ł邩ɂĂ͂̂
ǋc_łB

 

1.1. XV

̌̕[XƂ̃[X́Aȉ̂ƂłB

 E v1.0, 1997N118
   
 E v1.1, 1997N723 (Section 1.1.1 Q)
   
 E v1.2, 1997N84 (Section 1.1.2 Q)
   
 E v1.3, 1999N22 (Section 1.1.3 Q)
   
 

1.1.1. o[W 1.1 ł̕ύX_

o[W 1.1 ł̕ύX_́AȂɂAt@C̗ɂ
̎vႢƂłBwEĂꂽׂĂ̕Ɋӂ
BvȎݍpɂďۂɂ́AƐTdɂȂ낤Ǝv
B

ڂ́AUNIX t@CVXẽCAEg̐ƂłB
ɂāA炭蕪ՂȂƎv܂BƂƎł
Ă͂Ȃ̂ƁÃ̕RgłsĂƂ̎wE
ĂłB

Oڂ́A̒ uuencode  fsgrab  gzip tarball 
폜ƂłB̃vÓAݒ҂̃EFuTCg <http://
pobox.com/~aaronc/tech/fsgrab-1.2.tar.gz>  Metalab <http://
metalab.unc.edu/pub/Linux/utils/file/> (т̃~[TCg)
ł܂B

lڂ́A̕ Linux Documentation Project  SGML Tools ɍ킹
 SGML ꂽƂłB̃}[NAbv́AXN[\
̕֋XɉāA(HTML  LaTeX Ȃǂ)̃̕}[NAbvւ
Pɕϊł܂B̗_̂ЂƂ́A̔őgȒPɎ
łƂƂłB܂EFuŉ{ꍇɂ̓NXt@
XnCp[Ng܂B

 

1.1.2. o[W 1.2 ł̕ύX_

̉́Aɍڂ̒ǉ̂߂łBƂāAǎ҂̒Ăɂ
ύXłÂЂƂ͓ɏdvȂ̂łB

̕ύXӏ́AEgil Kvalegerg <egil@kvalengerg.no> ̒ĂłB
ނ́Adebugfs  dump R}hwEĂ܂BEgilAǂ肪
ƂB

̕ύXӏ́Advȃt@C폜Ă܂Ȃ߂ chattr R}
hgƂƂwE_łB Herman Suijs
<H.P.M.Suijs@kub.nl> ̎wEłB

 abstract ܂B̑gDƃ\tgEFAɊւ
URL ǉ܂B(typo ̒܂)e}Ci[ȕύX܂B

 

1.1.3. o[W 1.3 ł̕ύX_

ŏ̃[X 17 Jo܂AVǉ͂قƂǂ
B́AȊԈႢCł(typo ⃊N؂
A-- ɁAOpen Group ւ̃NȂƂ̏CȂ)BāAJ
[lo[W lde ̃o[WȂǂ܂ɂÂȂLqꕔX
V܂BƁA"Sunsite"  "Metalab" ɕύX܂B

̃[X́Ao[W 2.0 ɂȂO̍Ō̃[XƍlĂ܂
B2.0 ́AS HOWTO ɂȂ͂łBW[o[Wԍ̌J
グɂӂ킵[ȉ悤AډƒłB

 

1.2. ̐̕ȌJꏊ

̍̕ŐV̌Jo[ẂAK̏ꏊ(т̃~[TCg)
Ɍfڂ\łB

Linux Documentation Project <http://www.linuxdoc.org/>

܂AŐVł́A҂̃EFuTCg <http://pobox.com/~aaronc/>ɂe
tH[}bgŌfڂĂ܂B

 

 E SGML \[X <http://pobox.com/~aaronc/tech/e2-undel/howto.sgml>B
    ́A҂ SGML Tools pbP[Wgď̃̕\[Xt
    @CłB
   
 E HTML <http://pobox.com/~aaronc/tech/e2-undel/html/>B́ASGML
    \[X玩Iɐ HTML o[WłB
   
 E Plain text <http://pobox.com/~aaronc/tech/e2-undel/howto.txt>B
    ASGML \[X玩IɐeLXgo[WłB
   
 

 

2. t@Cč폜Ȃ߂ɂ

t@C̕Ƃ_ɊւāALinux  MS-DOS Ƃ͏肪ႤƂ
Ƃ܂̂ɖĂBMS-DOS (т̈̎qł Windows
95) ̏ꍇAʂɃt@C͂̕ȂȒPłBōs
[eBeBAIy[eBOVXe (܂A҂̗͂pL`
̈ӖŎg킯ł) ɕtĂ邩łBALinux ̏ꍇA
͂܂B

]āA[ No.1 (΁uȂ鐾v) 

    S: obNAbvׂ
   
Ȃ킿AłAobNAbv悤ɂ邱ƁBׂẴf[^
ΏۂłBғlAǎ҂̃Rs[^ɂ̓[̑̌ML^v
OAe핶ȂǁANɓn񂪑ʂɒ~ςĂ͂łB
˔IȃfBXNQNA邢(NłȂł)
NbJ[ɃfBXN̓eĂ܂肵ꍇA
ǂقǍ邩lĂ݂ĂBĂ蓾ȂƂł
܂BɁA҂͂܂ɂ󋵂Ɋׂ̐lƃ[
̂Ă܂B Linux [ÚAKȃobNAb
vfoCX𔃂ĂāAK؂ȃobNAbvXPW[𗧂ĂŁA
炷悤߂܂BҎǵATu}V̗]fBX
NgāAC[TlbgoRŃz[fBNgIɃ~[
ɂĂ܂BobNAbvXPW[̗ĕɊւڍׂ́AFrish
(1995)  ( Section 15 Q)B

ł́AobNAbvĂȂꍇ́Aǂׂł傤H (邢
obNAbvƂĂBdvȃf[^ɂẮAd̈S΍
Ƃ邱Ƃ͈lł͂܂)

dvȃt@C̃p[~bV 440 (邢͂茵l) ɂ
傤B݂łȂ΁A rm R}hō폜OɁA폜
邩ۂ̊mFbZ[W\悤ɂȂ܂B(A҂̏ꍇA
ł rm -r R}hŃfBNgċAIɍ폜ۂɂ́Aŏ
mF\̒iKŃvO~āArm -rf R}hłĂ܂
肵܂B)

ʂȃt@CɊւẮABfBNgɃn[hN쐬̂
悢@łB́AVXeǗ҂畷błAނ /etc/
passwd t@Cxč폜Ƃł (̓VXe
ɂقڔjIȃ_[W^܂)Bɑ΂Ώ@̂ЂƂ́A
̂悤Ȃ̂ł ( root Ŏs܂)B


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


ĂƁAt@C̓eSɏ̂Ȃʓ|ɂȂ܂
B̂悤ȃR}hsƂĂA


  # rm /etc/passwd                                                  


̍ۂɂ́A


  # ln /.backup/passwd /etc                                         


Ƃ΁At@C𕜋ł܂BAt@C㏑Ă܂
Ƃ̕@͖ɗȂ̂ŁAɂĂobNAbv͕KvłB

ext2 t@CVXeł́Aext2 ̑𗘗păt@CfBNg
ی삷邱Ƃł܂B̑̑ɂ chattr R}hg
Bɂ͂܂Auǉ̂݉\(append-only)vƂ̂܂B
̑tt@ĆAe̒ǉ͉\łA폜oȂȂ
A̓e㏑邱ƂłȂȂ܂BfBNgɂ̑
tĂꍇ́ÃfBNg̃t@CTufBNǵA
ʏʂύX͉\łAt@C̍폜oȂȂ܂Buǉ̂
\v́Â悤ɐݒ肵܂B


  $ chattr +a t@C                                            


܂AuύXs(immutable)vƂ̂A root ł̂
ݒł悤ɂȂĂ܂B̑tt@CfB
NǵAύXA폜AO̕ύXA(n[h)N̍쐬s\ɂȂ
Bݒ́Â悤ɂ܂B


  # chattr +i t@C                                            


ext2fs ɂ́AɁu폜s(undeletable)vƂ܂ (
chattr  +u tĐݒ肵܂)BӖƂ́Ȃtt
@C폜ꂽꍇAۂɍėp邩ǂɊւ炸AUS
ȏꏊɈړAԌoߌɍ폜Ƃ̂łBcO
ƂɁA̋@\̓CXg[̃J[lɂ͂܂Ă܂
BߋɎꂩƂ͂̂łA(҂̒m) ݂̃J[
lł͂܂p\Ƃ͂ȂĂ܂B

rm  rm -i ւ̃GCAXƂ邩A@\̊֐ɒuׂA
咣l܂ (rm -i ́At@C폜̍ۂɕKmF߂܂)B
ۂ Red Hat <http://www.redhat.com/> ́Aroot ܂ޑS[Uɑ΂Ă
̋@\ftHgŐݒ肵Ă܂BA҂̌lIȈӌł́A\
tgEFA͖ߒʂ蒉ɓׂƎvĂ̂ŁAɂ
^ł܂Bɂ͖܂BxꑁA[U̓VO
E[U[hŋNAʂ̃VFgAقȂ}V𗘗p
肷͂łAꍇɂ͂ rm @\͖ɂȂ܂B폜
mF̕\o邱ƂɊꂫĂƁAuꂽ󋵂lɁA
xɑ̃t@C폜w肵Ă܂ȂƂ܂BlɁArm
R}heXNvgvOŒûA҂̍lł́A
댯ȂƂƎv܂B

܂ȕ@ƂẮArm Ƃ͕ʂ̃R}hŁAuS~v`̍
ł悤ȃpbP[WgĂ݂邱ƂłBڂ́APeek, et al
(1993) (Section 15 Q) ĂBAɂ͂܂B
̃pbP[W̍҂́A폜ɂă[UڒɂȂ悤サĂ
悤Ɏv邩łBUnix VXeł́AނAȐӔCɊÂ
Tdȉ^pƂAv[`{ɂȂ͂łB

 

3. ǂ̒x̕߂̂H

ꍇɂ܂BLinux ̂悤ȍ@\A}`[UA}`^XÑIy
[eBOVXeŃt@C𕜋ꍇ̖_̂ЂƂ́AN
fBXNɏ݂邩ȂƂƂłBt@C폜
悤߂ƁAIy[eBOVXe͂̃t@C߂Ă
fBXNubNAVKt@CɊ蓖Ă邽߂̋ԂƂĔF܂
B(́AUnix nIy[eBOVXeɌʌ̓T^I
łB܂AJ[l₻̊֘Ac[́A[Udg݂𗝉
ōƂĂ邱ƂOɂĂƂƂłB) ʂɁA}V
gĂقǁAt@C͓̕Ȃ܂B

܂AfBXÑtOe[Vt@C̕ɉe܂B
t@CtOe[V̌p[eBVɂꍇɂ
Ãt@CŜ𕜋łm͒ቺ܂B

ǎ҂̃}V (҂̃}V̂悤) VO[Ũ[N
Xe[VłAt@C폜Ă܂uԂɃfBXNg
悤ȏsĂȂƂȂA`ŏЉ҂̏ꍇƓ
̕BłƎv܂B҂̓t@C 94 % ߂𖳏
܂ (̓oCił)B炭 80 % ȏ㕜ł
΁AȂ薞ł͂Ǝv܂B

 

4. ł́Aǂĕ̂H

Ƃ̎vȕ́Araw p[eBVfoCXf[^
āA +Iy[eBOVXeFł悤ɂ邱ƂłB
+ɂ͊{Iɓނ̕@܂BЂƂ́Ã݂t@CVXe
ɂ폜ꂽt@C i m[h 'deleted' tO
菜Af[^@̂悤ɂƂ̏ꏊɖ߂Ă悤ɋFAƂ
̂łBЂƂ́ASł͂܂Ԃ̂@́Ap[e
BVɂf[^ToāAʂ̃t@CVXe̐VKt@C
ɂ̃f[^oƂ̂łB

Af[^Ɏ肩OɁAĂׂƂiK
Bڍׂ́ASection 5, Section 6  Section 7 B
Ƀt@C𕜋@́A Section 8, Section 9, Section 10, Section
11 QƂĂB

 

5. t@CVXẽ}Eg

ǂ̕@gɂA܂ŏɍ폜t@CĂt@C
VXẽ}EgKv܂BōQĂƁAt@C
VXe߂߂ɂĂ܂\̂ŒӂĂB
̍Ƃ́At@C폜Ă܂ƂɋCt_ŏo肷
΂₭sȂ΂Ȃ܂B}EgΑقǁAf[^
㏑\ȂȂ܂B

łȒPȕ@́Â悤Ȃ̂łBł́A폜t@C /usr
ɂ̂Ɖ肵Ă܂B

 

  # umount /usr                                                     

 

A/usr ȉɒuĂ̂gȂȂ͍̂邩܂
B̏ꍇAread-only ōă}Eg܂B


  # mount -o ro,remount /usr                                        


폜t@C[gp[eBVɂꍇ́A-n IvVt
āA/etc/mtab t@Cւ݂̏Kv܂B


  # mount -n -o ro,remount /                                        


ǂ̕@Ń}Eg邩ɊւȂÃvZXỸt@C
VXegĂ\܂ (̏ꍇA}Eg͎sA
"Resource busy" ̃G[\܂)B̂߂ɁÃt@
C}Eg|CggĂvZXɑ΂ăVOi𑗂vO
݂܂Bfuser łB /usr p[eBVɑ΂Ďg
݂܂傤B


  # fuser -v -m /usr                                                


LR}hɂāAΏۂƂȂvZXL܂BdvȃvZX
݂ȂƂmFłÃR}hs܂B


  # fuser -k -v -m /usr                                             


ƌX̃vZX SIGKILL VOi𑗂܂ (̓vZX
mɎEVOił)B邢́Â悤ɂĂ\łB


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


͌X̃vZX SIGTERM VOi𑗂܂ (̓vZX𐳏
ɏIVOił)B

 

6. i-node 𒼐ڏꍇ̏

҂ƂẮA̕@͂߂܂B̓t@CVXe̒჌
xw킯łAƂ͎vȂłB
܂̕@ł́Amɕł̂͌X̃t@C̍ŏ 12 ub
NȂ̂łBāA傫ȃt@C𕜋ۂ́AʏAŏII
ɑ̕@g킴𓾂܂B(Ƃ͂Aڂ́A Section 12 
B)

ǂĂ̕@gȂƋCς܂Ȃꍇ́A raw p[eBV
f[^𑼂̃p[eBVɃfBXNC[WƂăRs[ÃC
[W loopback gă}Eg邱Ƃ߂܂B


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


(ӂĂق̂́Amount R}h̃o[WÂƁAL̃R}h
Ŗ肪邩ȂƂƂłB mount 肭ȂꍇA
ŐVo[WAȂƂ version 2.7 ȏɍXV邱Ƃ
߂܂BÂo[Wɂ́AvIȃZLeB̃oO邩
B)

̂悤 loopback gĂƁÃt@CVXeSɔj
Ă܂ꍇłA raw p[eBVēxRs[Ă蒼ō
݂܂B

 

7. ʂ̏ꏊɃf[^oꍇ̏

ʂ̏ꏊɃf[^o@ꍇ́A܂XL[p[eBV
邩ǂmFKv܂B܂At@C
Rs[oꏊmۂ킯łB炭Aǎ҂̃VXeɂ͕
̃p[eBVA[g /usrA/home ͕ʁX̃p[eBV
ĂƎv܂B̂̂ЂƂgĂASȂ͂
BǂꂩЂƂ̃p[eBVɁAVK̃fBNg쐬܂
B

[gp[eBVȂāAׂĂɕۑĂꍇ́A኱
ʓ|łBł MS-DOS  Windows ̃p[eBVgA
̓J[lW[Ƃ ramdisk hCog悤ɂ͂ȂĂ
ł͂Ȃł傤H ramdisk gɂ (́A1.3.48 ȍ~̃J[l
ł邱ƂOł) ̂悤ɂ܂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                                    


ɂ 2 MB  ramdisk ̈悪쐬A/mnt Ƀ}Eg܂
B

X: ǎ҂ kerneld (́A 2.2.x  2.1.x ȍ~̃J[lg
ĂȂ炻̌pł kmod) găJ[lW[[h
ꍇAramdisk ̈悩sXg[Wւ̃Rs[I܂
ramdisk ̃}EgĂ͂܂Bramdisk ̈̃}Eg
ƁAkerneld ̓W[ (莞Ԍoߌ) A[hł
ƎvĂ܂AɎۂɃA[hĂ܂ƁAramdisk ̃
̈̓J[l̑̕ɍėpĂ܂āAJăf[^̕
₵ԂSʂɂȂĂ܂łB

Zip  Jaz, LS-120 Ƃ[ouuĂȂAXL[
p[eBV̒uꏊƂĐ񗘗pĂBĂȂꍇ
Atbs[ł܂傤B

ɕKvɂȂ̂́Ap[eBVfoCXォKvȃf[^ǂݏo
vOłBƂȂ dd łôłAłႦ΁Ap[
eBV 600 MB ڂ 800MB ڂ܂ł̗̈ǂݏoƂ悤ȏ
Add ͍ŏ 600 MB ̗̈𖳎łAǂĂǂݍ
Ă܂̂łBȃfBXNgĂꍇłAɂ͂Ȃ
Ԃ|܂B̐U镑ȂƂ悤ƂāA҂́Ap[eB
V̓rɂ̈K؂ɓǂݏołvO쐬܂B
fsgrab ƂÕvOłB̃vÕ\[XpbP[ẂA
҂̃EFuTCg <http://pobox.com/~aaronc/tech/fsgrab-1.2.tar.gz> 
Metalab <http://metalab.unc.edu/pub/Linux/utils/file/> (Ƃ̃~[T
Cg) ɂ܂Bǎ҂̕@gĂ̂Ɖ肵āA
́Aǎ҂ fsgrab Ă̂ƂĐ܂B

A悤ƂĂt@C̑傫ǂ 12 fBXNubN
𒴂Ȃꍇ (1 fBXNubN͒ʏ 1 Kb ł)Afsgrab ͕svł
B

fsgrab Kv_E[hƃrhCȏꍇ́A fsgrab ̃R}h
C dd ̃R}hCɒučlĂBႦ΁Afsgrab
̃R}hCȉ̂悤ȏꍇA


  fsgrab -c count -s skip device                                    


ɑ dd ̃R}hC (炭Ԃ]Ɋ|
) ɂ悤ɂȂ܂B

 

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

 

ňꉞxĂ܂Bfsgrab vÓA҂̂Ƃł͊ɋ@
\܂Aǎ҂̂Ƃłǂ̂悤ȐU镑悤Ƃ҂͈ؐӔC
𕉂܂Bۂ́AƐ݌vꂽvOł͂ȂAȂ
Ȃ̂ɂ܂BƐӂɊւڍׂ́AvOt
 COPYRIGHT t@CɋLڂꂽ "No Warranty" ̏͂ (the
GNU General Public License ł)B

 

8. 폜 i-node 

ɓނׂ菇́At@CVXe𑖍āAǂ i-node ŋ߉
ꂽ̂𒲂ׂ邱ƂłB̍Ƃsɂ debugfs g܂B
debugfs Ƀt@CVXeۑĂfoCX̃foCXt@C
tċNĂB


  # debugfs /dev/hda5                                               


i-node 𒼐ڕύXꍇ́A-w IvVtăt@CVXe
݂̏ł悤ɂ܂B


  # debugfs -w /dev/hda5                                            


폜 i-node T߂ debugfs ̃R}h lsdel łBvv
g玟̂悤ɑłłB


  debugfs:  lsdel                                                   


fBXNuւ̃ANZX΂炭ŁA i-node ̃Xg
pCvA($PAGER Őݒ肵) y[Wɕ\܂B̃Xg
ʂ̏ꏊɕۑꍇAless gĂȂA-o IvV̌
o̓t@Cw肵܂B less ȊOgĂȂAo͂ʂ̏ꏊ
ɑKv܂B̂悤ɂĂB

 

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

 

ŁA폜At@CTCYAt@C^CvAp[~bV̐l
At@CL҂Ȃǂ̏񂾂ɊÂāAt@CǂȂ
Ȃ΂Ȃ܂B^ǂAܕقǑOɍ폜傫ȃt
@Cł΁ArIȒPɌƂłł傤B
łȂ΁AXg݂ԂɂĂ܂傤B

\ȂAi-node ̃XgvgAEg邱Ƃ߂܂B
̂ƊyɂȂ܂B

 

9. i-node ̏ڍׂ𒲂ׂ

debugfs ɂ stat R}hAg i-node ̏ڍׂ\
Ƃł܂BXgɂ邻ꂼ i-node ɑ΂ stat R}
hsĂBႦ΁Ai-node ԍ 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                                                                


t@C񂠂ȂAL̎葱Ƃv
ł傤Blsdel ō쐬Xg lsdel.out t@CɓĂ
ƂȂA܂̂悤ɂ܂B


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


ɂč쐬ꂽ inodes t@Cɂ́Aׂ i-node  i-node
ԍsɂЂƂLqĂ܂B̏t@Cɕۑ
̂́A̕X֗łBĎɁAȉ̂悤ɂ܂B


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


ȏ stats t@CɁAstat R}h̏o͌ʂSċL^܂B

 

10. f[^ubN̕

ł̎菇́A悤Ƃt@C̑傫 12 fBXNubN
ȉł邩ۂɂāAɊȒPɂȂAtɖʓ|ɂȂ蓾܂B

 

10.1. ȃt@C

t@C̃TCY 12 ubNȉȂAt@C̃f[^ێĂ
ubNio[ׂ̂ĂAo i-node ̒ɏ܂Ă܂B
 i-node ɑ΂ stat sƁAubNio[𒼐ړǂݏo
Ƃł܂B debugfs ɂ́ȀR}hg
܂Ă܂BO͂ŎグłgĐ܂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                                                                


Lt@C 6 ̃ubN琬藧Ă܂B12 ubNƂ
xȉȂ̂ŁAdebugfs R}hgẴt@Cʂ̏ꏊAł
/mnt/recovered.000 ɏoƂł܂B


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


 fsgrab R}hłl̏\łB fsgrab ̏ꍇ́A
̂悤ɂ܂B


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


debugfs ł fsgrab łA /mnt/recovered.000 ̖ɕsvȏ񂪕t
Ă܂܂AS͂܂B̗]ȏ菜ɂ
A i-node  Size tB[hɂloA̒l dd R}h
bs IvVɎw肷̂łȒPł傤B


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


At@C\ĂfBXNubN̂́Aɏ㏑
Ă܂Ă邩܂B̏ꍇ͉^Ƃ
B̃ubN𕜋邱Ƃ͕s\łB(p[eBV΂₭
umount łۂ̕ڂłB)

 

10.2. 傫ȃt@C

t@C̃f[^ 12 ubNȏ゠ꍇ́AƖʓ|łB
A悸 UNIX ̃t@CVXeǂ\ɂȂĂ̂኱
ĂKv܂Bt@C̃f[^́AuubNvƌĂ΂
PʂɕăfBXNɕۑĂ܂B̃ubNɂ́A
ɔԍtĂ܂B܂At@Ćui-nodevƂ
Ai-node ɂ̓t@CL҂p[~bVAt@C^Cv̏񂪋L
ڂĂ܂BubNƓ i-node ɂɔԍUĂ܂
A̓̃V[PX͑Sʂ̂̂łBfBNgGǵAt@
C i-node ԍƂȂ܂B

ꂾł́AJ[l̓fBNgGgɑΉf[^
邱Ƃo܂B䂦 i-node ɂ́Â悤ɁAt@Cf[
^̃ubN̈ʒuɊւLڂ悤ɂȂĂ܂B

 

 E 12 f[^ubÑubNԍ́Ai-node ɒڋLڂĂ܂
    B̃fBXNubŃAڃubN(direct block) ƌĂ΂
    Ƃ܂B
   
 E i-node ɂ́AԐڃubN(indirect block) ̃ubNԍЂƂL
    ڂ܂B̊ԐڃubNɂ́AڃubN𒴉߂ 256 ub
    ÑubNԍLڂĂ܂B
   
 E i-node ɂ́AdԐڃubN(doubly indirect block) ̃ubNԍ
    ЂƂLڂ܂BdԐڃubNɂ́AL̊ԐڃubN
    ߂ 256 ̊ԐڃubNLڂĂ܂B
   
 E i-node ɂ́AOdԐڃubN(triply indirect block) ̃ubNԍ
    ЂƂLڂ܂BOdԐڃubNɂ́AL̓dԐڃubN
    𒴉߂ 256 ̓dԐڃubÑubNԍLڂĂ
    B
   
 

ȏxǂłBmɂ₱łAɏdvłB

݁Ao[W 2.0.36 ȍ~ׂ̂ẴJ[lł́At@C폜
ۂɊԐڃubN (ѓdԐڃubNȏ) ׂă[Ă܂
ɂȂĂ܂B䂦A12 ubNȏ̃t@C̏ꍇAt@C
e̕ǂ납AKvȃubNԍoۏ؂炠܂B

܂̂Ƃ뒘҂ǂ蒅B̕@́Ãt@C̃f[^t
OgɘAĕłƉ肵āAƂsĂ݂Ƃ
ƂłBtOgĂ܂Ăꍇ͔ɂłBtO
gĂȂƉ肷ȂAf[^ubN̕ѕɂ (t@C
̃f[^ubNɑΉ) ̂悤ȃp^[l܂B

0  12 ubN
   
    q悤ɁAubNԍ́Ai-node ɋLڂĂ܂B
   
13  268 ubN
   
    ڃubN̂ƂɊԐڃubNЂƂǍ 256 ̃f[
    ^ubNт܂B
   
269  65804 ubN
   
    LlA12 ̒ڃubNAЂƂ (sv) ԐڃubNA
     256 ̃ubNт܂B̌ɁAЂƂ (sv) dԐ
    ubNAɂЂƂ (sv) ԐڃubN 256 ̃f[
    ^ubNƂgݍ킹 256 g܂B
   
65805 ubNȏ
   
    ` 65804 ubN܂ł̕т͏LƓlłB̌ɁAЂƂ
    (sv) OdԐڃubNA 256 ǵudԐڃV[P
    Xv܂BdԐڃV[PX́A(sv) dԐڃubN
    ƂǍɂЂƂ (sv) ԐڃubN 256 ̃f[^u
    bNƂgݍ킹 256 gтɂč\܂B
   
Aŉ肵f[^ubÑubNԍƂĂA
̒głf[^̂̂ĂȂƂۏ؂͂܂
BɁAt@C傫Ȃ΂ȂقǁÃt@C(Ȋ
`) Ȃ炩̃tOe[VNɁAt@CVXe
܂Ă\͏Ȃ܂B

ӂĂق̂́A̕ł͂܂ŃubNTCYWI 1024
oCgłƉ肵ŐĂƂƂłBubNTCY
ȏɐݒ肵ĂꍇAq͕̐ω܂BɁAX̃ub
Nԍ 4 oCgȂ̂ŁA"ubNTCY/4" ́AX̊ԐڃubN
ubNԍ̐ƈv܂B䂦AL̐ 256 Ƃ
ꂽƂ́AK "ubNTCY/4" ɒuĂBuKv
ubN̐v̋Eς邱ƂɂȂ͂łB

ł́A傫ȃt@C̕Ă݂܂傤B


  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                                                               


Lt@CtOgĂȂ\́A悤Ɏv
܂B i-node ɃXgAbvĂ` 12 ubN (͂
ׂăf[^ubNł) ͊mɘAĂ܂B܂̃ubN
邱Ƃn߂܂傤B


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


ŁAi-node ɃXgAbvĂ鎟̃ubNAȂ킿 8326 ͊
ڃubNȂ̂Ŗł܂Bɂ̊ԐڃubNɑ 256 ̃f[
^ubNAĂƐM܂傤 (8327 Ԃ 8582 Ԃ܂łł)B


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


i-node ɕ\LꂽŌ̃ubN 8583 łBł܂At@C
f[^ubNAĂ̂Ƃ݂Ȃ܂BLŏoŌ̃f
[^ubŃA8327 + 225 = 8582 ԂłB 8583 ubN͓d
ڃubNȂ̂Ŗł܂BẴubŇɁAԐڃubN
(͖) ɑ 256 ̃f[^ubN 256 g킯łB
΂₭vZƁÃR}hłׂƂƂɂȂ܂Bd
ԐڃubN 8583  (炭) ̂ɂԐڃubN 8584 ̓X
LbvāAf[^ubNł 8585 n߂Ă_ɒӂĂ
B


  # 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           


L܂Ƃ߂ƁA܂ł 12 + (7 * 256) ̃ubNAȂ킿 1804
̃ubNoƂɂȂ܂Bi-node  stat R}hŒׂ
ʂ́A'blockcount'  3616 ƕ\Ă܂BcOȂA̕\
Lł̃ubN (UNIX ł̓`p) 512 oCgŌvZĂ
̂ŁAۂ 1024 oCgŌvZ 3616/2 = 1808 ubNƂ
ɂȂ܂B܂A 4 ubNȂƂƂłBŌ
oꂽubN 10125 Ԃł̂ŁAēx܂łƓlɁAԐ
ubN(10126 )XLbvāAŌ 4 ubNo܂
B


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


ȏŁA^ǂ΁At@CŜ𕜋邱ƂɐƂɂȂ
B

 

11. i-node 𒼐ڂ

̕@́A\ʓIɂ́AقǂƊȒPłBȑOGꂽ
ʂA 12 ubNȏ̑傫ȃt@Cɑ΂Ă͖ɗ܂B

t@Cꂼɑ΂āAusage count  1 ɐݒ肵Adeletion
time  0 ɐݒ肵܂Bɂ debugfs  mi (modify i-node) R}h
g܂BƂāA܂łƓA i-node 148003 gāAi-node
̕ύX܂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]                             


LŁA҂ deletion time  0 Alink count  1 ݒ肵A
ÕtB[hł͂̂܂܃^[L[܂Bt@C
񂠂ꍇA̕@͊mɂƖʓ|ł͂܂A܂
ƂȂƎv܂B@邾Ǝv̂ȂA킢uS~
vACRt̃OtBJ "Iy[eBOVXe" ̕Ƃ
ɎgĂ͂ł傤B

ƂŁAmi R}h̏o͂ɂ́ACreation time ƂtB[h
B̓E\ł! (ȂƂ̑fłB) ۂɂ́AUNIX t@C
VXeł̓t@C̍쐬m邱Ƃ͂ł܂B\ stat ̃
oł st_ctime ́Ai-node ̍XVԂ̂łB܂ i-node 
̉炩̏񂪍ŌɕύXꂽĂ킯łBƁA܂A
̘b͂܂ŁB

҂L̗Ŏg debugfs Vo[Wgꍇ́A
ŎtB[ĥȗ邩Ȃ̂ŒӂĂ
(ɁAReserved1  fragment tB[h (̂) ͏ȗ悤
ł)B

i-node ̕ύXς񂾂Adebugfs IāAȉ̂悤ɂĂB


  # e2fsck -f /dev/hda5                                             


ɂ͎̂悤ȈӖ܂BȂ킿A폜Ă̂̃t@
C͊ɕʂ蕜Ă̂łA܂fBNgGgɂ͕\
ȂԂłBe2fsck vO͂̏ԂoāÃt@C
VXe /lost+found fBNgɌX̃t@C̃fBNgG
gǉ悤ɂȂĂ܂B (ăp[eBVʏ /usr
Ƀ}EĝƂƁAt@CVXeɃ}Egꂽۂ
At@C /usr/lost+found Ɍ킯łB) ܂ŗ΁A
Ƃ͂̃t@C̒gt@CoāÃt@Ct@C
VXec[̓K؂ȏꏊɖ߂łB

e2fsck sۂɂ́Ae񂪏o͂ƓɁAǂ̃_[WC
ׂ̎₪\܂B"summary information" ͕ύX
i-node Ɋւ鎖\ꂽꍇ́Aׂ yes œĂB
ȊO̎ɂĂ͓ǎ҂̔fɂC܂Aʏׂ͂Ă̎
yes œĂقłBe2fsck R}hIAt@CV
Xeă}Egł܂B

́Ae2fsck găt@C /lost+found ɏoȊO̕@
܂Bdebugfs g΁Ãm[hɑ΂郊Nt@CVXe
ɍ쐬ł̂łBi-node ύX debugfs 쐬邱Ƃ\
Bi-node ύXŁAdebugfs  link R}hg܂B


  debugfs:  link <148003> foo.txt                                   


ɂāAdebugfs R}hƔffBNg
foo.txt ƂÕt@C쐬܂B foo.txt Ƃt@C
Aǎ҂̋߂Ăt@CƂȂ͂łB̏ꍇłAe2fsck 
gāAsummary  block count CKv܂B

 

12. Iɂ͂ƊȒPɂȂł傤H

Ȃ܂BAɂȂĂĂƒ҂͍lĂ܂BA
ǐ悤ɁÄ݂ŃJ[l (2.0.x V[Y) ł́Ai-node 
ԐڃubNԍ̓t@C̍폜Ƀ[ɖ߂Ă܂܂B
 2.1.x V[Y̊JŃJ[l 2.2.x ̈ŃJ[lɂ͓Ă
܂܂BĂ 1999N22Ȃ̂łAOɃJ
[l 2.2.1 [XꂽƂłB1, 2 J΁ALinux x_
[ 2.2.x J[lgfBXgr[V͂߂ł傤
B

ŃJ[lŊԐڃubNɔ΁A҂蓮
i-node 邱Ƃɔ΂Ă_̑܂BɁA
debugfs t dump R}h傫ȃt@Cɑ΂ĎgpA
ȒPȑ̕c[gƂƂ\ɂȂł傤B

 

13. ÃvZXc[͂ȂłH

邱Ƃ͂܂BcOȂ炻ɂ́A蓮 i-node 
Ɠ肪܂B܂AԐڃubÑf[^𕜋łȂȂ
łBOq悤ɁA͉炸ɂȂȂȂ邩
̂ŁAłvOƒ߂Ă݂鉿l͂܂B

҂́Ae2recover Ƃc[쐬܂B Perl ŏꂽA
Iɂ fsgrab ̃bp[łBԐڃubÑubNԍ[ɂ
Ă܂ꍇłt@C舵悤Hv炵ĂAtO
e[VȂ΁Aɂ悢ʂ炷Ǝv܂B܂
t@C̃p[~bV (щ\Ȃt@CL҂ɂĂ)
𐳂ݒ肵Aꂽt@C̃t@CTCYƈvĂ邩
ۂmF܂B

e2recover ́Ảׂ̕ł̂߂ɍ쐬܂B܂荡
̂ƂAe2recover p̏ڂ́A̎̉̍̕ۂɋLڂ
߂ǂĂȂƂƂłBA͂ƂāAł
e2recover ͖ɗ͂łB_E[hꍇ͒҂̃EFuTCg
<http://pobox.com/~aaronc/tech/e2-undel/> gB߂
Metalab _E[hł悤ɂȂƎv܂B

Scott D. Heavner ́AldeAȂ킿 the Linux Disk Editor ̍҂łB
́AoCifBXNGfB^łƓɁA debugfs ̑փc[Ƃ
 ext2  minix t@CVXeA xia t@CVXe
Ƃł܂ ( 2.1.x  2.2.x J[lł xia ̃T|[g͑ł
Ă܂)BāAt@C̈ÃubNHAfBXN
肵āAt@C̕Ƃ菕@\tĂ܂B
At@CVXe̊{IȊTOqׂǎ̕ƁA̍ۂ̃c[
̎gqׂՂƂYtĂ܂Blde ̃o[W
2.4 ́AMetalab <http://metalab.unc.edu/pub/Linux/system/filesystems/
lde-2.4.tar.gz> ₻̃~[TCgAэ쐬҂̃EFuTCg <http://
www.geocities.com/CapeCanaveral/Lab/7731/lde.html> ł܂B

ЂƂ̕@ƂāAGNU Midnight Commander, mc ܂B̓t
XN[̃t@CǗc[łA҂̒mA 'NC' ƌĂ΂
Ă MS-DOS vOx[XɂȂĂ܂Bmc ́ALinux R\[
 xterm ł̃}EXT|[gAɉzt@CVXe
邱ƂŁAtar t@CɃfBNgړƂgbN
\ɂȂĂ܂B̉zt@CVXe̋@\̂ЂƂƂāAext2 
̃t@C̕܂Bg₷͔QłBAۂ̂ƂA
Ҏg͎gĂ͂܂BÂǂ̃VFR}ĥقD
łB

@\gɂ́AvO --with-ext2undel IvVt
configure sKv܂B܂ e2fsprogs ɕtJpC
uƃCN[ht@CKvɂȂ܂BDebian GNU/Linux <http://
www.debian.org/> ɓĂ mc ́A\߂̃IvVtŃrh
Ă܂B̃fBXgr[Vł炭Ǝv܂
BvÕrhς񂾂Amc  cd undel:/dev/hda5 Ɩ߂āA
t@C̈ꗗ邱Ƃł܂B̑̕c[lAmc 
[߂ꂽԐڃubN肭܂BʂɁA傫ȃt@C
` 12k łȂƂ܂B

ŐVo[ẂAthe Midnight Commander  ftp TCg <ftp://
ftp.nuclecu.unam.mx/Midnight/devel/>_E[hł܂B

 

14. Ƃ

߂̎ԂƁAɒlgsbNA̕IɍX
VĂƎvĂ܂B܂A҂͓ǎ҂̃Rgؖ]
Ă܂B͂ƕՂȂȂAȒPɉ@͂
AVc[oĂȂXA̕ fsgrabA
e2recover c[Ɋւb肪΁A <aaronc@pobox.com> ܂Ń[
肭B

 

15. Credit ƎQl

        lĂƂȂÁA         
        ľ̏ɗĂ邩炾B                         
                                                                       
                                                 --Isaac Newton        

 mini-HOWTO ́ARobin Glover <swrglovr@met.rdg.ac.uk< 
comp.os.linux.misc ɓeLɂĂ܂Bނ̃ACfAƂ
 mini-HOWTO 邱ƂĂꂽ Robin Ɋӂ܂B

܂ŁA{ɂĒ҂Ƀ[𑗂ĂꂽׂĂ̐lɂA
xӂ܂B܂̃RgāAvłB

ȉɁAQlЉ܂B

 

 E Frisch, Aelenn (1995), Essential System Administration, second
    edition, O'Reilly and Associates, Inc.. ISBN: 1-56592-127-5
   
 E Garfinkel, Simson, Daniel Weise and Steven Strassmann (1994), The
    Unix-Haters Handbook, IDG Books, ISBN: 1-56884-203-1. ̑̕
    ́AuṽIy[eBOVXe Unix ƗD
    ĂllɂAq݂킲ƂɂAc̑唼
    A GNU ̂悤ȏô[UԂĂꍇɂ͑SĂ
    ܂ȂƂ΂łBƂ͂AȂLq̒ɂA
    Ȃ킯ł͂܂BႦ΁AUnix ł̃t@C̍폜ǂ
    ǈՂɍs꓾邩ɂĂ̋c_́Aǂނɒl܂B
   
 E Glover, Robin (31 Jan 1996), HOW-TO : undelete linux files (ext2fs/
    debugfs), comp.os.linux.misc Usenet posting. 
   
 E 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. Second edition, 1998.
   
 

 

16. @IȎ

Wׂ͂āAꂼ̏L҂̌ێĂ܂BɁA

 

 E MS-DOS  Windows ́AMicrosoft <http://www.microsoft.com/> ̏W
    łB
   
 E UNIX ́Athe Open Group <http://www.opengroup.org/> ̏WłB
   
 E Linux ́AUSA ̑̍ɂ Linus Torvalds ̏WłB
   
 

́̕ACopyright (c) 1997, 1999 Aaron Crane <aaronc@pobox.com> 
쌠ێĂ܂B̔̕ЕzɂẮA̒쌠\̂
܂߂SŜƂāARɔЕz邱Ƃ܂BẢ
ς́A҂ Linux Documentation Project  HOWTO R[fBl[^
̋ȂsȂłB]pړIŁA̋͂̕
𒀌Iɕ邱Ƃ͔F߂Ă܂B̏ꍇA̕ɍ
ApK؂ɕ\Ȃ΁A̒쌠\LڂKv͂
B

̕Rs[^p̔}͈̂}̂Ŕ̔悤ƂꍇA
Ҏg Linux HOWTO R[fBl[^ɂ̌vOɒm点Ă
]܂BA͂܂Ŋ]łB

݂ Linux HOWTO R[fBl[^́ATim Bynum <
linux-howto@metalab.unc.edu> łB

 

17. {ɂ

뎚EEE󓙂 <JF@linux.or.jp> ܂łm点B

|F gp <kikkawa@m.u-tokyo.ac.jp> (1997/10/16)
ZF 앐Y                                       
       eJ                                         
XVF UTi <ysenda@pop01.odn.ne.jp> (2001/09/11) 
ZF 앐Y <nakano@apm.seikei.ac.jp>             

