  Large Disk HOWTO
  Andries Brouwer, aeb@cwi.nl 
  v2.2j, 12 September 1999
  {  hiramoto@nanako.or.jp 
  2000N218쐬

  fBXÑWIg1024V_ׂ̂āB

  ̍̕ŐVo[ẂA www.win.tue.nl QƂĂB (
  : IWỉpł̂ƁB{ł̍ŐVo[WɂĂ
  www.linux.or.jp QƂĂ)

  1.  

  Ⴆ΂Ȃ 1024 V_𒴂fBXNĂƂ܂傤B
  ̏゠ȂfBXN I/O ̂߂ɌÂ INT13 BIOS C^[tF[X
  g OS ĂƂ܂傤B͖łBȂȂÃC^
  [tF[X I/O 쎞̃V_w 10 rbg̃tB[hg
  ŁA 1024 Ԉȍ~̃V_ɂ̓ANZXłȂ̂łB (: 2^10 =
  1024)

  KALinux  BIOS g܂̂Ŗ肠܂B

  ܂A̓_ĂłB

  1. VXeNɂ Linux ͂܂ғĂ܂̂ŁA BIOS 肩
     ܂B LILO ₻ɗނu[g[_ɂƂĖ
     ɂȂ܂B

  2.  OS ň̃fBXNg܂킷ꍇAǂɃp[eBV
     ̂Aꂼ OS cĂȂ΂Ȃ܂B
     ƁALinux  DOS ̃fBXNŎgpꍇA҂͓
     @Ńp[eBVe[u߂Kv܂B
     Linux J[l fdisk ɂƂĖɂȂ܂B

     ȉɁA֘Ȁڍׂ܂BȂA̓J[l̃o[W
     2.0.8 QƂĂ܂B̃o[Wł͏Ⴄ܂
     B

  2.  v

  VeʃfBXNpӂ܂Bǂ΂񂵂傤?  A\
  tgEFAIɂ́Afdisk (cfdisk ̕悢) Ńp[eBV쐬
  Amke2fs Ńt@CVXeA mount ŐVt@CVXe
  t@CKwɒǉ΂łB

  ŋ߂ł͑eʃn[hfBXNɂĖɂȂ邱Ƃ͂܂̂ŁA
  HOWTO ǂޕKv܂ł傤B̂悤Ɏv̂̑啔
  ́Aeʃn[hfBXNgpŖɂȂ邾낤ƎvŃfB
  XN}l[WCXg[A fdisk ̃GLXp[g[hɂ
  AIɃfBXÑWIg LILO J[l̃R}h
  CŎw肵肷邱ƂɂĈN܂B

  AT^IȖ͈ȉ̂悤Ȃ̂łB

  1. Ẫn[hEFAgĂ

  2. fBXNɂ OS ڂ

  3. N(XN)

     AhoCX:

  e SCSI fBXNɂ: Linux ͂Ɛ̂T|[gĂ܂B
  ʂȂƂKv͂܂B

  (8.4GB z悤) e IDE fBXNɂ: ŐV̈ŃJ[l
   (2.0.34 ȍ~)gĂBʏ͂ꂪԂłB
  ɁABIOS  LBA Ȃǂ̃fBXN (WIg) ϊvȂƂ
  ȑIł悤ȏꍇɂ́B

  (33.8GB z悤) ƂĂeʂ IDE fBXNɂ: q
  ``34GB zfBXNł IDE ̖'' QƂĂB

  N LILO nOAݒt@C /etc/lilo.conf 
  ``linear'' w肵ĂB

  J[l/LILO/fdisk ɖIɃWIg^邱Ƃɂ悤
  ȃWIg̖ł邩܂B

  Â fdisk gĂāAp[eBVdȂĂ(``overlapping'')
  Ƃxo: x͖邩Acfdisk gĂ(
  悢)B

  fBXÑTCYςƎv́AiƏ\i ``P'' 
  ȂmFĂBāA󂫗̈𒲂ׂ邽߂ df gp
  ́A df ͊Ǘ̃I[o[wbĥ߂ɋ̃fBXNłp[eB
  VTCY萔p[Zgl񍐂邱ƂoĂĂ
  B (: ڍׂ ``uȂ: df  fdisk ̕p[eBV
  傫v'' ̏͂QƂĂ)

  Ał܂肪Ǝv̂Ȃ΁A邢͂ȂP
  ɒm肽Ȃ΁AȉǂłB

  3.  PʂƃTCY

  1LoCg (kB) = 1000oCgB 1KoCg (MB) = 1000 kBB 1MKoC
  g (GB) = 1000 MBB 1eoCg (TB) = 1000 GBB SI PʌnłB
  A1 MB = 1024000oCgKp 1.44 MB tbs[ƕ\
  A 1 MB = 1048576oCgƍll܂B̕ł́Ai@̕
   Ki, Mi, Gi, Ti ƕ\āAWƂ܂BƁAtbs
  [ 1440 KiB (1.47 MB, 1.41 MiB) ƂȂA 1 MiB =       1048576 oC
  g (1.05 MB) 1 GiB =    1073741824 oCg (1.07 GB) 1 TiB =
  1099511627776 oCg (1.1  TB) ƂȂ܂B

  ܂ƂɁAfBXNhCũ[J SI Pʌnɏ]\i@
  gĂ܂BALinux ̋NbZ[W₢ fdisk ̂
  ȃvO͓i@\邽߂ MB  GB ƂV{gp
  ĂAi@Ə\i@፬ɂȂĂ肵܂BāAȂ
  fBXN𔃂ɕ\LĂeʂۂ̗eʂ̕ƍl
  OɁA܂\i@(܂͒PɃoCgPʂ)ۂ̃TCYvZĂ
  ĂB

  iPʂ̐pȗ`ɊւẮA Knuth ɑĂ܂B KKB,
  MMB, GGB, TTB, PPB, EEB, ZZB, YYB ƋLqāA[W LoCg(large
  kilobyte), [W KoCg(large megabyte), ... [W ^oC
  g(large yottabyte( ƓǂނƂ̂łBނ͂̂悤ɏĂ܂:
  udɂĂ̂́AiƂƁA (: 10ił̒l
  )傫ÎĂ̂łv͂悢Ăł - u[WMKo
  Cg (large gigabyte)v́uMroCg (gibibyte)v蔭₷ł
  BȂAX̖ړÎ߂ɂdvȂƂ́AKoCg
  (megabyte) 傤 1000000 oCgł邱Ƃ邱ƂŁA
  ̂ƂӖ̂ȂΑ̗pȗ`KvłƂƂ
  B

  3.1.  ZN^TCY

  ̕ł̓ZN^ 512 oCgłB͑̏ꍇ͐^łA
  炩 MO fBXN 2048 oCg̃ZN^TCYgpĂ̂ (
  : 640MB  1.3GB(GIGAMO)  3.5 C` MOEPDEDVD-RAM ȂǂY
  ܂)Aȉ̐ɂĂ͎ۂ̗eʂ 4{ɂčlKv
  B (̂悤ȃfBXN fdisk gp鎞́Ao[W 2.9i 
  ȍ~gpA `-b 2048' IvV^Ȃ΂Ȃ܂)

  3.2.  fBXNTCY

  C V_AH wbhAS ZN^gbÑfBXŃAŜ C*H*S Z
  N^AC*H*S*512 oCgi[邱Ƃł܂BႦ΁AfBXN
  ̃x C/H/S=4092/16/63 ƏĂÃfBXN
  4092*16*63=4124736 ZN^A 4124736*512=2111864832 oCg (2.11
  GB) i[邱Ƃł܂B 8.4GB eʂȃfBXNɂ
  C/H/S=16383/16/63 ^ƂHƋKi (industry convention) 
  ̂ŁÂ悤ȃfBXÑTCY͂͂fBXN񍐂ꂽ C/H/S
  l͓ǂݎ邱Ƃ͂ł܂B

  4.  fBXNANZX

  fBXNɑ΂ĉǂݏ邽߂ɂ́AႦ΃ZN^ubN̔
  ^Ȃǂ̕@ŁAfBXN̈ʒuw肷Kv܂BfB
  XN SCSI fBXN̏ꍇ͂̃ZN^ԍ͒ SCSI R}hɂ邱
  ƂłAfBXN͂𗝉܂BfBXN IDE fBXN  LBA
  gpĂꍇ SCSI ̏ꍇƂ܂ɓ@łBfBXN
  ÂARLL  MFM ALBA ȑO IDE 肷ꍇ́AfBXN
  ̊]̈ʒuw肷邽߂ɁAfBXÑn[hEFA(V_Awb
  hAZN^)O̒lv܂B

  jAioOƂ̎O\L̑Ή͎̂悤ɂȂĂ܂: C V
  _ H wbh S ZN^gbNfBXNɂƂāAO܂
  CHS \Lɂʒu (c,h,s) ́AjA܂ LBA \Lɂʒu c*H*S +
  h*S + (s-1) ƓłB (}CiX 1 闝ŔA̎O\Lł͓`
  I 0 ł͂Ȃ 1 ZN^𐔂n߂邩ł)

  䂦AƂĂÂ SCSI fBXNɃANZX邽߂ɂ́ÃWI
  gA܂ C,H,S ƂlmĂKv܂B

  4.1.  BIOS ɂfBXNANZX 1024 V_

  Linux  BIOS gĂ܂񂪁A̑̃VXe͎gĂ
  B LBA ȑO BIOS ́A͂Ƃ (c,h,s) v INT13 Ƃ
  fBXN I/O [`񋟂Ă܂B (萳mɂƁAAH (
  WX^)Ŏst@NVA CH ŃV_̉ 8rbgA
  CL  7-6 rbgŃV_̏ 2rbgA5-0rbgŃZN^A
  DH ŃwbhA DL ŃhCuio[(80h  81h)w肵
  B̓p[eBVe[u̐݌v̏͂ŐĂ܂B)

  āA10 rbg̃V_A8 rbg̃wbhA 6 rbg
  gbNZN^(1-63 ̒lƂ)Ȃ 3 oCg CHS ̓GR[h
  ܂B܂V_ 0  1023 ̒lƂ邱ƂłA 1024
  V_ BIOS ł͕\łȂƂƂɂȂ܂B

  DOS  Windows (: Windows95 ȑO Windows 3.1 )Ƃ\tg
  EFÁA LBA T|[g IDE fBXNꂽɂύX
  ł̂ŁAfBXNWIgKvƂ܂B́A(LBA
  g) ۂ̃fBXN I/O ̍ۂɂ(WIg) ͂KvłȂ
  ւ炸A BIOS ʂĂ̂݃fBXN I/O sĂłB
  ͂ɁÃfBXNgĂĂA BIOS Ɖb悤ȏꍇ⑼
   OS KvƂꍇɂ́A Linux WIgKvƂ邱ƂӖ
  ܂B
  ̏Ԃ 4N炢O܂őĂāA INT13 t@NVňȂ
  TCỸfBXN (܂ (c,h,s) ̂߂ 10+8+6=24rbgł 8.5GB 
  Ȃ) sɓoꂵAV BIOS C^[tF[XfUC
  ܂B͊g INT13 t@NVƌĂ΂A΃ubNŎn
  ܂ 8oCg܂ 16oCg̃fBXNAhXpPbg DS:SI w
  ̂łB

  Microsoft ̐E̊g INT13 t@NVɈڍŝ͔
  ɒxł (: Windows95 ȍ~ł͑ΉĂ܂)B炭ufBX
  NWIgvƂRZvg͂ƐN͕Kvł傤B

  4.2.  BIOS  IDE ́uǁv()̗j

     ATA dl (IDE fBXNp) - 137 GB ܂
        65536 V_ (0-65535 ͈̔)A16 wbh (0-15 ͈̔)A 255
        ZN^gbN (1-255 ͈̔) ܂ň܂Bčő
        267386880 ZN^̗eʂ(512 oCgPʂ)A 136902082560 o
        Cg (137 GB) ɂȂ܂B(1999N̎_ł)܂
        ͂ȂĂ܂񂪁AƐNɂȂ邩܂B

     BIOS Int 13 - 8.5 GB ܂
        1024 V_ (0-1023 ͈̔), 256 wbh (0-255 ͈̔), 63 Z
        N^gbN (1-63 ͈̔) ܂ň܂Bčő
        8455716864 oCg (8.5 GB) ɂȂ܂B͍ł͐[Ȑ
        ŁA DOS ł͍̑eʃfBXNgȂƂӖĂ
        B

     528 MB ̕
        BIOS Int 13 R[ IDE fBXN I/O ̗ɓ c,h,s ̒l
        gꍇA̐gݍ킳A 1024 V_E16 wb
        hE63 ZN^gbN܂łgpłAőeʂ 528482304
        oCg (528MB) ƂȂ܂Bꂪ DOS ƌÂ BIOS ̑gݍ킹
        鈫 504MiB ̕ǂłB 1993NɖƂȂAl
        Xׂ͂Ă̎ނ̂؂Ăɑi܂BȂ킿n[hEF
        A(LBA)At@[EFA(BIOSɂϊ)Aă\tgEFA(fB
        XN}l[W)łBuϊv̊TO 1994Nɂł܂
        : BIOS ́AhCuƉb鎞̃WIgƁAƂ͈ق
        AÚA DOS Ɖb鎞̃WIggAĂ 2
        Ԃŕϊs܂B

     2.1GB ̕ (1996N 4)
        ̌Â BIOS ł́AV_i[邽߂ CMOS RAM 
        ̃tB[h 12 rbgmۂĂ܂B̂߁A̐
        ͍őł 4095 ȉƂȂA 4095*16*63*512=2113413120
        oCgANZXłȂȂ܂BeʃfBXNڑ
        ɁAu[gɃnO肷Ƃeo܂B̐ɂ
        āA 4092/16/63 ƂWIgfBXNʓI
        Ȃ܂BčłÃfBXNhCu 4092/16/63
        Ɍ邽߂̃WpĂ܂B over2gb.htm QƂ
        ĂB̑ BIOS ̓nO͂܂񂪁A2.5 GB ̑
         429 MB Ƃ悤ɔɏeʂȃfBXNƂČoĂ
        ܂B (: ܂肱̗ł́AL 2113413120 Ŋ]
        fBXN̑eʂƂČoĂ킯ł)

     3.2 GB ̕
         Phoenix BIOS t@[EFA 4.03  4.04 ̃oOŁA
        3277 MB zeʂ̃hCuq CMOS ZbgAbvs
        VXebNĂ܂܂B over3gb.htm QƂĂ
        B

     4.2 GB ̕ (1997N 2)
        P BIOS ϊ (ECHS=g(Extended)CHSA΂ `Large disk
        support' ₠邢͒P `Large' ƌĂ΂܂)́Awbh 2{
        V_𔼕ɂƂA DOS 猩V_
         1024 ȉɂȂ܂ŌJԂ܂B DOS  Windows 95 
        256 wb_܂񂵁AʓIɃfBXN 16 wbhłƓ
        ̂ŁA͂܂肱̒PȃJjY
        8192*16*63*512=4227858432 oCg(ŨWIg 1024 V
        _E128 wbhE63 ZN^/gbN) ܂ł삵ȂƂӖ
        ܂B ECHS ̓ZN^gbN͕̐ύXȂƂɒӂĂ
        BĂꂪ 63 ł͂Ȃꍇ͐͂ƂȂ
        B over4gb.htm QƂĂB

     7.9 GB ̕
        ŏɃwbh 15 ɒ邱ƂŏL̂悤Ȗ (ECHS 
        KĂ)邱Ƃ̂ł鏭 BIOS ́Aɂ
         240 wbh܂ł̋ŨWIg𓾂邱Ƃł̂ŁA
        1024*240*63*512=7927234560 oCg܂ŗLƂȂ܂B

     8.4 GB ̕

        ŌɁABIOS \Ȍ̕ϊɐA 255 wbh 63 ZN^
        gbNg (`assisted LBA' 邢͒P `LBA' ƌĂ΂
        )A 1024*255*63*512=8422686720 oCg܂œBł܂B 8.5GB
        ̂ƎOłA 256 wb_̃WIg
        ΂ȂȂłB (̕ῗ܂AfBXNeʂ
        1024*H*63*512 Ɏ܂悤Ƀwbh H  16, 32, 64,128, 255 
        IсAɑeʂ (H*63*512) ŊăV_ C vZ
        B)

     33.8 GB ̕ (1999N 8)

        ̃n[h 33.8GB zTCYŖK܂B̖́Af
        tHg 16 wbh 63 ZN^gbNł́AV_ short
        int ɔ[߂邱ƂłȂ 65535 傫ɂȂĂ܂
        łBł́AقƂǂ BIOS ̂悤ȃfBXNȂ
        傤B (Ⴆΐɓ삷VtbV(ROM)̃C[W
        ɂ Asus upgrades QƂĂ) 2.2.14 / 2.3.21 
        Â Linux J[lł̓pb`KvłBq ``34 GB ̃fB
        XNɂ IDE ̖'' QƂĂB

  ̃gsbNɂĂ̂̑̋c_ɂẮA Breaking the Barriers
  QƂĂBɏڍׂɂẮA IDE Hard Drive Capacity
  Barriers QƂĂB

  8.4 GB zn[hfBXŃÃWIg 16383/16/63 Ɠ
  Ǝv܂B͗vɁuWIgvƂ̂xł
  ƂӖAfBXN̑eʂ͂͂WIg͌vZł܂B

  5.  u[g

  VXeu[gƁA BIOS ͈ڂ̃fBXN(܂̓tbs[
  CDROM)ZN^ 0 (MBR - Master Boot Record ƂĒmĂ)ǂ
  oAɂR[h - ʏ͉炩̃u[gXgbv[_ - փW
  v܂B̏ȃu[gXgbvvO͕ʂ͂ꎩg̃fB
  XNhCo͎ĂȂ BIOS T[rX𗘗p܂B́ALinux J[
  lŏ 1024 V_ɊSɎ܂Ă鎞̂݃u[g\ł
  ƂӖ܂B

  ̖͂ƂĂȒPɉł܂: BIOS ANZX\ȃfBXN - 
  炭ڂڂ̃fBXN - ̍ŏ 1024 V_ɊSɎ
  p[eBVɁAJ[l(ƁALILO ̃}bvt@Ĉ悤ɂ
  u[gAbv̍ŒɎgp邩Ȃ̃t@C) zu
  ΂̂łB

  āAJ[lp̗̈Ƃ 10 MB 炢̏ȃp[eBV
  Aڂڂ̃fBXN̐擪 1024 V_ɊSɎ܂
  ɍ쐬ĂB /boot Ƃă}EgA LILO ɃJ
  [lu悤ɂĂB

  5.1.  LILO  `linear' IvV

  ̒ӓ_́Au[g[_ BIOS fBXNWIgɂĈ
  vĂKv邱ƂłB LILO ̓WIgɂăJ[l
  ɖ₢킹܂AfBXNhCo̍҂̑命́A BIOS gp
  ł낤 LILO l̑ɁAp[eBVe[uWIg
  𓾂ƂȂ󂯌pł܂BāAJ[l狟
  WIg͂΂Ζɗ܂B̂悤ȏꍇALILO 
  `linear' IvV^܂傤B̌ʂ́Au[g[_̃CXg
  [ LILO WIgKvƂ (}bvɃjAAh
  X(: ̂ 24bit)i[)Au[gɃjAAhX
  ϊAƂ̂łB̂ꂪftHgł͂Ȃ̂ł傤?
  łˁAs̂ł: `linear' IvVt
  ƁALILO ̓V_mKvȂȂAăJ[l̈ꕔ
  1024V_zĊi[ĂxoȂȂA܂ɂ̓u[
  gȂVXeoďI\̂łB

  5.2.  1024 V_ 1024 V_ł͂Ȃ

  Tim Williams ͂Ă܂: u Linux ̃p[eBVŏ
  1024 V_ȓɍ쐬܂AłȂN܂łB1GB
  ȓɈړƓ܂BvǂĂȂł傤?  A
   AHA2940UW Rg[ɐڑꂽ SCSI fBXNŁÃRg[
  ̓t@[EFA BIOS ̐ݒIvVɈˑ H=64, S=32 (1V
  _ 1 MiB = 1.05 MB ɂȂ)A H=255, S=63 (1V_ 8.2 MB 
  Ȃ)̂ǂ炩gp܂BԈႢȂ BIOS O҂̐ݒɂȂĂāA
   1024 V_ 1 GiB ɂȂĂ܂B Linux ҂
  lgĂԂ LILO ͐ 8.4GB łƎvĂ킯łB

  6.  fBXNWIgAp[eBVAd(overlap)

  fBXNɂ OS ݂ꍇAꂼ OS ͈
  ̃fBXNp[eBVgp܂B̃p[eBV̕sv
  ͔jœIȌʂ炷Ƃ܂B

  MBR ɂ({)p[eBVǂɑ݂邩Lqp[eBV
  e[u݂܂B 4̊{p[eBV̂߂ 4̃e[u
  GgA͈ȉ̂悤ɂȂĂ܂B

       struct partition {
               char active;    /* 0x80: u[g, 0: u[gs */
               char begin[3];  /* ŏ̃ZN^ CHS */
               char type;
               char end[3];    /* Ō̃ZN^ CHS */
               int start;      /* 32 bit ̃ZN^ԍ (0 琔n߂) */
               int length;     /* 32 bit ̃ZN^ */
       };

  (CHS  V_/wbh/ZN^\܂B)

  ̏͏璷ł: 24rbg begin  end tB[hɂĂƁA
  32rbg start  length tB[hɂĂ̗ŁAp[eB
  V̈ʒu^Ă܂B

  Linux  start  length ̃tB[ĥ݂gp̂ŁA䂦
  2^32 ZN^܂ł̃p[eBV舵Ƃł܂B܂A2 TiB
  (= 2048 GiB) ̃p[eBVłB͌ݗpłfBXN 100
  {炢傫̂ŁA 8NԂ炢͑vł傤B (Ap[eB
  V͔ɑ傫ł܂B[Ȑ܂BRȐ
  32bit ̃n[hEFA(: Ⴆ CPU  Intel x86 ñ}V) 
  ext2 t@CVXeł́A 2 GiB ȏ̃t@C͍쐬łȂ̂
  B)

  DOS  begin  end tB[hgpAfBXNANZX̂߂ BIOS
  INT13 R[gp܂̂ŁA BIOS ϊgĂ 8.4GB ȉ̃fBX
  Nł܂B (FAT16 t@CVXe̐ɂAp[eB
  V 2.1GB 傫ł܂B) Ƃ Windows 3.11EWfWG
  (Windows for WorkGroup)E Windows NT 3.* ɂ܂B

  Windows 95 ͊g INT13 C^[tF[XT|[gĂAp[eB
  V̕@ŃANZXKv邱Ƃ߂̓ʂȃp[eB
  V^Cvg܂(b, 6, 5 ̑ c, e, f)B̃p[eB
  V^CvgĂꍇA begin  end tB[hɂ̓_~[̏
   (1023/255/63) i[܂B Windows 95 OSR2  FAT32 t@C
  VXe (p[eBV^Cv b ܂ c)A 2 TiB ܂
  ̃p[eBV쐬ł܂B

  ۂɂ͉Ȃ̂Ɂud(overlapping)vp[eBVɂ
  fdisk 炽킲Ƃ𕷂̂͂Ȃł傤?   - u
  v̂ł: DOS Ă悤ɁÃp[eBV begin  end
  tB[hꍇAꂪI[o[bvĂ̂łB (Ă
  ͐܂BȂȂ炻̃tB[h 1024 ȏ̃V_
  i[邱Ƃł܂ - 1024 V_ȏ̕gƁAɃI[
  o[bv̂łB) ALinux Ap[eBV^Cv
  c, e, f łp[eBV̏ꍇ Windows 95 Ă悤ɁA
  start  length tB[hꍇɂ́A͂܂肠܂
  BAcfdisk [Ă Linux łfBXNgȂ̂Ȃ
  ΁Ax͖ĂBDOS ƋLĂꍇ͒ӂĂB
  /dev/hdx ̃p[eBVe[uɂ cfdisk -Ps /dev/hdx 
  cfdisk -Pt /dev/hdx R}hgĂBB

  7.  ϊƃfBXN}l[W

  (wbhAV_AgbNƂ悤) fBXNWIg
  MFM  RLL ̎YŁA͕Iȃn[hEFA\𔽉fĂ
  B݂ł́AIDE ł SCSI łAfBXŃu{́vWIgɂ
  ċl͂܂Bۂ̂ƂA1gbÑZN^
  ςŁAfBXN̊O̕ZN^ȂĂ܂B܂A
  ӂɌ܂悤ȁu{́v 1gbÑZN^Ƃ݂̂͑
  ܂BƂ͂܂蔽΂: IDE R}h INITIALIZE DRIVE
  PARAMETERS (91h) ݂͌ł́Awbh 1gbÑZN^
  ꂾĂ邱ƂɂȂĂ邩fBXNɐݒ肷邽߂ɒ񋟂
  ܂B̑eʃfBXNۂɂ̓wbh 2ĂȂĂ
  BIOS ɑ΂Ă 15  16 wbhłƕ񍐂A܂ BIOS [U
  ̃\tgEFAɑ΂Ă 255 wbhƕ񍐂肷̂́A
  ʂłB

  [U[ɂƂčőPȂ̂́AfBXNɂ꒼ɃZN^ԍ
  ł(0, 1, ...)ƂăfBXN̂ǂɃZN^݂邩Ƃ
  Ƃt@[EFAɔC邱ƂłB̃jAioO LBA
  ƌĂ΂܂B

  TO͈ȉ̒ʂłB DOS ₢̃u[g[_ (c,h,s) \L
  g BIOS Ɖb܂B BIOS ́A[UgpŨWIg
  g (c,h,s)  LBA \Lɕϊ܂BfBXN LBA 󂯕t
  ́A̒lfBXN I/O Ɏgp܂BȂ΁AfBXNg
  ĂWIgg (c',h',s') ɕϊAfBXN I/O Ɏg
  ܂B

  `LBA' Ƃ\̎gpɂ邿Ƃ邱ƂɒӂĂ
  : fBXN̐\LqpƂĂȂ `Linear Block
  Addressing' (CHS AhbVŐt)Ӗ܂BBIOS ݒł̗p
  ĂȂ΁A΂ `assisted LBA' ƌĂ΂ϊӖ܂B -
  Oq ```8.4 GB ̕''' ĂB

  (: n[hfBXN)t@[EFA LBA 𗝉ȂǁA BIOS
  WIgϊ𗘗płꍇ́A悤ȂƂN܂B (BIOS
  ݒł͂͂΂ `Large' ƕ\܂B) ABIOS  OS ɃWI
  g (C,H,S) āAfBXNRg[Ƙb (C',H',S') 
  gƂ܂Bʏ S=S', C=C'/N, H=H'*N ƂȂ܂B N ́AC' <=
  1024 ƂȂł 2 ̏搔łB (́AC' = C/N Ƃۂ̊
  (؎̂)ɂĖʂɂȂeʂŏɂ邽߂łB) ɁA
  @ł 8.4GB (7.8 GiB) ܂ŃANZXł܂B

  (BIOS  Oڂ̐ݒIvV͒ʏ `Normal' ƌĂ΂Aǂȕϊ
  s܂B)

  BIOS  `Large'  `LBA' 𗘗płȂꍇ́A\tgEFAɂ
  @܂B OnTrack  EZ-Drive ̂悤ȃfBXN}l[W BIOS
  ̃fBXN䃋[`ĝ̂ƒu܂Bʂ́AfB
  XN}l[W̃R[h MBR ƂɑZN^ (OnTrack ł͂̃R[
  h DDO: Dynamic Drive Overlay ƌĂł܂) ɔzu邱ƂŎ
  ĂÂׂĂ OS ̑OɋN܂BfBXN}l[WC
  Xg[Ă鏊ŁA OS tbs[NƁA肪
  ܂B

  fBXN}l[W̌ʂ͑ꏭȂ BIOS ɂϊƓł -
  ɁAfBXNł̈قȂ OS 𓮍삳ƁAfBX
  N}l[WɗR鑽̃guN\܂B

  Linux  OnTrack Disk Manager ̃o[W 1.3.14 ƁA EZ-Drive 
  o[W 1.3.29 T|[gĂ܂Bڍׂȉɏqׂ܂B

  8.  IDEfBXN̂߂̃J[lł̃fBXNϊ

  Linux J[l IDE fBXNɉ炩̃fBXN}l[W݂̑
  oꍇÃfBXN}l[ŴƓ@ŃfBXNă}b
  v悤Ƃ̂ŁALinux ͗Ⴆ OnTrack  EZ-Drive gĂ
  DOS ̂悤ɓfBXNp[eBV邱ƂɂȂ܂BAW
  Ig(: LILO)R}hCw肳ꂽꍇ͍ă}bv͍s
  ܂ - ܂ `hd=cyls,heads,secs' (: `hdx=cyls,heads,secs'
  ) ƂR}hCIvV̓fBXN}l[WƂ̌݊
  킹Ă܂܂B

  ă}bv́AC <= 1024 ɂȂ邩 H = 255 ɂȂ܂ŁA (H*C ł
  悤) wbh(H) 4, 8, 16, 32, 64, 128, 255 Ƒ₵Ă܂B

  ڍׂ͈ȉ̂悤ɂȂ܂ - ȉ̃TuZNV̑薼̓u[g}l[
  WɑΉƎv镶łBȍ~Ap[eBV^Cvׂ͂
  16 ił킵܂B

  8.1.  EZD

  ŏ̊{p[eBV^Cv 55 łƂA EZ-Drive ݂
  f܂BWIg͏Ő悤ɕϊAZN^ 0 ɂ
  p[eBVe[u͖܂B̑ɁAp[eBVe[
  u̓ZN^ 1 ǂݏo܂BfBXÑubNԍ͕ύX
  񂪁AZN^ 0ւ݂̏́AZN^ 1 ւ݂̏ɋ܂B
  ̐U镑́Aide.c (: J[l 2.2.12 ł drivers/block/ide.h)
  ̒
   #define FAKE_FDISK_FOR_EZDRIVE  0 ƂăJ[lč\zΐ؂
  ܂B

  8.2.  DM6:DDO

  (ڂ̃hCu)ŏ̊{p[eBV^Cv 54 łƁA
  OnTrack fBXN}l[Wgݍ܂ĂƔf܂BWIg
  ͂łɏqׂ@ŕϊAfBXNŜ 63 ZN^炳܂
  (܂AX̃ZN^ 63 ̓ZN^ 0 ƌĂ΂邱ƂɂȂ܂)B̌
  ʁAV(p[eBVe[u܂) MBR ́AVZN^ 0 
  ݍ܂܂BÂ炵 DDO ̂߂̋Ԃmۂ邽
  ŁAꂪڂ̃fBXNȊOɂ͂炵ȂRłB

  8.3.  DM6:AUX

  (ڂ̃fBXNȊO){p[eBV^Cv 51  53 ̂Ƃ
  ́A OnTrack fBXN}l[WĂƔf܂BWIg
  ̕ϊ͏ɏqׂʂłB

  8.4.  DM6:MBR

  Â OnTrack fBXN}l[ẂAp[eBV^Cvł͂ȂVOl
  `Ōo܂B (o@: MBR ̃oCg 2,3 ɂ鐔ItZbg
  ƍlÃItZbgl430ȉł邩mF܂Bɂ̃ItZb
  gʒuɂ short int l 0x55AA ŁAȂA 1 oCg
  ǂč܂B) ϊ@́AɏqׂʂłB

  8.5.  PTBL

  ŌɁA{p[eBV start  end ̒lAϊsĂ邱
  Ƃm@邱ƂЉ܂傤BAp[eBV
  start  end ɂꂼZN^ԍ 1  63 ĂāA end 
  wbhԍƂ 31, 63, 127, ܂ 254 ĂƂƁAp[
  eBV̏I̓V_Eɂ銵Kł邱ƁA IDE C^
  [tF[X͍ő 16 wbhł邱ƂA BIOS ɂϊȂ
  Ă邱ƂA܂AWIg̓wbh 32, 64, 128, ܂ 255
  gčă}bvĂ邱Ƃ܂BÃ݂WIg
  łɃgbN 63 ZN^ŁÃwbhƂȂA
  ͍s܂ (wbh񂠂Ƃ̂́AłɕϊsĂ
  ƂƂł)B

  9.  _

  ǂǂƂ̂ł傤? Linux p҂ɂƂĂ͈_dvłB
  ́ALILO  fdisk WIggȂ΂ȂȂƂ
  Bł́uvƂ́Afdisk ɊւĂ͓fBXN̑ OS 
  ̃WIggpĂƂӖłA܂ LILO ɊւĂ͋N
   BIOS Ƃ肵ċNWIgłƂƂ
  B(ʂ͂ 2͈v܂B)

  fdisk ́AǂăWIg𒲂ׂ̂ł傤?  HDIO_GETGEO ioctl
  gpăJ[lɖ₢킹̂łBAp҂͑ΘbIɁA
  ̓R}hCWIgł܂B

  LILO ́AǂăWIg𒲂ׂ̂ł傤?  HDIO_GETGEO ioctl 
  gpăJ[lɖ₢킹̂łBAp҂ /etc/lilo.conf
   "disk=" IvVgāAWIgł܂
  (lilo.conf(5) QƂĂ)B linear IvV LILO Ɏw肷
  邱Ƃł܂B̏ꍇALILO  CHS AhX̑ LBA Ah
  X}bvt@CɊi[ANƂɂgp܂B (hCu
  ̃WIg₢킹邽߂ INT 13 ̃t@NV 8 g܂)

  J[l(fdisk  LILO ɐuꂽ)ǂĒׂ̂ł傤?
  ƁA炭蓮A܂ J[lɂ̂悤ȃIvVn
  Ƀu[g[_Ɏ₳āAŏɗp҂ `hda=cyls,heads,secs' 
  J[lR}hCIvV(bootparam(7) QƂ̂) ɂ
  ĖIɂw肷邩܂BႦ΁A/etc/lilo.conf 
  `append = "hda=cyls,heads,secs"' Ƃ悤ȍsǉ邱ƂɂA
  ̂悤ȃIvV LILO ɗ^邱Ƃł܂(lilo.conf(5) Q
  ̂)BłȂ΁AJ[l BIOS n[hEFA擾l
  gĉƂĐʂł傤B

  (Linux 2.1.79 ) /proc t@CVXegp邱ƂɂăWI
  gɂẴJ[ľύX邱Ƃ\łBႦ΂Ȋ
  łB

       # sfdisk -g /dev/hdc
       /dev/hdc: 4441 cylinders, 255 heads, 63 sectors/track
       # cd /proc/ide/ide1/hdc
       # echo bios_cyl:17418 bios_head:128 bios_sect:32 > settings
       # sfdisk -g /dev/hdc
       /dev/hdc: 17418 cylinders, 128 heads, 32 sectors/track
       #

  9.1.  LILO ̃p[^vZ

  J[l̃R}hC `hda=cyls,heads,secs' ƒǉ邱Ƃɂ
  ĐMłWIgv̂́Aɂ͕֗łBقƂǑ̏
   secs=63 ɂ܂Bꂩ heads w肵܂B (ł֗̕Ȓl
   heads=16  heads=255 ł) cyls Ɏw肷ׂl͉ł傤?  
  l C*H*S ZN^̑eʂ琳mɋ߂邱Ƃł܂BႦ
  71346240 ZN^ (36529274880 oCg)̃hCuł́A C 
  71346240/(255*63)=4441 ƂČvZł (vZɂ bc vOg
  )A hdc=4441,255,63 Ƃu[gp[^𓾂邱Ƃł܂Bǂ
  悤ɂĐmȑeʂm邱Ƃł̂ł傤?  Ⴆ΁A

       # hdparm -g /dev/hdc | grep sectors
        geometry     = 4441/255/63, sectors = 71346240, start = 0
       # hdparm -i /dev/hdc | grep LBAsects
        CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=71346240

  Ƃ悤Ƀg[^ 71346240 ZN^ł邱Ƃm 2̕@
  ܂BJ[l̏o

       # dmesg | grep hdc
       ...
       hdc: Maxtor 93652U8, 34837MB w/2048kB Cache, CHS=70780/16/63
        hdc: [PTBL] [4441/255/63] hdc1 hdc2 hdc3! hdc4 < hdc5 > ...

  (ȂƂ) 34837*2048=71346176 (ȂƂ) 70780*16*63=71346240
  ZN^ł邱ƂĂ܂B̏ꍇł́A2Ԗڂ̒l (: 
  L hdparm ł̒l) Rɂ܂łAʓIɂ̒l͒[
  ؂̂ĂĂ܂B hdparm płȂɃfBXNTC
  YTZ邢@łB cyls ɑ傫l^Ȃ悤!
  SCSI fBXN̏ꍇɂ́AmȃZN^̓J[l̃u[gbZ[W
  \܂:

       SCSI device sda: hdwr sector= 512 bytes. Sectors= 17755792 [8669 MB] [8.7 GB]

  (MB  GB ͊ۂ߂Ă܂A؂̂ĂĂ͂܂B܂ 2iŌv
  ZĂ܂)

  10.  ڍ

  10.1.  IDE ̏ڍ -  7̃WIg

  IDE hCo̓WIgɊւ 5 ̏񌹂Ă܂B
  (G_user) ̓R}hCŃ[UɂĎw肳ꂽ́B
  (G_bios)  BIOS  Fixed Disk Parameter Table (ڂƓڂ̃fBX
  NɌ) ŁA 32 rbg[hɈڍsÕVXeNɓǂݍ܂
  ܂BO (G_phys) Ǝl (G_log)  IDENTIFY DEVICE R}hɑ
   IDE Rg[ŁAꂼuvu̘_vW
  IgłB

  AhCo̓WIgƂē̒lKvƂ܂B (G_fdisk)
   HDIO_GETGEO ioctl ԂlA (G_used)  I/O sۂɎ
  ɎgplłB G_user ^Ă΁A G_fdisk  G_used 
  ŏ܂B G_user ^ꂸACMOS  (G_bios) 
  擾ł΁Aɐݒ肳܂BȊÔƂɂ́AG_phys ɐݒ肳
  ܂B G_log Ół悤ȂAG_used ͂ɐݒ肳܂B
  ́AG_used ̒lÓł͂ȂAG_phys Ół悤ȂA G_used
  ɂ G_phys ̒lݒ肳܂Bł́uÓvƂ́Awbh 1-16
  ͈̔͂ɓĂ邱ƂłB

  ƁAR}hCł̎ẃABIOS ̒l㏑
  fdisk ǂ̂悤ɃfBXNƂ炦邩߂܂BAA(wb
  h 16 𒴂)ϊ̃WIgw肷ƃJ[l I/O ł͂̒l
  ͔jAIDENTIFY DEVICE R}h̒lgp܂B

  G_bios ͂ȂɐMpłȂƂɒӂĂ: SCSI VXe
  N邽߂ɈڂƓڂ̃fBXN SCSI fBXNƂ
  A sda ̂߂ BIOS 񍐂WIg̓J[lł hda ̂߂
  g܂B̂ABIOS ZbgAbvŔFĂȂfBXN
  BIOS ͌܂B͎̂悤ȂƂӖ܂BႦ΁ABIOS
  ZbgAbv hdb FĂȂ IDE I[̃VXeł́A
  ڂƓڂ̃fBXNɂ BIOS 񍐂WIg hda  hdc 
  ̂ł傤B (: ܂fBXN hdb ɑ΂āA hdc ̃WIg
  KpƂƂłB)

  10.2.  SCSI Ɋւڍ

  SCSI ł̎Ԃ͏ĂāA SCSI R}h͊ɘ_ubNԍ
  gĂ̂ŁAWIg͎ۂ I/O ɊւĂ͂܂sK؂Ȃ
  łBAp[eBVe[ũtH[}bg͖ IDE Ɠ
  Ȃ̂ŁA fdisk ͂̃WIgłグȂ΂Ȃ炸A܂
  HDIO_GETGEO gȂ΂Ȃ܂ - mɁAfdisk  IDE fBXN
  낤 SCSI fBXNł낤ʂ͂܂Bȉ̏ڍׂȋLqǂ
  ΁AX̃hCoꂼAƂقȂWIgł
  ̂܂B{ɍ񂾁B

  DOS ₻̗ނgȂ̂Ȃ΁AׂĂ̊gϊݒāA 64 wb
  h 32 ZN^gbNgĂ (ꂾ 1 MiB/V_ƂȂ
  ƂĂ֗ł)B܂Ȃ΁AfBXNRg[瑼̃R
  g[ɌqĂ͋NȂł傤B SCSI fBX
  NhCo(aha152x, pas16, ppa, qlogicfas, qlogicisp) DOS Ƃ̌݊
  ɂƂĂ_oŁA Linux ݂̂̃VXeł 8 GiB zfBXN̎g
  pĂȂł傤B̓oOłB

  {̃WIg͂ǂȂĂ̂ł傤?  ͊ȒPAȂ̂
  ܂Bm肽Ȃł傤A܂AȂ̂Ƃ
  Ă΂  fdisk  LILO J[lɂȂ̂w肵Ȃł
  BWIg SCSI Rg[ƃfBXN̊Ԃłgׂ
  łBǂ悤łA SCSI fBXÑWIg fdisk  LILO 
  J[lɎw肷悤ȓz͈łB

  łDŜ܂ǂĂƌ̂ł΁AfBXNgɖ
  킹邱Ƃł܂B SCSI R}hɂ́Aeʂ𒲂ׂ READ
  CAPACITY R}h܂B܂AMODE SENSE R}h Rigid Disk
  Drive Geometry y[W(y[W04) ̓V_ƃwbhĂ(
  X͂ł܂)A Format y[W(y[W03)̓ZN^̃oCgƃg
  bÑZN^Ă܂B҂͕ʃmb`Ɉˑ܂B
  ܂AgbÑZN^͉ςłāAÕgbNɂ͓
  肽̃ZN^Ă܂B Linux  scsiinfo vO͂
  Ă܂B͏ڍׂɂ߂ɕG̏
  ȂA܂ɖ炩ɒN( OS ł)ȏ͎g܂B
  Afdisk  LILO ɊւAʂɕԂ C/H/S = 4476/27/171 
  ǂƂl͎gɂȂ܂BƂ̂́Ap[eBVe[u
  C/H/S  10/8/6 rbgÂ蓖ĂĂȂłB (󒍁F
  ɖ₢킹ƂAmb`Ƃ́u̃fBXN̒ŁAgbN
  ̃ZN^̈vƂ̂ƂłB)

  ł́AJ[l HDIO_GETGEO ̂߂̏ǂ玝Ă̂ł
  ?   SCSI Rg[玝Ă邩A炩̌@ō
  Ă܂܂BhCoɂĂ͉Xu^v~Ăƍl
  悤łAǂAX DOS  OS/2  FDISK (AAdaptec 
  AFDISK Ȃ) g~łB

  Linux  fdisk  H  S ܂AwbhƃgbÑZN^
  g LBA  C/H/S AhXɕϊ܂AV_ C ͎gp
  ȂƂɒӂĂBhCoɂẮAhCo 1023*255*63
  ZN^ɑΉł邱Ƃm点邽߂ɁA (C,H,S) = (1023,255,63) ł
  ƕ񍐂Ă܂BsKȂƂɁAꂩ͎ۂ̗eʂ͂킩܂
  A fdisk ̂قƂǂ̔łŁA舵eʂ 8 GiB Ɍ肵Ă܂
  B́A̎ۂ̏ƂȂĂ܂B

  ȉ̋Lqł́AM fBXN̑eʁAC,H,S V_AwbhAgb
  ÑZN^Ƃ܂B C  M / (H*S) Œ`ƍl
  AH,S 𓾂邾ŏ\łB

  H=64, S=32 lƂ܂B

     aha1740, dtc, g_NCR5380, t128, wd7000:
        H=64, S=32 łB

     aha152x, pas16, ppa, qlogicfas, qlogicisp:
        C > 1024 ɂȂ܂ł́AH=64, S=32Bȍ~́AH=255, S=63, C =
        min(1023, M/(H*S))B (̂߁AC ͊ۂ߂ĂA H*S*C̓fB
        XN̑e M Ƃ͂Ȃ܂B́AĂ̔ł fdisk Ŗ
        ƂȂ܂)B ppa.c ̃R[hł́AM ł͂ȂAM+1 gpĂ
        A sd.c ̃oOɂA M  1 ̃ItZbgĂƏ
        Ă܂B

     advansys:
        C > 1024 ɂȂ܂ł́AH=64, S=32Bȍ~ BIOS  `> 1 GB'
        IvVĂ H=255, S=63 łB

     aha1542:
        Rg[ 2 ̓̂ǂ̕ϊ@pĂ邩₢
        A H=255, S=63 AH=64, S=32 ̉ꂩgp܂BO҂g
        Ăꍇ́ANbZ[WƂ "aha1542.c: Using extended
        bios translation" ƕ\܂B

     aic7xxx:
        C > 1024 ɂȂ܂ł H=64, S=32Bȍ~ A"extended" Np
        [^hCoɗ^Ă邩A SEEPROM  BIOS ́ug
        vrbgĂĂȂ΁A H=255, S=63łB Linux
        2.0.36 ł́A SEEPROM tȂꍇ͂̊gϊɗL
        ɂ܂A Linux 2.2.6 ł́ASEEPROM tȂꍇ͊g
        ΐA[Ugp悤ɋNp[^w肵
        ݗLɂȂ܂ (SEEPROM tꍇ͋Np[^͖
        ܂)B́A2.0.36 Őݒ肵̂ 2.2.6 ł͋NɎs
        邩Ȃ (āALILO  `linear' L[[hKv
        ȂAJ[l̋Np[^ `aic7xxx=extended' Kv
        Ȃ肷邩Ȃ) ƂӖĂ܂B

     buslogic:
        C >= 1024 ɂȂ܂ł H=64, S=32Bȍ~̓Rg[̊g
        ϊgpĂꍇA M < 2^22 (: 2 GiB) Ȃ H=128,
        S=32 ŁAȂ H=255, S=63 łBA (C,H,S) 
        sAp[eBVe[uǂݏo܂BāA\
         3 ̑gݍ킹A(H,S) = (64,32), (128,32), (255,63) ̂
        AendH=H-1 ɂȂ肻Ȃ̂T܂BāÂ悤ȋN
        bZ[W\܂B "Adopting Geometry from Partition
        Table" (p[eBVe[ũWIg̗p܂)

     fdomain:
        BIOS ̃hCup[^e[ũWIgTAp[
        eBVe[uǂŁAp[eBVȂŏ̃p[
        eBV(endH+1,endS)  (H,S) ƂĎgp܂Bp[eB
        VȂȂΎ̂悤ɂȂ܂: M < 2^21 (1 GiB) Ȃ
        H=64, S=32 A M < 63*2^17 (3.9 GiB) Ȃ H=128, S=63 A
         H=255, S=63 B

     in2000:
        (H,S) = (64,32), (64,63), (128,63), (255,63)̂A C <= 1024
        ƂȂŏ̂̂gp܂BŌ̂̂gƂɂ́AC 
        1023 Ɋۂ߂܂B

     seagate:
        C,H,S fBXNǂ݂܂(Ђ!)B C  S 傫
        ΁A S=17, H=2 ƂāA C <= 1024 ƂȂ܂ H {ɂĂ
        ܂B M > 128*1024*17 (1.1 GiB) ̂ƂA H  0 ɐݒ肳
        邱ƂӖ܂B̓oOłB

     ultrastor and u14_34f:
        Rg[̃}bsO[hɉ (H,S) = (16,63), (64,32),
        (64,63) ̂̈gp܂B

  hCoWIgw肵Ȃ΁Ap[eBVe[ufBXN
  eʂoIɒl߂܂B
  p[eBVe[uĂ݂܂傤Bp[eBV̏IV
  _EɒuƂKAǂ̂悤ȃp[eBVłĂp[eB
  V̏I肪 end = (endC,endH,endS) łƂAP H = endH+1
  S = endS ƌvZ邱Ƃł܂ (JԂ܂AZN^ 1 琔
  ܂)BɂƁAȉ̂悤ɂȂ܂Bp[eBV
  ݂Ȃ΁A beginC Ƃ傫p[eBVIт܂B
  āAend+1 Astart  length 𑫂@ƁAp[eBV̏I
  肪V_EɂƉ肷@ŌvZ܂B̓v
  邩AendC = 1023  start+length  (endH+1)*endS ̐{Ȃ
  ΁Ãp[eBV͖{ɃV_Eɂ낦Ăƍl
  ܂BAꂪ߂Ȃ悤Ȃ΁A܂p[eBVSRA
  傫Ȃ񂩕ςȂ΁AfBXNe M ݂̂܂BASY͈
  ̂悤ɂȂA̕@́AC ő 1024, S ő 62 ɉ悤
  Ȍʂ܂: H = M/(62*1024) Ő؂グA S = M/(1024*H) Ő؂
   C = M/(H*S) Ő؂̂āB

  11.  Linux  IDE 8 GiB ̕

  Linux  IDE hCo ATA IDENTIFY DEVICE NGXggp邱Ƃ
  AfBXÑWIgƗe(Ƃ̑̏)𓾂܂Bŋ߂
  ŁAC*H*S ɂvZꂽeʂ 10% ȏ傫ꍇ́AhCo
  Ԃꂽ lba_capacity ̒lMp܂łBAƊE̋Kɂ
   (16514064 ZN^z) 傫 IDE fBXŃAۂ̃TCYƂ͖
  ֌ẂAv 16514064 ZN^ (7.8 GB (: 7.8 GiB ܂ 8.4 GB 
  )) ƂȂ C=16383, H=16, S=63 ԂAۂ̃TCY lba_capacity 
  Ԃ܂B

  ŋ߂ Linux J[l (2.0.34  2.1.90) ͂̂ƂmĂĐ
  ܂BÂ Linux J[lgĂăAbvO[h
  ȂǍ 8 GiB zeʃfBXN 8 GiB Ȃ悤
  Ȃ΁A /usr/src/linux/drivers/block/ide.c ̃[`
  lba_capacity_is_ok ȉ̂悤ɕύXĂB (: łʂ
  RȂAǂJ[l̍ăRpCŝȂ΁AfɃAb
  vO[hƎv܂)

       static int lba_capacity_is_ok (struct hd_driveid *id) {
               id->cyls = id->lba_capacity / (id->heads * id->sectors);
               return 1;
       }

  ǂpb`ɂẮAJ[l 2.1.90 ĂB

  11.1.  BIOS ̕G

  悤ɁAeʃfBXN͎ۂ̃TCYƂ͖֌WȃWIg
  C=16383, H=16, S=63 ԂAۂ̃TCY LBAcapacity ̒lŕԂ
  B BIOS ͂𗝉A 16383/16/63 菬V
  _Ƃ傫wbhAႦ 1024/255/63  1027/255/63 Ƃ
  lɕϊ܂BAJ[l͒P̃WIg 16383/16/63 
  ͂ȂA BIOS ɂĕϊĂ܂WIgȂ΂Ȃ
  ܂BJ[l 2.2.2 炱͐܂( BIOS ɖ₢킹
   H  S 𓾁AC = capacity/(H*S) ƌvZ邱Ƃɂ)Bʏ킱̖
  ́ABIOS ݒŃfBXN Normal Ɛݒ肷邱Ƃŉ܂ (邢
  ́A悢@́ANone Ɛݒ肵 BIOS ɈؔFȂ)B HDD
  NȂ΂ȂƂA DOS/Windows łgȂǂ̗Rł
  ꂪs\ŁAɃJ[l 2.2.2 ȍ~ɃAbvO[h
  IȂ΁AJ[l̋Np[^gĂB

  BIOS  16320/16/63 ƕ񍐂ꍇ́A͕ϊ 1024/255/63 
  ړIŕ񍐂Ă̂łB

  11.2.  wbh߂邽߂̃Wp

  ̃fBXN 15 wbh 16 wbh̃WIgI\ɂ
  WppӂĂ܂BftHg̐ݒ 16 wbh̃fBXNɂȂ
  Ăł傤B̃WIgłZN^̎΁A 15
  wbh̕ZN^Ȃ܂BȃZbgAbv̍ۂɂ
  悢R邩܂: Petri Kaukasoina ͂Ă܂:
  u10.1 GB  IBM Deskstar 16 GP (model IBM-DTTA-351010) ̓ftHg
   16 wbhɃWpݒ肳Ă邪A (AMI BIOS ) Â PC
  ł̓u[gȂ̂ŁA 15 wbh̕ɃWpݒ肷KvB
  hdparm -i  RawCHS=16383/15/63  LBAsects=19807200 ƕ񍐂ĂB
  ׂ͂Ă̗eʂ𓾂邽߂ 20960/15/63 ŎgĂBvWp̐
  ɂẮAȉQƂĂB
  http://www.storage.ibm.com/techsup/hddtech/hddtech.htm.

  11.3.  eʂB߂̃Wp

  ̃fBXN̓fBXN菬邱Ƃ\ɂWp
  pӂĂ܂B͂΂ƂŁAgp Linux [
  U͂炭Ȃł傤AeʃfBXNڑƈꕔ BIOS 
  NbVĂ܂܂Bʏ̉@́AfBXNS BIOS ɔF
  ȂƂłB͋NfBXNł͂ȂpłȂ
  ł傤B

  ŏ̐[Ȑ 4096V_ł ( 16 wbh 63 ZN^
  gbN̏ꍇ 2.11GB ł)BႦ΁Axm MPB3032ATU Ƃ 3.24
  GB ̃fBXN̓ftHg 6704/15/63 ƂWIgłAW
  pݒ肷邱Ƃ 4092/16/63 Ɍ邱Ƃ\łB
  LBAcapacity ɑ΂ 4124736 ZN^ƕ񍐂̂ŁA OS ͂̃fBXN
  ۂ͂Ƒeʂłƒm邱Ƃ͂ł܂B (ۂɃfBXN̗e
  ʂ傫 BIOS NbV̂ŁAWpKvɂȂƂ
  )̂悤ȃP[Xł́AfBXÑTCYɂ Linux ɋ邽߂
  u[gp[^w肷Kv܂B

  ͂܂悭ȂłB̃fBXN̓Wpݒ肷邱Ƃɂ
  A 2GB ̃fBXNł邩̂悤ɌA 4092/16/63  4096/16/63 
  ؂l߂WIg񍐂܂B LBAcapacity ł͊S
  l񍐂̂łB̂悤ȃfBXN͐ɓ삵܂AWp
  ݒɊւ炸 Linux ̉łׂ͂Ă̗eʂ𗘗pł܂B

  Ƃŋ߂̐ ``33.8 GB ̕'' łB 2.3.21 Â Linux J
  [lł́Aeʂ̑傫 IDE fBXN܂ɂ̓pb
  `KvłB̐傫ȃfBXN̂ł 33.8GB fBXN
  Ɍ邽߂̃Wpݒ肪\Ȃ̂܂BႦ΁AIBM
  Deskstar 37.5 GB disk (DPTA-353750) Ƃ悤Ȃ̐傫
  fBXŃA 33.8 GB ̃fBXNɌ邽߂̃Wpݒ肪\
  ŁA (: 2.1 GB Ɍ邱Ƃ̂ł) ̑eʃfBXN̂悤
   16383/16/63 ƂWIg񍐂܂A LBAcapacity  (:
  33.8GB ɑ) 66055248 ƕ񍐂܂ (65531/16/63  4111/255/63
  ɑ܂)B 33.8GB Ɍ邽߂̃Wpݒ
  fBXN܂A Linux ̉łׂĂ̗eʂ𗘗p邽߂Ƀu[gp
  [^KvƂ܂B the BIOS 33.8 GB limit QƂĂB

  12.  Linux  65535 V_̕

  HDIO_GETGEO ioctl  short (: short int ܂ 16rbg) ŃV
  _Ԃ܂B́A65535 V_葽ꍇɂ͐؂̂Ă
  āAႦ(T^I SCSI ̐ݒł 1 V_ 1 MiB Ȃ̂) 80 GiB
  ̃fBXN 16 GiB Ɍ邩ȂƂӖ܂B񉽂
  Ȃ̂Ă܂΁A邱Ƃ͊ȒPłB

  12.1.  34 GB ̃fBXNɂ IDE ̖

  33.8 GB eʂȃhCúA2.3.21 ÂJ[lł͂܂
  ܂B (: ̏͂̍Ō̕ɂĂ܂A2.2.14 ȍ~
  T|[gĂ܂B) ̏ڍׂ͈ȉ̒ʂłBȂV
  66835440 ZN^ (34.2 GB)  IBM-DPTA-373420 fBXN𔃂ĂƂ
  ܂傤B 2.3.21 ȑÕJ[ĺÃTCY 769*16*63 = 775152
  ZN^ (0.4 GB) ƕ񍐂AƂ肷ł傤BăR}h
  Cp[^ hdc=4160,255,63 ^ĂAԂ͂܂Ȃ
  ̂ł - ͖܂B̉NĂ̂ł傤?  [`
  idedisk_setup() ł́AfBXN񍐂WIg(16383/16/63 ł)
  󂯎A[UR}hCŎw肵lŏ㏑܂B̒l
  BIOS WIĝ߂Ɏgp̂łB[`
  current_capacity()  idedisk_capacity() ́A 66835440/(16*63)=66305
  ƂŃV_ČvZ܂A̒l short Ŋi[
  ŁA 769 ɂȂĂ܂܂B lba_capacity_is_ok()  id->cyls j
  ̂ŁǍ̌ĂяoׂĂɑ΂ĉR̒lԂǍʃfBXN
  ̗eʂ 769*16*63 ɂȂ܂B̃J[lɑ΂Ă̓pb`
  Ă܂B 2.0.38 p̃pb` ftp.kernel.org ɗpӂĂ
  B 2.2.12 p̃pb` www.uwsg.indiana.edu.  ɗpӂĂ܂B
  2.2.14pre J[l͂̃fBXNT|[gĂ܂B 2.3.* J[
  lV[Ył́A2.3.21 炱̃fBXNT|[gĂ܂B
  AfBXÑTCY 33.8GB ɐ؂l߂邽߂ɁAn[hEFAI
  ``Wpݒ肷'' Ƃłuv邱Ƃł܂Bn[
  hfBXNu[g悤Ƃ̂Ȃ΁Ȁꍇ ``BIOS AbvO
  [h'' KvɂȂł傤B

  13.  gp[eBVƘ_p[eBV

  ``Oq̒ʂA'' X MBR (ZN^ 0) ̍\mĂ܂: VOl
  ` AA55A 16 oCg 4 ̃p[eBVe[ũGg
  Aău[g[_̃R[hB^Cv(16i) 5  F  85 ̃p[
  eBVe[uGg (: 5, F, 85 ͏Ɋgp[eBV
  AWindows95 gp[eBVA Linux gp[eBV)͓ʂȈ
  ܂B́A̓ɘ_p[eBVƂĕ
  ԂłAgp[eBVł邱ƂӖĂ܂B (A
  gp[eBVƂ͒PȂ锠ŁAꎩggp邱Ƃ͂łA
  ̘_p[eBVgƂɂȂ܂B) gp[eBV̈
  ڂ̃ZN^̈ʒû݂dvłB̈Ԗڂ̃ZN^́Al̃p[eB
  Ve[u܂ł܂: ͘_p[eBVA͊gp[
  eBVAē͖gpłB̂悤ɂāAfBXNŜɎU
  ΂p[eBVe[uZN^̘A\ł܂Bŏ̃Z
  N^ 3 ̊{p[eBVƂЂƂ̊gp[eBVK肵
  Bɑp[eBVe[uZN^͂ꂼAЂƂ̘_p[
  eBVƎ̃p[eBVe[uZN^̈ʒuK肵܂B

  ͎̂Ƃ𗝉邽߂ɏdvł: fBXÑp[eBV؂
  ۂɊԔȂƂ (: p[eCV폜Ă܂
  )AlX́ũf[^͂܂ɂ?vƂƂm肽
  BĂ̓͌܂ĂłBu͂A܂܂B_p
  [eBV쐬ALqp[eBVe[uZN^
  ̘_p[eBV̐擪ɏ܂̂ŁAȑOɂf
  [^͎܂Bv

  vO sfdisk ͊Sȃ`F[\ł܂BႦ΁A

  # sfdisk -l -x /dev/hda

  Disk /dev/hda: 16 heads, 63 sectors, 33483 cylinders
  Units = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0

     Device Boot Start     End   #cyls   #blocks   Id  System
  /dev/hda1          0+    101     102-    51376+  83  Linux
  /dev/hda2        102    2133    2032   1024128   83  Linux
  /dev/hda3       2134   33482   31349  15799896    5  Extended
  /dev/hda4          0       -       0         0    0  Empty

  /dev/hda5       2134+   6197    4064-  2048224+  83  Linux
      -           6198   10261    4064   2048256    5  Extended
      -           2134    2133       0         0    0  Empty
      -           2134    2133       0         0    0  Empty

  /dev/hda6       6198+  10261    4064-  2048224+  83  Linux
      -          10262   16357    6096   3072384    5  Extended
      -           6198    6197       0         0    0  Empty
      -           6198    6197       0         0    0  Empty
  ...
  /dev/hda10     30581+  33482    2902-  1462576+  83  Linux
      -          30581   30580       0         0    0  Empty
      -          30581   30580       0         0    0  Empty
      -          30581   30580       0         0    0  Empty

  #

  ȃp[eBVe[u\z邱Ƃ\łBgp[eB
  Ṽ`F[gwA邢͂ƑÕp[eBV
  wꍇÃJ[l̓[vɊׂ܂B 1̃p[eBVe[u
   2̊gp[eBVƂ\łB̓p[eBV
  e[ũ`F[򂷂邱ƂӖ܂B (͗Ⴆ΁A5, F,
  85 ̂ꂼgp[eBVƂĔFłȂ fdisk ŁAF ̎
  5 AƂ@ŉ\ɂȂ܂) ʂ fdisk ^CṽvO
  ł͂̂悤ȏ󋵂舵ƂłȂ̂ŁAC邽߂ɂ
  ƂKvƂȂ܂B Linux J[ĺAԊÕxɂĕ
  󂯕t܂B́A2̘_p[eBṼ`F[
  ł邱ƂӖ܂BXA͕֗ł - Ⴆ΁Ał̓^C
  v 5 gp DOS QƂł悤ɂAЕł̓^Cv 85 g
  p DOS 猩Ȃ悤ɂ܂B܂ADOS  fdisk A1024 V
  _z_p[eBVɂăNbVȂ悤ɂł
  łB

  14.  ̉

  Ǝvl̑́Aۂɂ͉_͂܂B
  AĂ̌fBXÑWIgɂƎvꍇ
  Aۂɂ̓fBXÑWIgɂ͉̖܂Bŏqׂ
  ȂׂĂ̂ƂԂ𕡎GɂĂ܂AfBXÑWIg̈
  ͔ɊȒPł: ܂\ȂΉKv͂܂; 
  N `LI' ̐ɐi܂Ȃꍇ LILO ɃL[[h `linear' ^
  BJ[l̋NbZ[WĎvoĂ: (LILO 
  fdisk J[lR}hCŃwbhV_^)WIg
  ΂قǁAɂ͓삵ȂȂł傤B
  ɂ΁AftHgԂȂ̂łB

  ɎvoĂ: Linux fBXÑWIggȂA
  ܂Linux 삵ĂԂ́AfBXÑWIgɂĖ肪N
  邱Ƃ͂܂Bǂ납AfBXÑWIg LILO 
  fdisk Ɏgp܂BALILO J[l̋NɎsꍇ
  ́AWIgɖ肪邩܂BقȂ OS p[eBVe
  [u𗝉Ȃꍇ́AWIgɖ肪邩܂Bł
  ꂾłBƂ킯Amount 삵Ȃ悤ɎvꍇłAfBXN
  ̃WIgɂ͉̊֌W܂ - ͑̏ɂ܂B

  14.1.  : SCSI NAIDE fBXNςȃWIg
  

  fBXNςȃWIg̂͂ƂĂ肪łB Linux J[l
   hd0  hd1 (80H  81H ̐ӂꂽ BIOS hCu) ɂ
  BIOS ɖ₢킹Ãf[^ hda  hdb ̂̂Ɖ肵܂B
   SCSI NVXeł́Aŏ̓̃fBXN SCSI fBX
  Nł傤Aŏ IDE fBXN hda ł 5Ԗڂ̃fBXNɑ΂
  sda ̃WIg蓖ĂȂĂƂN邩܂B
  ́AN /etc/lilo.conf ɂāAK؂Ȑ C, H, S gău[
  gp[^ `hda=C,H,S' ^邱ƂŊȒPɉł܂B

  14.2.  Ȃ: fBXNقȂWIgĂ?

  u͂܂ IBM ̃fBXN 2䎝Ă܂BAfdisk
  \TCY͈قȂĂ܂BȊ:

       # fdisk -l /dev/hdb
       Disk /dev/hdb: 255 heads, 63 sectors, 1232 cylinders
       Units = cylinders of 16065 * 512 bytes

          Device Boot  Start      End   Blocks   Id  System
       /dev/hdb1           1     1232  9896008+  83  Linux native
       # fdisk -l /dev/hdd
       Disk /dev/hdd: 16 heads, 63 sectors, 19650 cylinders
       Units = cylinders of 1008 * 512 bytes

          Device Boot  Start      End   Blocks   Id  System
       /dev/hdd1           1    19650  9903568+  83  Linux native

  łł?v

  NĂ̂ł傤?  A܂ɁÃhCu͂
   10 MKoCggĂ܂: hdb  255*63*1232*512 = 10133544960 o
  CgŁA hdd  16*63*19650*512 = 10141286400 oCgłA
  ͂ȂJ[l͂ǂ 10.1 GB łƗĂ܂Bł͉̃T
  CYႤ̂ł傤?  ́AJ[l͍ŏ̓ IDE fBXNɂ
  Ă BIOS 𓾁A BIOS  hdb  255 wbhōă}bv
  邩ł (16*19650/255=1232 V_)B̊ۂ߂ɂ鑹 8MB 
  łB

  hdd @ōă}bv̂Ȃ΁AJ[l̃u[gp[^
  `hdd=1232,255,63' ^ĂB

  14.3.  Ȃ: df  fdisk ̕p[eBV傫

  fdisk ̓ubNfBXNɂ݂邩񍐂܂B mke2fs 
  găfBXNɃt@CVXeꍇAt@CVXe͕
  L(bookkeeping)̂߂̂炩̃Xy[XKvƂ܂ - ʏ̓t@C
  VXẽTCY 4% 炢ŁA mke2fs ۂɑ inode 
  Ƃ葝܂Bȉ͗ł:

  # sfdisk -s /dev/hda9
  4095976
  # mke2fs -i 1024 /dev/hda9
  mke2fs 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09
  ...
  204798 blocks (5.00%) reserved for the super user
  ...
  # mount /dev/hda9 /somewhere
  # df /somewhere
  Filesystem         1024-blocks  Used Available Capacity Mounted on
  /dev/hda9            3574475      13  3369664      0%   /mnt
  # df -i /somewhere
  Filesystem           Inodes   IUsed   IFree  %IUsed Mounted on
  /dev/hda9            4096000      11 4095989     0%  /mnt
  #

  ܂A4095976 ubÑp[eBV܂B ext2 t@C
  VXe쐬AKȏɃ}Eg܂B 3574475 ubN
  ȂĂ܂܂ - 521501 ubN (12%)  inode Ƒ̕LpXy[X
  ɏꂽ̂łBv 3574475  3369664 ̊Ԃ̍́A[U 13 u
  bNgpĂāA 204798 ubN root ̂߂ɗ\񂳂
  邽߂ł邱ƂɒӂĂB҂ tune2fs ŕύXł܂B
   `-i 1024' ̓j[XXv[Ȃǂ̏t@CRقǂꍇ
  ɂ̂ݓKĂ܂BftHgł͂Ȃ܂:

       # mke2fs /dev/hda9
       # mount /dev/hda9 /somewhere
       # df /somewhere
       Filesystem         1024-blocks  Used Available Capacity Mounted on
       /dev/hda9            3958475      13  3753664      0%   /mnt
       # df -i /somewhere
       Filesystem           Inodes   IUsed   IFree  %IUsed Mounted on
       /dev/hda9            1024000      11 1023989     0%  /mnt
       #

  x 137501 ubN(3.3%)݂̂ inode ̂߂ɎgpǍʈ
  O 384 MB Ă܂B (inode 1ɂ 128 oCggĂ݂
  łB) Ȁꍇł 4096000 t@Cۑł̂ɑ΂(ǂ
  )Ãt@CVXeł͍ő 1024000 t@Cۑł܂
  (ł\܂)B

  15.  {łɂ

  |Ɋւ邲ӌ JF vWFNg <JF@linux.or.jp> ɘAĂ
  B

  v2.2j ̖|ɂẮAx]ꂳ shorie@ibm.net ɂ Large
  Disk mini HOWTO v1.0 ̖|󂩂瑽̕𗬗pĂ܂B
  [ӂ܂B

