Large Disk mini-HOWTO ¤¤Ä¶ª© §@ªÌ: Andries Brouwer, [1]jaeb@cwi.nl ĶªÌ: Asd L. Chen, [2]asdchen@ms1.hinet.net v1.0, 26 June 1996 ½Ķ¤é´Á: 10-13 November 1997 _________________________________________________________________ ©Ò¦³¦³Ãö disk geometry ¤Î 1024 cylinder ªº¨î¡D _________________________________________________________________ 1. °ÝÃD©Ò¦b 2. ±Ò°Ê 3. ºÏºÐ geometry ¥H¤Î¤À³Î°Ï 4. Âà´«»PºÏºÐºÞ²zµ{¦¡ 5. ®Ö¤ßªº IDE ºÏºÐÂà´« * 5.1 EZD * 5.2 DM6:DDO * 5.3 DM6:AUX * 5.4 DM6:MBR * 5.5 PTBL 6. µ²½× * 6.1 IDE ²Ó¸` * 6.2 SCSI ²Ó¸` _________________________________________________________________ 1. °ÝÃD©Ò¦b °²¦p§AªººÏºÐ¶W¹L 1024 ÓºÏÁL(cylinders)¡D ÁÙ¦³, °²¦p§Aªº§@·~¨t²Î¨Ï¥Î°ò ¥»¿é¥X¤J¨t²Î(BIOS)¡D¨º»ò§A·|¹J¨ì¤@Ó°ÝÃD, ¦]¬°¤@¯ëºÏºÐ¿é¥X¤J¡þ¿é¤J©Ò¨Ï ¥Îªº INT13 BIOS ¤¶±¥H¤@Ó 10 ¦ì¤¸(bit) ªºÄæ¦ì¨Ó¾Þ§@ºÏÁL, ©Ò¥HµLªk¦s¨ú ²Ä 1024 ¤Î¤§«áªººÏÁL¡D ©¯¹Bªº¬O, Linux ¤£¨Ï¥Î BIOS, ©Ò¥H¨S¦³°ÝÃD¡D ¸Ü¬O³o»ò»¡, ¦ý¦³¨â¥ó¨Æ¨Ò¥~: (1) ·í§A¦b±Ò°Ê¨t²Î®É, Linux ÁÙ¨S¶}©l°õ¦æ©Ò¥HµLªkÅý§AÁקK³oÓ°ÝÃD¡D³o¹ï LILO ¥H¤ÎÃþ¦üªº±Ò°Ê¸ü¤Jµ{¦¡(boot loaders)¦³¨Ç¼vÅT¡D (2) ¨Ï¥ÎºÏºÐªº©Ò¦³§@·~¨t²Î¥²¶·¦P·N¤À³Î°Ïªº¦ì¸m¡D´«¥y¸Ü»¡, ¦pªG§A¦b¤@Áû ºÏºÐ¤W¨Ï¥Î Linux ¥H¤Î, ¨Ò¦p DOS, ¨º»ò¨âªÌ¥²¶·¥H¬Û¦Pªº¤è¦¡¸ÑŪ¤À³Îªíªº¸ê ®Æ¡D³o¹ï Linux ®Ö¤ß¥H¤Î fdisk ¦³¨Ç¼vÅT. ©³¤U¬O¹ï©Ò¦³¬ÛÃö²Ó¸`§ó¸Ô²Óªº´yz¡Dª`·N, §Ú¨Ï¥Î 2.0.8 ª©®Ö¤ßì©lµ{¦¡°µ¬° °Ñ¦Ò¡D¨ä¥¦ªºª©¥»¥i¯à¦³¤@ÂIÂI¥X¤J¡D 2. ±Ò°Ê ·í¨t²Î±Ò°Ê®É, BIOS ±q²Ä¤@ӺϺÐ(©Î±q³nºÐ)Ū¨úºÏ°Ï 0 (¤@¯ë³qºÙªº MBR - Master Boot Record, ¥D±Ò°ÊºÏ°Ï)¨Ã¸õ¦Ü¦b¸Ó³Bªºµ{¦¡½X - ³q±`¬O¤@¨Ç±Ò°Ê¸ü ¤Jµ{¦¡(bootstrap loader)¡D ³o¨Ç¤p¤pªº±Ò°Êµ{¦¡¤@¯ë¤£·|¦³¦Û¤vªººÏºÐÅX°Êµ{ ¦¡¦Ó·|¨Ï¥Î BIOS ©Ò´£¨ÑªºªA°È¡D³o·N¿×µÛ¥u¦³¾ãÓ Linux ®Ö¤ß³£¦ì©ó¶}ÀYªº 1024 ÓºÏÁL¤º®É¤~¯à°÷³Q±Ò°Ê¡D ³oÓ°ÝÃD«Ü®e©ö¸Ñ¨M: ½T©w®Ö¤ß(¤]³\ÁÙ¥]¬A¨ä¥¦±Ò°Ê®É¥Î¨ìªºÀÉ®×, ¹³¬O LILO map ÀÉ) ¬O©ñ¦b¤@Ó BIOS ¥i¥H¦s¨úªº¨ì, ¥þ³£¦b¶}ÀYªº 1024 ÓºÏÁL¤ºªº¤À³Î °Ï¸Ì - ³o¥i¥H(¥i¯à)¬O²Ä¤@өβĤGӺϺСD ¥t¤@ÂI¬O±Ò°Ê¸ü¤Jµ{¦¡»P BIOS ¥²¶·¦P·N©¼¦¹¹ïºÏºÐÅÞ¿è(geometry)¤Wªº¬Ýªk¡D µ¹ LILO `linear' ³oӿﶵ°Ñ¼Æ¥i¯à·|¦³¨ÇÀ°§U¡D²Ó¸`«áz¡D 3. ºÏºÐ geometry ¥H¤Î¤À³Î°Ï ¦pªG§AªººÏºÐ¤W¦³¦n´XºØ§@·~¨t²Î, ¨C¤@ºØ¨Ï¥Î¤@өΦhÓ¤À³Î°Ï¡D¨º»ò¹ï©ó¤À ³Î°Ï¦ì©ó¦ó³B¤£¦Pªº¬Ýªk¥i¯à¾ÉP¨aÃø©Êªº«áªG¡D MBR ¤¤¥]§t¤@Ó¤À³Îªí´yz¤À³Î°Ï(¥D¤À³Î°Ï: primary) ¦b¨º¸Ì¡D¦³¥|Óªí®æµ¹ ¥|Ó¥Dn¤À³Î°Ï¨Ï¥Î, ¥¦Ì¬Ý°_¨Ó¹³ struct partition { char active; /* 0x80: bootable, 0: not bootable */ char begin[3]; /* CHS for first sector */ char type; char end[3]; /* CHS for last sector */ int start; /* 32 bit sector number (counting from 0) */ int length; /* 32 bit number of sectors */ }; (¨ä¤¤ CHS ¬OºÏÁL¡þºÏÀY¡þºÏ°Ï: Cylinder/Head/Sector ªºÁY¼g) ¦]¦¹, ¦³¶µ¸ê°T¬O«ÂЪº: ¤À³Î°Ïªº¦ì¸m¥i¥H¥Ñ 24 ¦ì¤¸ªº begin ¥H¤Î end Äæ ¦ì, ©M 32 ¦ì¤¸ªº start ¥H¤Î length Äæ¦ìµ¹©w¡D Linux ¥u¨Ï¥Î start ¥H¤Î length Äæ¦ì, ¬G³Ì¦h¥i¥H³B²z¥]§t 2^32 ӺϰϪº¤À ³Î°Ï, ¤]´N¬O, ³Ì¤j 2 TB ªº¤À³Î°Ï¡D³o¬O²{¤µºÏºÐ¾÷ªº¨â¦Ê¿, ©Ò¥H¤]³\¨¬°÷ ©¹«á¤Q¦~ªº»Ý¨D¡D ¤£©¯ªº¬O, BIOS INT13 ©I¥s¨Ï¥Î¤TӦ줸²Õªº CHS ½s½X, 10 Ӧ줸§@¬°ºÏÁL¸¹ ½X, 8 Ӧ줸§@¬°ºÏÀY¸¹½X, ¤Î 6 Ӧ줸§@¬°ºÏy¤WªººÏ°Ï¸¹½X¡D ¥i¯àªººÏÁL ¸¹½X¬O 0-1023, ¥i¯àªººÏÀY¸¹½X¬O 0-255, ¦ÓºÏy¤W¥i¯àªººÏ°Ï¸¹½X¬° 1-63(¬O ªº, ºÏy¤WªººÏ°Ï¬O¥Ñ 1 °_ºâ, ¤£¬O 0)¡D ¥H³o 24 ¦ì¤¸³Ì¦h¥i¥H©w§} 8455716864 Ӧ줸²Õ(7.875 GB), ³o¬O 1983 ¦~ºÏºÐ¾÷ªº¨â¦Ê¿¡D §ó¤£©¯ªº¬O, ¼Ð·Çªº IDE ¤¶±®e³\ 256 ӺϰϡþºÏy, 65536 ÓºÏÁL¥H¤Î 16 ÓºÏÀY¡D¥¦¦Û¤v¥»¨¥i¥H¦s¨ú 2^37 = 137438953472 Ӧ줸²Õ(128 GB), ¦ý¬O¥[ ¤W BIOS ¤è± 63 ӺϰϻP 1024 ÓºÏÁLªº¨î«á¥u³Ñ 528482304 Ӧ줸 ²Õ(504 MB)¥i¥H©w§}ªº¨ì¡D ³o¤£¨¬¥HÀ³¥I²{¤µªººÏºÐ, ¤H̨ϥΦUºØµwÅé©Î³nÅé¤Wªº¤èªk¨Ó§JªA¡D 4. Âà´«»PºÏºÐºÞ²zµ{¦¡ ¨S¦³¤H¹ïºÏºÐªº'¯u¹ê' geometry ¦³¿³½ì¡DºÏyªººÏ°Ï¼Æ³q±`¬OÅܰʪº - ±µªñºÏ ºÐ¥~³òªººÏy¦³¤ñ¸û¦hªººÏ°Ï - ©Ò¥H¨S¦³'¯u¹ê'ªº¨CºÏyºÏ°Ï¼Æ¡D ¹ï©ó¨Ï¥ÎªÌ ¦Ó¨¥³Ì¦n¬O§âºÏºÐ·í§@½s¸¹ 0,1,..., ªººÏ°Ï²Õ¦X¦¨ªº½u©Ê°}¦C, Åý±±¨î¾¹¥h§ä ¥XºÏ°Ï¨s³º¦ì©óºÏºÐªº¨º¸Ì¡D ¦¹½u©Ê½s¸¹¤@¯ë³qºÙ¬° LBA¡D¹ï©ó geometry ¬° (C,H,S) ªººÏºÐ¦Ó¨¥ÄÝ(c,h,s) ªº½u©Ê¦ì§}¬° c*H*S+h*S+(s-1)¡D©Ò¦³ SCSI ±±¨î¾¹³£¨Ï¥Î LBA, ¬Y¨Ç IDE ±±¨î ¾¹¤]¬O¡D ¦pªG BIOS §â³o 24 Ӧ줸(c,h,s) Âà´«¦¨ LBA ¨ÃÁýµ¹À´±o LBA ªº±±¨î¾¹, ¨º »ò¤S¥i¥H©w§}¨ì 7.875 GB ¡D¨Ã¤£¨¬¥HÀ³¥I©Ò¦³ªººÏºÐ, ¦ý¤´µM¬OÓ§ï¶i¡Dª`·N ¦¹³B BIOS ¨Ï¥Îªº CHS, ¥¦¤£¦A»P'¹êÅé'¦³¥ô¦óÃö«Y¡D ·í±±¨î¾¹¤£À´¦ó¬° LBA ¦ý¬O BIOS ª¾¹D¦p¦óÂà´«®É¦³¨ÇÃþ¦üªº¤èªk¥i¦æ¡D(¦b BIOS ³]©w¤¤³q±`ºÙ¬° 'Large'¡D)²{¦b BIOS ±N§e²{ geometry ¬°(C',H',S')µ¹ §@·~¨t²Î, ¦Ó¦b»PºÏºÐ±±¨î¾¹·¾³q®É«h¨Ï¥Î(C,H,S)¡D ³q±` S=S', C'=C/N ¦Ó H'=H*N, ¨ä¤¤ N ¬O½T«O C'<=1024 ¤§ 2 ªº³Ì¤p¦¸¤è(©Ò¥H C'=C/N ®É±Ë¥hªº¼Æ®ö ¶O¤Ö³\®e¶q)¡D¦A¤@¦¸, ³o¤¹³\¦s¨ú³Ì¦h¹F 7.875 GB¡D ¦pªG BIOS ¤£ª¾¹D 'Large' ©Î¬O 'LBA', ¨º»òÁÙ¬O¦³³nÅ骺¸Ñ¨M¤è®×¡D¹³¬O OnTracker ©Î EZ-Drive ³o¨ÇӺϺк޲zµ{¦¡·|¥H¥¦Ì¦Û¤vªº¨ç¦¡(routines)´À ´«±¼ BIOS ªº¡D ³q±`³o¬OÂǥѱNºÏºÐºÞ²zµ{¦¡©ñ¦b MBR ¤Î¨ä«á´XÓºÏ °Ï(OnTrack ºÙ³o¨Çµ{¦¡½X¬° DDO: Dynamic Drive Overlay )¨Ó¹F¦¨ªº, ©Ò¥H¥¦ ·|¦b¥ô¦ó¨ä¥¦§@·~¨t²Î¤§«e³Q±Ò°Ê¡D ³o¤]´N¬O¬°¤°»ò¦b¦w¸ËºÏºÐºÞ²zµ{¦¡«á±q³n ºÐ±Ò°Ê¥i¯à·|¥X°ÝÃD¡D ³o¼vÅT¥i¯à¦h©ó©Î¤Ö©ó BIOS Âà´« - ¦ý¯S§O¬O¦b¬Û¦PªººÏºÐ¤W¶]¼ÆºØ¤£¦Pªº§@·~ ¨t²Î®É, ºÏºÐºÞ²zµ{¦¡¥i¯à¤Þ°_³\¦h°ÝÃD¡D Linux ±q 1.3.14 ª©¶}©l¤ä´© OnTrack ºÏºÐºÞ²zµ{¦¡, ±q 1.3.29 ¶}©l ¤ä´© EZ-Drive ¡D¤U±¦³¨Ç§ó¶i¤@¨Bªº¸ê°T¡D 5. ®Ö¤ßªº IDE ºÏºÐÂà´« ¦pªG Linux °»´ú¨ì IDE ºÏºÐ¤W¦³¬Y¨ÇºÏºÐºÞ²zµ{¦¡¦s¦b, ¥¦±N·|¸ÕµÛ¨Ï¥Î»P¸Ó ºÏºÐºÞ²zµ{¦¡¬Û¦Pªº¤è¦¡¨Ó«·s¹ïÀ³ºÏºÐ, ©Ò¥H Linux ¬Ý¨ì»P, ¨Ò¦p DOS °t¦X OnTrack ©Î¬O EZ-Drive ¬Û¦PªººÏºÐ¤À³Î¡D µM¦Ó, ·í§A¦b«ü¥O¦C¤W«ü©w geometry ®É, ´N¤£·|°µ¥ô¦óªº«·s¹ïÀ³ - ©Ò¥H¤@¦æ `hd=cyls,heads,secs' «ü ¥O¦C¿ï¶µ¥i¯à¨ú®ø±¼»PºÏºÐºÞ²zµ{¦¡ªº¬Û®e¡D ¦¹«·s¹ïÀ³ªº¤è¦¡¬O¹Á¸Õ 4,8,16,32,64,128,255 ºÏÀY¼Æ(H*C «O«ù¤£ÅÜ)ª½¨ì C <= 1024 ©Î¬O H = 255¡D ²Ó¸`¦p¤U - ¤p¸`ªº©ïÀY¬O¥X²{¦b¬Û¹ïÀ³¤§±Ò°Ê°T®§¸Ìªº¦r¦ê¡D¦b¦¹¥H¤Î¦b³o¥÷¤å ¥ó¥ô¦ó¨ä¥¦¦a¤è¤¤¤À³Îªº«¬ºA³£¥H¤Q¤»¶i¦ì¼Æ¦rªí¥Ü¡D 5.1 EZD °»´ú¨ì EZ-Drive , ¦]¬°²Ä¤@Ó¥Dn¤À³Î°Ï«¬ºA¬° 55 ¡D¦p¤Wz«·s¹ïÀ³ geometry, ¥B©¿²¤±q²Ä 0 ºÏ°ÏŪ¤Jªº¤À³Îªí - ¥H²Ä 1 ºÏ°Ïªº¤À³Îªí¨ú¥N¡DºÏºÐ ªº°Ï¶ô¸¹½X(block numbers) ¨S¦³§ïÅÜ, ¦ý¹ïºÏ°Ï 0 ªº¼g¤J·|Âà¦VºÏ°Ï 1¡D¦¹°Ê §@¥i¥HÂÇ¥Ñקï¦b ide.c ¤¤ªº #define FAKE_FDISK_FOR_EZDRIVE 0 ¨Ã«·s½sĶ®Ö¤ß¨Ó§ïÅÜ¡D 5.2 DM6:DDO °»´ú¨ì OnTrack DiskManager(¦b²Ä¤@ӺϺФW), ¦]¬°²Ä¤@Ó¥Dn¤À³Î°Ï«¬ºA¬° 54 ¡D¦p¤Wz«·s¹ïÀ³ geometry ¦Ó¥B¾ãӺϺХ²¾ 63 ӺϰϡD (©Ò¥HªººÏ°Ï 63 Åܦ¨ºÏ°Ï 0)µM«á±q·sªº²Ä 0 ºÏ°ÏŪ¤J·sªº MBR (»P¤À³Îªí)¡D¦¹¥²¾·íµM¬O ¬° DDO ¯dªÅ¶¡ - ³o¤]´N¬O¬°¤°»ò¨ä¥¦ºÏºÐ¤£¥²¥²¾¡D 5.3 DM6:AUX °»´ú¨ì OnTrack DiskManager(¦b¨ä¥¦ºÏºÐ¤W), ¦]¬°²Ä¤@Ó¥Dn¤À³Î°Ï«¬ºA¬° 51 ©Î 53¡D¦p¤Wz«·s¹ïÀ³ geometry ¡D 5.4 DM6:MBR °»´ú¨ì¬Yª©ªº OnTrack DiskManager, ¨Ã«DÂǥѤÀ³Î°Ï«¬ºA, ¦Ó¬Oñ ¦W(signature)¡D(´ú¸Õ¦b MBR ¸Ì²Ä 2,3 ¦ì¤¸²Õªº°¾²¾È¬O§_¤£¤j©ó 430, ¦Ó¥B ¦b¦¹°¾²¾¦ì§}§ä¨ìªº short µ¥©ó 0x55AA, «á±¨Ã¸òµÛ¤@Ó©_¼Æªº¦ì¤¸²Õ) ¦A¤@ ¦¸¦p¤Wz«·s¹ïÀ³ geometry ¡D 5.5 PTBL ³Ì«á, ®Ö¤ß·|¹Á¸Õ±q¥D¤À³Î°Ïªº start ¥H¤Î end ȱÀÂ_Âà´«¤è¦¡: Y¬Y¨Ç¤À³Î °Ïªº start ¥H¤Î end ºÏÁL¤p©ó 256, ¦Ó¥B start ¥H¤Î end ºÏ°Ï¸¹½X¤À§O¬° 1 ©M 63 , ¦Ó¥B end ºÏÀY¬° 31, 63, ©Î 127, ¨º»ò, ¦]¬°¨ÌºD¨Ò¤À³Î°Ï·|¦bºÏÁL Ãä¬Éµ²§ô, ¦Ó¥B§ó¦]¬° IDE ¤¶±³Ì¦h¨Ï¥Î 16 ÓºÏÀY, ¬G±À´ú¦³¶}±Ò BIOS Âà ´«, ¤À§O¨Ï¥Î 32, 64 ©Î 128 ºÏÀY¼Æ«·s¹ïÀ³ geometry¡D (¤]³\³o¸Ì¦³ÂI·å ²«, genhd.c ¤£À³¸Ó´ú¸ÕºÏÁL¸¹½X«e¨âӦ줸¶Ü?)µL½×¦p¦ó, ·í¥Ø«eªº geometry ¤w¸g¬°¨CºÏy 63 ӺϰϥB¦Ü¤Ö³o»ò¦hºÏÀY®É, ¤£·|°µ«·s¹ïÀ³ (¦]¬° ³o¥i¯à·N¿×µÛ«¹ïÀ³¤w§¹¦¨)¡D 6. µ²½× ³o¨ì©³·N¿×µÛ¤°»ò? ¹ï Linux ªº¨Ï¥ÎªÌ¦Ó¨¥¥u¦³¤@¥ó¨Æ: ´N¬O¥LÌ¥²¶·±o½T«O LILO ¥H¤Î fdisk ¨Ï¥Î¥¿½Tªº geometry , ¨ä¤¤'¥¿½T'ªº©w¸q¹ï fdisk ¦Ó¨¥¬O»P ¨ä¥¦¦b¦P¤@ӺϺФWªº§@·~¨t²Î©Ò¨Ï¥Îªº geometry ¬Û¦P, ¦Ó¹ï LILO ¦Ó¨¥¬O¯à °÷¦b±Ò°Ê®É´Á¦¨¥\¦a»P BIOS ¥æ½Íªº geometry¡D(³o¨âªÌ³q±`¬Û²Å¡D) fdisk ¦p¦ó±oª¾¸Ó geometry ? ¥¦¸ß°Ý®Ö¤ß, ¨Ï¥Î HDIO_GETGEO ioctl¡D¦ý¨Ï¥Î ªÌ¥i¥H¥æ½Í¦¡¦a©Î¦b«ü¥O¦C¤W«©w geometry¡D LILO ¦p¦ó±oª¾¸Ó geometry ? ¥¦¸ß°Ý®Ö¤ß, ¨Ï¥Î HDIO_GETGEO ioctl¡D ¦ý¨Ï¥Î ªÌ¥i¥H¥Î `disk=' ¿ï¶µ«©w¡D¤]¥i¥Hµ¹ LILO ¤@Ó linear ¿ï¶µ, ¦p¦¹¥¦±N¦b¨ä map Àɤ¤Àx¦s LBA ¦ì§}¥H¨ú¥N CHS ¦ì§}, ¨Ã¥B¦b±Ò°Ê®É´Á§ä¥X¸Ó geometry ¨Ó ¨Ï¥Î(ÂÇ¥Ñ INT 13 ¥\¯à©I¥s 8 ¨Ó¸ß°ÝºÏºÐªº geometry)¡D ®Ö¤ß¦p¦óª¾¹D¸Ó«ç»ò¦^µª? º¥ý, ¨Ï¥ÎªÌ¥i¯à¥H `hd=cyls,heads,secs' «ü¥O¦C ¿ï¶µ©ú½T¦a«ü©w geometry, §_«h®Ö¤ß±N¸ß°ÝµwÅé¡D 6.1 IDE ²Ó¸` Åý§Ú¸Ô²Ó»¡©ú¡DIDE ÅX°Êµ{¦¡¦³¥|ÓÃö©ó geometry ªº¸ê°T¨Ó·½¡D²Ä¤@ Ó(G_user)¬O¨Ï¥ÎªÌ¦b«ü¥O¦C¤W©Ò«ü©wªº¡D ²Ä¤GÓ(G_bios)¬O BIOS ªº©T©wºÏºÐ °Ñ¼Æªí(¥u¥Î©ó²Ä¤@¤Î²Ä¤GӺϺÐ), ¦b¨t²Î±Ò°Ê®É, ¤Á´«¦Ü 32 ¦ì¤¸¼Ò¦¡¤§«eŪ ¤J¡D ²Ä¤TÓ(G_phys)¤Î²Ä¥|Ó(G_log) ¬O¥Ñ IDE ±±¨î¾¹¶Ç¦^, §@¬°¹ï IDENTIFY «ü¥Oªº¦^À³ - ¥¦Ì¬O '¹êÅ骺' ¥H¤Î '¥Ø«eÅÞ¿è¤Wªº' geometries¡D ¥t¤@¤è±, ¹ï©ó geometry ÅX°Êµ{¦¡»Ýn¨âÓÈ: ¨ä¤¤¤§¤@¬O G_fdisk, ¥Ñ HDIO_GETGEO ioctl ¶Ç¦^, ¥t¤@Ó¬O G_used , ³o¬O°õ¦æ¿é¥X¡þ¤J®É¹ê»Ú¨Ï¥Îªº ¡D ¦pªGµ¹©w G_user «h G-fdisk ¥H¤Î G_used ¨âªÌ³£·|³]¬° G_user, ·í¦¹¸ê°T ¬O®Ú¾Ú CMOS ©Ò´£¨Ñ®É«h³]¬° G_bios , ¨ä¥¦±¡§Î³]¬° G_phys¡D¦pªG G_log ¬Ý °_¨Ó¦X²z«h G_used ´N³]¬° G_log¡D ¤£µM, ¦pªG G_used ¤£¦X²z¦Ó G_phys ¬Ý°_ ¨Ó¦X²z¨º»ò G_used ´N³]¬° G_phys¡D¦¹³Bªº'¦X²z'¥NªíºÏÀY¼Æ¦b 1-16 ªº½d³ò¤º ¡D ´«Ó¤è¦¡»¡: «ü¥O¦C¿ï¶µ¤j©ó BIOS , ¨Ã¥B¨M©w fdisk ¬Ý¨ìªº¼Ë¤l, ¦ý¦pªG¥¦«ü ©wÂà´«ªº geometry(ºÏÀY¼Æ¤j©ó 16), «h®Ö¤ß·|ÂÇ¥Ñ IDENTIFY «ü¥Oªº¿é¥X«©w ¥¦¡D 6.2 SCSI ²Ó¸` ¦b SCSI ¤è±±¡ªp¦³¤@ÂIÂI¤£¦P, ¦]¬° SCSI «ü¥O¤w¸g¨Ï¥ÎÅÞ¿è°Ï¶ô¸¹½X, ©Ò¥H 'geometry' ¹ï¹ê»Úªº¿é¥X¡þ¤J§¹¥þ¨SÃö«Y¡D µM¦Ó, ¤À³Î°Ïªº®æ¦¡¤´µM¬O¬Û¦P ªº, ©Ò¥H fdisk ¥²¶·±o®º³y¨Ç geometry , ¨Ã¥B¤]¦b¦¹¨Ï¥Î HDIO_GETGEO - ¯u ªº, fdisk ¤£·|¤À¿ë IDE ¥H¤Î SCSI ºÏºÐ¡D §A¥i¥H±q¤U±ªº¸Ô²Ó´yz¨£¨ì¦UºØ ÅX°Êµ{¦¡®º³y¤@¨ÇÓ¤£¦Pªº geometry ¡D¯u¬O, ¤@¹Î²V¶Ã¡D ¦pªG§A¨S¦³¨Ï¥Î DOS ©Î³oÃþ¨t²Î, ¨º»òÁקK¨Ï¥Î©Ò¦³ÃB¥~ªºÂà´«³]©w, ¥i¯àªº ¸Ü, ¾¨ºÞ¨Ï¥Î 64 ºÏÀY, ¨CºÏy 32 ºÏ°Ï (¨}¦nªº, ¤è«K¨CºÏÁL 1 MB), ¦p¦¹·í §A§âºÏºÐ±q¤@Ó±±¨î¾¹´«¨ì¥t¤@Ó¥h®É¤£·|¹J¨ì¥ô¦ó°ÝÃD¡D ¬Y¨Ç SCSI ºÏºÐÅX°Ê µ{¦¡ (aha152x,pas16,ppa,qlogicfas,qlogicisp)«D±`¦b·N»P DOS ªº¬Û®e©Ê¦Ó¤£ ¤¹³\¥u¦³ Linux ªº¨t²Î¨Ï¥Î¶W¹L 8 GB ªº®e¶q, ³o¬O°¦¯äÂΡD ¯u¹êªº geometry ¬O¤°»ò? ³Ì²³æªºµª®×¬O¨S¦³³oºØªF¦è¡D¦pªG¯u¦³ªº¸Ü, §A¤£ ·|·Qª¾¹D, ¦Ó¥Bªºªº½T½T±q¤£, ¥Ã¤£»Ý§i¶D fdisk ©Î¬O LILO ©Î®Ö¤ß¦³Ãö¥¦ªº¨Æ ¡D³oµ´¹ï¬O SCSI ±±¨î¾¹»PºÏºÐ¤§¶¡ªº¨Æ¡D Åý§Ú«Âгo¥y¸Ü: ¥u¦³Äø³J·|§i¶D fdisk/LILO/Kernel SCSI ºÏºÐ¯u¹êªº geometry ¡D ¦ý¦pªG§A¦n¾Ç¥B°í«ù, ¥i¥H°ÝºÏºÐ¾÷¦Û¤v¡D¦³Ó«n«ü¥O READ CAPACITY ±N·|¶Ç ¦^ºÏºÐªºÁ`®e¶q, ¦Ó¥B¦³Ó MODE SENSE «ü¥O Rigid Disk Drive Page(page 04) ·|¶Ç¦^ºÏÁL¥H¤ÎºÏÀYªº¼Æ¥Ø(³o¬O¤£¯à§ïÅܪº¸ê°T), ¦Ó¦b Format Page(page 03)¦³¨CºÏ°Ïªº¦ì¤¸²Õ, ¥H¤Î¨CºÏyªººÏ°Ï¼Æ¡D ³o¼Æ¦r¤@¯ë»P notch ¦³Ãö, ¦Ó¥B¨CºÏyªººÏ°Ï¼Æ¬OÅܰʪº - ¥~³òªººÏy¾Ö¦³¤ñ¤º°éºÏy¦hªººÏ°Ï ¡DLinux µ{¦¡ scsiinfo ·|µ¹¤©³o¶µ¸ê°T¡D ¨ä¤¤¦³³\¦hÁcº¾ªº²Ó¸`, ¦Ó¥B«Ü©ú¥Õ ªº, ¨S¦³¤H(¤]³\¬Æ¦Ü¬O§@·~¨t²Î)»Ýn¨Ï¥Î³o¶µ¸ê°T¡D ÁÙ¦³, ¦]¬°§ÚÌ¥uÃö¤ß fdisk ¥H¤Î LILO , ¤@¯ë±o¨ìªº¦^µª¹³ C/H/S=4476/27/171 - ³o¼ËªºÈ fdisk ®Ú¥»¤£¯à¨Ï¥Î, ¦]¬°¤À³Îªí¥u«O¯d 10resp. 8resp. 6 bits µ¹ C/H/S¡D ¨º®Ö¤ß¤§ HDIO_GETGEO ±q¦ó³B¨ú±o¨ä¸ê°T? ¶â, ¤£¬O±q SCSI ±±¨î¾¹, ´N¬O±À½× ²q´ú¡D ¦³¨ÇÅX°Êµ{¦¡¦ü¥G»{¬°§ÚÌ·Qª¾¹D '¯u¬Û' , ¦ý§ÚÌ·íµM¥u·Qª¾¹D DOS ©Î OS/2 FDISK (©Î Adaptec AFDISK µ¥µ¥)©Ò¥Îªº¡D ª`·N, Linux fdisk »ÝnºÏÀY¼Æ H ¥H¤Î¨CºÏyºÏ°Ï¼Æ S ¥H«KÂà´« LBA ºÏ°Ï¸¹½X ¦¨¬° c/h/s ¦ì§}, ¦ýºÏÁL¼Æ C ¦b¦¹Âà´«¤¤¨Ã¥¼§êºt¤°»ò¨¤¦â¡D ¦³¨ÇÅX°Êµ{¦¡¨Ï ¥Î (C,H,S) = (1023,255,63) ¨Óªí¥ÜºÏºÐ®e¶q¦Ü¤Ö¬° 1023*255*63 ӺϰϡD³o ¬O¤£©¯ªº, ¦]¬°³o¤£¯àÅã¥Ü¹ê»Úªº¤j¤p, ¦Ó¥B±N¨î¤j³¡¥÷ª©¥»¤§ fdisk ªº¨Ï¥Î ªÌ¨äºÏºÐ³Ì¤j¨ì 8 GB - ²{¤µ¹ê»Úªº¨î¡D ¦b¤U±ªº´yz¤¤, M ªí¥ÜºÏºÐªº¥þ³¡®e¶q, ¦Ó C,H,S ¬OºÏÁL, ºÏÀY¥H¤Î¨CºÏyºÏ °Ï¼Æ¡D¦pªG§Ú̧â C ·í§@ M/(H*S) ¨ºµ¹ H,S ´N¥i¥Hº¡¨¬¡D ¨Ì¹w³], H=64, S=32. aha1740, dtc, g_NCR5380, t128, wd7000: H=64, S=32. aha152x, pas16, ppa, qlogicfas, qlogicisp: H=64, S=32 °£«D C > 1024, ¦¹±¡ªp¤U H=255, S=63, C = min(1023, M/(H*S)). (¬G C ³QºIÂ_, ¥B H*S*C ¤£¬OºÏºÐ®e¶qªºªñ¦üÈ. ³o±N·|²V ·n²c¤j³¡¥÷ª©¥»ªº fdisk.) ppa.c µ{¦¡½X¨Ï¥Î M+1 ¨ú¥N M ¨Ã»{¬°³o¬O ¦]¬°¦b sd.c ¸Ìªº¤@°¦¯äÂÎ¨Ï M ªºÈ¤Ö¤@¡D advansys: H=64, S=32 °£«D C > 1024 ¦Ó¥BÁÙ¶}±Ò BIOS ¤¤ªº `> 1 GB' ¿ï¶µ, ¦¹ ±¡ªp¤U H=255, S=63. aha1542: ¸ß°Ý±±¨î¾¹¨Ï¥Î¨âºØ¥i¯àªº schemes ¤¤ªº¨º¤@ºØ, ¨Ã¥B¨Ï¥Î H=255, S=63 ©Î H=64, S=32. «eªÌ¦³Ó±Ò°Ê°T®§ "aha1542.c: Using extended bios translation". aic7xxx: H=64, S=32 °£«D C > 1024, ¦Ó¥BÁÙµ¹¤F "extended" ±Ò°Ê°Ñ¼Æ, ©Î¦b SEEPROM ©Î BIOS ³]¤F `extended' ¦ì¤¸, ¦¹±¡ªp¤U H=255, S=63. buslogic: H=64, S=32 °£«D C >= 1024, ¦Ó¥BÁٱҰʱ±¨î¾¹ªºÂX¥RÂà´«, ¦¹±¡ªp¤U Y M < 2^22 «h H=128, S=32; §_«h H=255, S=63. µM¦Ó, ¿ï¾Ü (C,H,S) ¤§«á, Ū¤J¤À³Îªí, Y¤TºØ¥i¯àªº (H,S) = (64,32), (128,32), (255,63) ¤¤ endH=H-1 ªºÈ¬Ý¨Ó¥i¦æ«h¨Ï¥Î¸Ó¹ï (H,S) , ¨Ã ¦L¥X±Ò°Ê°T®§ "Adopting Geometry from Partition Table". fdomain: ±q BIOS Drive Parameter Table §ä¥X geometry ¸ê°T, ©Î±q¤À³ÎªíŪ¨ú ¨Ã¨Ï¥Î H=endH+1, S=endS µ¹²Ä¤@Ó¤À³Î°Ï, Y«DªÅ, ©Î¨Ï¥Î H=64, S=32 for M < 2^21 (1 GB), H=128, S=63 for M < 63*2^17 (3.9 GB) and H=255, S=63 otherwise. in2000: ¨Ï¥Î (H,S) = (64,32), (64,63), (128,63), (255,63) ¤¤²Ä¤@ÓÅý C <= 1024 ªº. ¦¹±¡ªp¤U, ¦b 1023 ºI±¼ C . seagate: ±qºÏºÐŪ¨ú C,H,S. (¯u¸Û¹ê!) ¦pªG C ©Î S ¤Ó¤j, ©ñ¤J S=17, H=2 ¨Ã ¿¼W H ª½¨ì C <= 1024. ³oªí¥Ü H ±N¬° 0 ¦pªG M > 128*1024*17 (1.1 GB). ³o¬O°¦¯äÂÎ. ultrastor and u14_34f: ¤TºØ¹ïÀ³¤§¤@ ((H,S) = (16,63), (64,32), (64,63)) ®Ú¾Ú±±¨î¾¹ªº¹ï À³¼Ò¦¡¦Ó©w. ¦pªGÅX°Êµ{¦¡¨S¦³«ü©w geometry , §ÚÌ´N¦^¨ì¨Ï¥Î¤À³Îªí©ÎºÏºÐÁ`®e¶q¨Ó±ÀÂ_ ²q´ú¡D ¥J²Ó¬Ý¬Ý¤À³Îªí¡D¦]¬°¨ÌºD¨Ò¤À³Î°Ï¦bºÏÁLÃä¬Éµ²§ô, §ÚÌ¥i¥H¬°¥ô¦ó¤À³Î°Ï©w end=(endC,endH,ednS) , ¥un©ñ¤J H = endH+1 ¤Î S = endS¡D (°O±oºÏ°Ï¥Ñ 1 °_ºâ¡D)§ó©ú½T¦aªº»¡¡D¦pªG¦³Ó¤£¬OªÅªº¤À³Î°Ï, «h¥H³Ì¤jªº beginC p¡D ¹ï ©ó¦¹¤À³Î°Ï, ¬Ý¬Ý end+1, pºâ¥[¤W start ¥H¤Î length ¨Ã¥B°²³]¦¹¤À³Î°Ï¦b¬Y ºÏÁLÃä¬Éµ²§ô¡D ¦pªG¨âÓȳ£¬Û²Å, ©Î endC = 1023 ¥B start+length ¬O (endH+1)*endS ªº¿¼Æ, ¨º»ò°²©w¦¹¤À³Î°Ï¯uªº¬O¦bºÏÁLÃä¬É, ¨Ã©ñ¤J H = endH+1 ¥H¤Î S = endS¡D ¦pªG¤£¹ï, ¤£¬O¦]¬°¨S¦³¤À³Î°Ï, ´N¬O¦]¬°¥¦Ìªº¤j¤p «Ü©_©Ç, ¨º»ò¥u¬ÝºÏºÐ®e¶q M¡D ºtºâªk: ©ñ¤J H = M/(62*1024)(µL±ø¥ó¶i ¦ì),S = M/(1024*H)(µL±ø¥ó¶i¦ì), C = M/(H*S)(µL±ø¥ó±Ë¥h)¡D³o¯à²£¥Í¤@ (C,H,S) ¨ä¤¤ C ³Ì¤j 1024 ¦Ó S ³Ì¤j 62¡D References 1. mailto:aeb@cwi.nl 2. mailto:asdchen@ms1.hinet.net