÷ƒ’À;è TeX output 2003.11.26:1330‹ÿÿÿÿ Û_2 ý ~? ÕÁ ýZݺóþÖëI½q½qecss2074»La›ÿwmrge–fÑDisk“HO˜WTOŽ¤ ®„ØcÕÁGŽŽ¡ó 1ê± ecrm1000¹Andries›U Brou•¸èw“er,˜óqLË ectt1000¼aeb@cwi.nl’æzç¹v2.2m,˜15˜F‘ÿ*¸ebbraio˜2000Ž¡Ÿ&°óŒ6 ecss1000½Notizie–¤;fondamentali“sulla“geometria“dei“dischi“e“sul“limite“dei“1024“cilindri.‘^ÒT‘ÿ*¸raduzione“di“Gianluca“V¸èezz€ù,Ž¡óø8‹ ecsi1000¾vezzu@tin.it‘U ½.ŽŸ(Àœó&Lt$ffffecbx1440À1Ž‘ÁLa‘G\problematicaŽŸ¿:¹F‘ÿ*¸acciamo–¦Ðl'ipšGotesi“di“a•¸èv“ere–¦Ðun“disco“c¸èhe“abbia“pi€ù“di“1024“cilindri.‘fIp˜otizziamo“inoltre“di“a•¸èv“ere–¦Ðun“sistemaŽ¡opGerativ•¸èo›\Ñc“he˜utilizzi˜la˜v“ecc“hia˜in“terfaccia˜all'I/O‘\Ïdel˜disco˜fornita˜dall'INT13.‘ˆ“A‘þã vremo˜allora˜un˜problemaŽ¡pGercš¸èh€é–7 tale“in˜terfaccia“pšGer“indirizzare“le“op˜erazioni“di“I/O‘7™su“di“un“generico“cilindro“impiega“un“camp˜o“a“10Ž¡bit,–U pšGertan¸èto“i“cilindri“dal“1024“in“p˜oi“sono“inaccessibili.Ž¤ؼPš¸èer–U fortuna“Lin˜ux“non“utilizza“le“c˜hiamate“al“BIOS,“eliminando“cos€ì“ogni“ev˜en˜tuale“problema“alla“radice.Ž¡PurtroppšGo–U le“cose“non“v‘ÿqÐanno“b˜ene“in“due“casi:Ž¡(1)–°×Quando“fate“il“b•Go“ot–°×Lin¸èux“non“sta“ancora“girando“e“quindi“non“pu€ò“preserv›ÿqÐarvi“dai“problemi“deriv˜an¸ètiŽ© ®dal–U BIOS.“Ci€ò“ha“delle“ripšGercussioni“p˜er“LILO“e“p˜er“analoghi“b˜o˜ot“loader.Ž¡(2)–z€È‘(necessario“c¸èhe“tutti“i“sistemi“opšGerativi“installati“sullo“stesso“disco“concordino“sulla“lo˜cazione“delleŽ¦partizioni.‘ In–„úaltri“termini,›Ððse“utilizzate,˜sia“Linš¸èux“c˜he,›ÐðpGer“esempio,˜DOS,“en•¸ètram“bi–„úi“sistemi“opGerativiŽ¦dev•¸èono›ˆLin“terpretare˜la˜tab•Gella˜delle˜partizioni˜nello˜stesso˜mo“do.‘ Ci€ò˜comp“orta˜delle˜conseguenze˜p“er˜ilŽ¦kš¸èernel–U di“Lin˜ux“e“pGer“¼fdisk¹.Ž¡Appresso–L:si“ripšGorta“una“descrizione“dettagliata“di“tutti“gli“argomen¸èti“pi€ù“imp˜ortan¸èti.‘n‰Prestate“attenzione“alŽ¦fatto–Ûcš¸èhe“come“riferimen˜to“ho“utilizzato“la“v˜ersione“2.0.8“del“k˜ernel.‘¤±Le“altre“v˜ersioni“pGossono“a˜v˜ere“delleŽ¦leggere‘U dierenze.ŽŸ(ÀœÀ2Ž‘ÁSommarioŽŸ¿:¹Hai–¡appGena“acquistato“un“n•¸èuo“v“o–¡disco.›ËChe“fare“adesso?˜Bene,‘OÁdal“punš¸èto“di“vista“soft˜w˜are“usi“¼fdisk“¹(oŽ¦meglio–òxancora“¼cfdisk¹)“pšGer“creare“le“partizioni,‘Îp˜oi“¼mke2fs“¹p˜er“creare“il“lesystem,‘Îe“p˜er“nire“¼mount“¹p˜erŽ¦attaccare–U il“n•¸èuo“v“o–U lesystem“a“quello“esisten¸ète.Ž¡ó½HЃ ecti1000ÁCir–ÿ}/c“a–µ¯un“anno“fa“p›ÿ}/otevo“scriver˜e:‘ȹNon–cÑhai“bisogno“di“leggere“questo“HO•¸èWTO‘c”pGerc“h€é–cÑÁnon‘(&¹ci“sono“pi€ù“problemiŽ¦con–ÙSgli“hard“disk“di“grandi“dimensioni“attuali.‘þLa“maggior“parte“di“quelli“cš¸èhe“sem˜brano“essere“problemi“€èŽ¦doš¸èvuta–¥~agli“uten˜ti“c˜he“pGensano“c˜he“ci“pGossa“essere“un“problema“e“quindi“installano“un“gestore“dei“disc˜hi,‘¹–oŽ¦enš¸ètrano–Ð¥nella“moGdalit€à“a˜v‘ÿqÐanzata“di“¼fdisk¹,‘ï†o“spGecicano“esplicitamen˜te“la“geometria“del“disco“a“LILO‘Ð…o“laŽ¦passano–U al“k¸èernel“da“riga“di“comando.Ž¡T‘ÿ*¸uttaš¸èvia,‘€ale–wºtipGologie“di“problemi“pi€ù“com˜uni“sono:‘¶µ(i)“hardw˜are“obsoleto,‘€a(ii)“presenza“di“sistemi“opGerativiŽ¦sullo–U stesso“disco“e“qualcš¸èhe“v˜olta“(iii)“la“fase“di“b•Go“ot.Ž¡ÁA¾˜ttualmente–p`la“situazione“€è“p–ÿ}/e“ggior“ata.‘A#¹Probabilmenš¸ète–Ela“v˜ersione“2.3.21“e“le“succesiv˜e“pGermetteranno“diŽ¦n•¸èuo“v“o–U la“gestione“di“tutti“i“tipi“di“disc¸èhi.Ž¡Consigli:Ž¡Discš¸èhi–SCSI‘di“grandi“dimensioni:‘PüLin˜ux“li“suppGorta“sin“dalle“prime“v˜ersioni.‘[ÓNon“€è“ric˜hiesta“nessuna“azioneŽ¦spGecica.ŽŽŽŒ‹* Û_2 ý ~?Ÿ„€ÕÁGŽó]fŒ ecbx1000Ä3.‘ñ8Unit€à–Õdi“Misura“e“Dimensioni’(‹e¹2ŽŽ ÕÁ ýV¯Disc¸èhi–{AIDE‘{8di“grandi“dimensioni“(supšGeriori“agli“8.4“GB):“pro˜curati“un“kš¸èernel“stabile“recen˜te“(2.0.34“o“supGe-Ž¤ ®riore).‘ËÙDi–s>norma“tutto“do¸èvrebbšGe“pro˜cedere“b˜ene,‘zÅsp˜ecialmenš¸ète“se“sarete“cos€ì“saggi“da“non“c˜hiedere“al“BIOSŽ¡la–U traslazione“del“disco“con“la“LBA“o“con“accorgimen¸èti“simili.Ž©ؼDiscš¸èhi–¯IDE‘¯di“grandissime“dimensioni“(supGeriori“ai“33.8“GB):“v‘ÿqÐai“alla“sezione“12.1“(Problemi“dei“con˜trollerŽ¡IDE›Ç(con–LJdisc¸èhi“di“dimensioni“oltre“i“34“GB).“Se“LILO˜si“blošGcca“in“fase“di“b˜o˜ot“sp˜ecica“l'opzione“¼5.1Ž¡(linear)–U ¹nel“le“di“congurazione“¼/etc/lilo.conf¹.Ž¦Ci–Rçsono“dei“problemi“legati“alla“geometria“cš¸èhe“pGossono“essere“risolti“fornendo“esplicitamen˜te“la“geometria“alŽ¡k¸èernel/LILO/fdisk.Ž¦Se–œÐutilizzate“una“vš¸èersione“datata“di“¼fdisk“¹e“vi“d€à“un“a˜vviso“di“6“(o˜v˜erlapping)“partitions:‘Xignorate“i“messaggi,Ž¡oppure–U conš¸ètrollate“con“¼cfdisk“¹c˜he“sia“tutto“a“pGosto.Ž¦Se–Äccesso–Õal“Disco’lV͹3ŽŽ ÕÁ ýV¯Ã3.2Ž‘¾Dimensione–¸del“DiscoŽŸMª¹Un–)˜disco“con“C–)cilindri,‘ž¶H“testine–)˜e“S›)settori“pGer“traccia“ha“C¼*¹H¼*¹S˜settori“totali“e“pu€ò“memorizzareŽ¤ ®C¼*¹H¼*¹S¼*¹512›…)b•¸èyte.‘ œP“er˜esempio,‘,se˜l'etic“hetta˜del˜disco˜ripGorta˜C/H/S=4092/16/63˜allora˜il˜disco˜haŽ¡4092¼*¹16¼*¹63=4124736–y2settori“e“pu€ò“conš¸ètenere“4124736¼*¹512=2111864832“b˜yte“(2.11“GB).“C'€è“un'accordo“in-Ž¡dustriale–ð*pGer“assegnare“ai“disc¸èhi“pi€ù“grandi“di“8.4“GB‘ðle“dimensioni“C/H/S=16383/16/63,‘[cos€ì“la“dimensioneŽ¡del–U disco“non“pu€ò“pi€ù“essere“letta“dalla“terna“di“v‘ÿqÐalori“C/H/S“ripGortata“dal“disco.ŽŸ(ÀœÀ4Ž‘ÁAcccesso–G\al“DiscoŽŸ¿:¹Pš¸èer–‘åpGoter“leggere“o“scriv˜ere“qualsiasi“cosa“su“un“disco“ošGccorre“sp˜ecicare“una“p˜osizione“sul“disco“stesso“p˜erŽ¡esempio–Ô,indicando“il“nš¸èumero“del“settore“o“del“bloGcco.‘F„Se“il“disco“€è“SCSI‘Ô il“n˜umero“del“settore“viene“passato“alŽ¡con¸ètroller–:=SCSI›:6ed“€è“capito“dal“disco.‘hŠSe“il“disco“€è“un“IDE˜c¸èhe“utilizza“la“moGdalit€à“LBA˜si“ha“la“stessa“cosa.Ž¡Ma–jse“il“disco“€è“obsoleto,‘"õRLL›Zo“MFM˜o“IDE˜senza“suppGorto“LBA˜allora“l'hardw¸èare“del“disco“si“aspGetta“unaŽ¡terna–U (cilindro,testina,settore)“pGer“individuare“il“pun¸èto“desiderato“sul“disco.Ž©ؼLa–r¯corrispGondenza“tra“la“nš¸èumerazione“lineare“e“la“terna“di“tre“cifre“€è“di“seguito“mostrata.‘Ê,P˜er“un“disco“conŽ¡C– _cilindri,‘³GH“testine– re“S› _settori/traccia“la“pGosizione“indicata“dalla“notazione“come“terna“o“CHS˜(c,h,s)“€è“laŽ¡stessa–„edi“quella“indicata“dalla“notazione“lineare“o“LBA–„Yc¼*¹H¼*¹S“+›„eh¼*¹S“+˜(s-1)˜(la˜sottrazione˜di˜una˜unit€à˜€èŽ¡legata–U al“fatto“cš¸èhe“nella“notazione“come“terna“i“settori“sono“con˜tati“a“partire“da“1“e“non“da“0).Ž¦Concludendo–™²pšGossiamo“dire“c¸èhe“p˜er“accedere“ad“un“disco“non“SCSI‘™ obsoleto“€è“necessario“conoscerne“la“suaŽ¡Áge‘ÿ}/ometria‘u¹ossia–U i“v‘ÿqÐalori“C,“H“e“S.ŽŸ#ÃÃ4.1Ž‘¾A ccesso–¸BIOS“al“Disco“e“il“Limite“dei“1024“cilindriŽŸMª¹Al–]3conš¸ètrario“di“altri“sistemi“Lin˜ux“non“utilizza“il“BIOS.“Il“BIOS,“an˜teceden˜te“all'LBA,“fornisce“le“routine“diŽ¡I/O‘ð®su–ðÇdisco“attra•¸èv“erso–ðÇl'INT13“cš¸èhe“prev˜edono“come“ingresso“la“terna“(c,h,s)“(pi€ù“precisamen˜te:‘?T¼AH‘ð®¹selezionaŽ¡la–Ÿfunzione“da“utilizzare,‘M?¼CH‘l¹conš¸ètiene“gli“8“bit“bassi“del“n˜umero“dei“cilindri,‘M?¼CL‘l¹con˜tiene“nei“bit“7-6“i“dueŽ¡bit–Ñalti“del“nš¸èumero“dei“cilindri“e“nei“bit“5-0“il“n˜umero“del“settore,‘ïÿ¼DH‘Ðå¹con˜tiene“il“n˜umero“delle“testine“e“¼DLŽ¡¹conš¸ètiene–š^il“n˜umero“iden˜ticativ˜o“del“driv˜e“(80h“or“81h).‘A9Questo“spiega“una“parte“dello“sc˜hema“della“ta˜v˜olaŽ¡delle‘U partizioni).Ž¦Noi–vabbiamo“la“terna“CHS‘dcošGdicata“su“tre“b¸èyte“in“cui“10“bit“sono“p˜er“il“n¸èumero“dei“cilindri,‘˜8“p˜er“le“testineŽ¡e–š'6“pGer“il“nš¸èumero“dei“settori“(n˜umerati“da“1“a“63).‘@”Da“ci€ò“risulta“come“il“n˜umero“dei“cilindri“pGossa“v‘ÿqÐariareŽ¡da–U 0“a“1023“e“come“il“BIOS“non“sia“in“grado“di“indirizzare“pi€ù“di“1024“cilindri.Ž¦I›^¸programmi–^ºpGer“DOS˜e“Windoš¸èws“non“sono“stati“moGdicati“quando“sono“stati“in˜troGdotti“i“disc˜hi“IDE‘^¸con“ilŽ¡suppGorto–¾§LBA›¾Œcos€ì“sia“il“DOS˜cš¸èhe“Windo˜ws“con˜tin˜uano“ad“a˜v˜er“bisogno“della“geometria“del“disco“solo“pGerŽ¡pšGoter–*.dialogare“con“il“BIOS,“pur“non“essendo“necessaria“p˜er“le“op˜erazioni“di“I/O.“Questo“signica“cš¸èhe“Lin˜uxŽ¡ha– ;bisogno“di“conoscere“la“geometria“del“disco“in“quei“sistemi“o•¸èv“e– ;sia“ric¸èhiesto“il“dialogo“tra“BIOS‘ e“altriŽ¡sistemi–U opGerativi“presenš¸èti,“anc˜he“con“un“disco“attuale.Ž¦Questi–ª#problemi“sono“iniziati“pi€ù“o“meno“circa“quattro“anni“fa,‘¿cquando“apparvš¸èero“disc˜hi“c˜he“non“pGotev‘ÿqÐanoŽ¡essere–Φindirizzati“dalle“funzioni“dell'INT13“(pšGerc¸èh€é“i“10+8+6=24“bits“della“terna“(c,h,s)“non“p˜ossono“indi-Ž¡rizzare–šöpi€ù“di“8.5“GB)‘šäe“fu“quindi“progettata“una“n•¸èuo“v‘ÿqÐa›šöin“terfaccia˜pGer˜il˜BIOS:˜la˜cosidetta˜INT13˜EstesaŽ¡do•¸èv“e›:MDS:SI‘:Fpun“ta˜ad˜un˜Disk˜A“ddress˜P“ac“k“et˜di˜16˜b“yte˜c“he˜con“tiene˜un˜n“umero˜assoluto˜di˜inizio˜bloGcco˜diŽ¡8‘U b¸èyte.Ž¦Molto›G#len•¸ètamen“te˜il˜mondo˜Microsoft˜sta˜traghettando˜v“erso˜l'utilizzo˜delle˜funzioni˜fornite˜dall'INT13˜Esteso.Ž¡Probabilmenš¸ète–‘%fra“p•Go“c˜hi–‘%anni“nessun“sistema“moGderno“equipaggiato“con“hardw˜are“moGderno“necessiter€à“pi€ùŽ¡del–U concetto“di“"geometria“del“disco".ŽŽŽŒ‹Í Û_2 ý ~?Ÿ„€ÕÁGŽÄ4.‘ñ8A®>ccesso–Õal“Disco’lV͹4ŽŽ ÕÁ ýV¯Ã4.2Ž‘¾Storia–¸del“BIOS“e“dei“limiti“dell'IDEŽŸ#ÄSpQÂecic®>he›ÕA–ÿ ºT“A˜(pQÂer˜disc®>hi˜IDE)˜-˜il˜limite˜dei˜137˜GBŽŽŽ©®‘¹65536–|«cilindri“(nš¸èumerati“da“0-65535),‘†Ž16“testine“(n˜umerate“da“0-15),‘†Ž255“settori/traccia“(n˜umerati“daŽ¤ ®‘1-255),‘*vcorrispGondono–ÿËa“267386880“settori“(di“512“bš¸èyte“ciascuno)“c˜he“equiv‘ÿqÐalgono“ad“un“massimo“diŽ¡‘136902082560–±mbš¸èyte“(137“GB).“Questo“non“€è“un“problema“attuale“(1999)“ma“lo“div˜err€à“tra“qualc˜he“anno.ŽŸ®ÄBIOS–ÕIn®>t“13“-“il“limite“degli“8.5“GBŽŽŽ¦‘¹1024–Ûvcilindri“(nš¸èumerati“da“0-1023),‘ý 256“testine“(n˜umerate“da“0-255),‘ý 63“settori/traccia“(n˜umerati“daŽ¡‘1-63),‘îcorrispGondono–õÅa“8455716864“bš¸èyte“(8.5“GB).“Questo“€è“un“limite“molto“gra˜v˜oso“ai“nostri“giorniŽ¡‘pGercš¸èh€é–U signica“c˜he“il“DOS“non“pu€ò“utilizzare“i“disc˜hi“di“grosse“dimensioni“attuali.ŽŸ®ÄIl–Õlimite“dei“528“MBŽŽŽ¦‘¹Se–î«gli“stessi“v‘ÿqÐalori“c,h,s“sono“utilizzati“dalla“c¸èhiamata“all'INT›îƒ13“del“BIOS˜e“dal“con¸ètroller“I/O˜IDEŽ¡‘en•¸ètram“bšGe–,¡le“limitazioni“si“so¸èvrapp˜ongono“p˜ermettendo“l'accesso“al“massimo“a“1024“cilindri,‘4º16“testine,Ž¡‘63–/Asettori/traccia“pGer“una“capacit€à“totale“di“528482304“b¸èyte“(528MB),“l'infame“limite“dei“504“MiB‘/7delŽ¡‘DOS‘vncon–vvi“v•¸èecc“hi–vvBIOS.“Questo“problema“si“€è“senš¸ètito“a“partire“dal“1993“circa“e“gli“uten˜ti“sono“ricorsiŽ¡‘ai–fpi€ù“sv‘ÿqÐariati“truccš¸èhi“sia“hardw˜are“(LBA)‘Usia“rm˜w˜are“(traslazione“del“BIOS)‘Usia“soft˜w˜are“(gestori“deiŽ¡‘discš¸èhi).‘pnIl–ªconcetto“di“'traslazione'“€è“stato“in˜trošGdotto“nel“1994:‘til“BIOS‘ªpu€ò“usare“una“geometria“p˜erŽ¡‘dialogare–&¯con“il“disco“e“un'altra,–/ùconš¸ètraatta,“pGer–&¯dialogare“con“il“DOS‘&£ed“eettuare“la“con˜v˜ersione“traŽ¡‘le‘U due.ŽŸ®ÄIl–Õlimite“dei“2.1“GB“(Aprile“1996)ŽŽŽ¦‘¹Alcuni–LBIOS›K¿datati“alloGcano“solo“12“bit“nella“CMOS˜RAM˜pGer“memorizzare“il“n¸èumero“dei“cilindri.‘!ComeŽ¡‘conseguenza–°¤il“v›ÿqÐalore“massimo“rappresen¸ètabile“€è“4095.‘„ Da“ci€ò“deriv˜a“cš¸èhe“sono“indirizzabili“solamen˜teŽ¡‘4095¼*¹16¼*¹63¼*¹512=2113413120–ÇDbš¸èyte.‘B7Se“si“ha“un“disco“pi€ù“grande“si“a˜vr€à“un“bloGcco“del“sistema“in“fase“diŽ¡‘aš¸èvvio.‘UtQuesto–üha“reso“i“disc˜hi“con“la“geometria“4092/16/63“abbastanza“diusi.‘UtAncor'oggi“molti“disc˜hiŽ¡‘di–I$grandi“dimensioni“hanno“un“jumpšGer“p˜er“fornire“la“geometria“4092/16/63“P¸èer“ulteriori“informazioni:Ž¡‘Áover2gb.htm‘U ¹.‘q€ÁA¾˜ltri‘“°BIOSŽ¦‘¹non–U si“bloGccano“ma“rilev‘ÿqÐano“un“disco“molto“pi€ù“piccolo,“ad“esempio“429“MB“in•¸èv“ece–U di“2.5“MB.ŽŸ®ÄIl–Õlimite“dei“3.2“GBŽŽŽ¦‘¹I–W@BIOS“PhoGenix–WA4.03“e“4.04“a•¸èv“ev‘ÿqÐano–WAun“baco“cš¸èhe“causa˜v‘ÿqÐa“il“blošGcco“del“sistema“quando“si“imp˜osta¸èv‘ÿqÐanoŽ¡‘nel–U setup“della“CMOS“disc¸èhi“con“capacit€à“supGeriori“ai“3277“MB.“V‘ÿ*¸edi:‘q€Áover3gb.htm“¹.ŽŸ®ÄIl–Õlimite“dei“4.2“GB“(F‘ÿ ºeb“1997)ŽŽŽ¦‘¹La–(¼traslazione“eettuata“dal“BIOS›(…(ECHS=“CHS˜Estesa,‘]£detta“ancš¸èhe“'SuppGorto“ai“disc˜hi“di“grandiŽ¡‘dimensioni'–|‹o“semplicemenš¸ète“'Large')“ricorsiv‘ÿqÐamen˜te“raddoppia“il“n˜umero“delle“testine“e“con˜tempGo-Ž¡‘raneamenš¸ète–ï\dimezza“il“n˜umero“dei“cilindri“passati“al“DOS‘ï4nc˜h€é“il“n˜umero“dei“cilindri“€è“al“massimoŽ¡‘1024.‘û^Il–ƒDOS‘‚Çe“Windoš¸èws95“non“pGossono“gestire“256“testine,‘Î’e“nel“caso“abbastanza“com˜une“in“cuiŽ¡‘il–HÈdisco“fornisce“16“testine“ci€ò“signica“c¸èhe“questo“meccanismo“€è“utilizzabile“pGer“gestire“al“massimoŽ¡‘8192¼*¹16¼*¹63¼*¹512=4227858432–bš¸èyte“(con“una“geometria“con˜traatta“di“1024“cilindri,‘1128“testine“e“63Ž¡‘settori/traccia).‘2t€È›•ada–•qosserv‘ÿqÐare“c¸èhe“ECHS˜non“mošGdica“il“n¸èumero“dei“settori“p˜er“traccia,‘¥†cos€ì“se“nonŽ¡‘sono–U 63“la“capacit€à“gestibile“sar€à“ancora“pi€ù“bassa.–q€V‘ÿ*¸edi:“Áover4gb.htm‘U ¹.ŽŸ®ÄIl–Õlimite“dei“7.9“GBŽŽŽ¦‘¹Un–E{pšGo'“furb˜escamenš¸ète“alcuni“BIOS‘E=aggirano“il“problema“preceden˜te“ssando“a“15“il“n˜umero“di“tes-Ž¡‘tine–r('ECHS‘q·rivisto')“in“mošGdo“da“p˜oter“ottenere“una“geometria“con¸ètraatta“con“240“testine.‘È!SonoŽ¡‘indirizzabili–U 1024¼*¹240¼*¹63¼*¹512=7927234560“b¸èyte.ŽŽŽŒ‹1£ Û_2 ý ~?Ÿ„€ÕÁGŽÄ5.‘ñ8A‘þ¸øvvio–Õdel“sistema’f°f¹5ŽŽ ÕÁ ýV¯ÄIl–Õlimite“degli“8.4“GBŽŽŽ©®‘¹Se–cil“BIOS›O€è“in“grado“di“utilizzare“255“testine“e“63“settori/traccia“('LBA˜assistita'“o“pi€ù“semplicemen¸èteŽ¤ ®‘'LBA')‘¯ pu€ò–¯$indirizzare“1024¼*¹255¼*¹63¼*¹512=8422686720“bš¸èyte,‘Å¥un“pGo'“meno“del“limite“preceden˜te“di“8.5Ž¡‘GB‘vquesto–„pGercš¸èh€é“le“geometrie“con“256“testine“sono“da“evitarsi“(la“traslazione“utilizza“come“n˜umero“diŽ¡‘testine–ŒBH‘Œ4il“primo“v‘ÿqÐalore“della“sequenza“16,–š 32,“64,“128,“255–ŒBpGer“il“quale“la“capacit€à“totale“sia“minoreŽ¡‘ošGd–gúeguale“a“1024¼*¹H¼*¹63¼*¹512,‘l±quindi“calcola“il“n¸èumero“dei“cilindri“C‘gõcome“la“capacit€à“totale“diviso“p˜erŽ¡‘(H¼*¹63¼*¹512)).ŽŸ®ÄIl–Õlimite“dei“33.8“GB“(Agosto“1999)ŽŽŽ¦‘¹Ci–s{sono“ulteriori“dicolt€à“con“discš¸èhi“di“dimensioni“supGeriori“ai“33.8“GB.“Il“problema“sta“nel“fatto“c˜heŽ¡‘i–Cdv‘ÿqÐalori“predeniti“di“16“testine“e“63“settori/traccia“corrisp•Gondo“o–Cdad“un“n¸èumero“di“cilindri“maggiore“diŽ¡‘65535,‘›quan•¸ètit€à› ºc“he˜non˜€è˜rappresen“tabile˜da˜una˜v‘ÿqÐariabile˜di˜tipGo˜short.‘X´A“ttualmen“te˜molti˜BIOS‘ §nonŽ¡‘sono–U in“grado“di“gestire“tali“unit€à(v¸èedi“pGer“esempio:‘q€ÁA‘ÿ}/ggiornamenti‘“°AsusŽ¦‘¹pGer–Y"troš¸èv‘ÿqÐare“v˜ersioni“aggiornate“del“BIOS‘Xßc˜he“suppGortino“tali“unit€à).‘}‡I‘Xßk˜ernel“preceden˜ti“le“v˜ersioniŽ¡‘2.2.14–t/“2.3.21“devš¸èono“essere“aggiornati.‘& V‘ÿ*¸edi“12.1“(Problemi“dei“con˜troller“IDE‘tFcon“disc˜hi“di“dimensioniŽ¡‘supGeriori–U ai“34“GB)“pi€ù“sotto.ŽŸؼPš¸èer–Šnulteriore“materiale“su“questo“argomen˜to“v˜edi:‘ÜÁBr–ÿ}/e“aking–°?the“Barriers–Šn¹("RompšGere“le“barriere"),‘×Âe“p˜erŽ¡ulteriori–U dettagli“ÁIDE–“°Har›ÿ}/d“Drive“Cap˜acity“Barriers–U ¹("Limiti“della“capacit€à“degli“HD“IDE").Ž©ؼI›$Pdisc¸èhi–$\supGeriori“agli“8.4“GB˜ripGortano“la“loro“geometria“come“16383/16/63.‘a?Ci€ò“signica“c¸èhe“la“'geometria'Ž¡€è–U obsoleta“e“c¸èhe“la“capacit€à“totale“del“disco“non“pu€ò“pi€ù“essere“calcolata“dalla“geometria.ŽŸ(ÀœÀ5Ž‘ÁA‘þ=‹vvio–G\del“sistemaŽŸ¿:¹Quando–‡il“sistema“viene“inizializzato“il“BIOS›†úlegge“il“settore“0“(denito“come“MBR˜-“Master“BoGot“Record)Ž¡dal– primo“disco“sso“(o“dal“oppš¸èy)“e“lancia“il“programma“c˜he“vi“tro˜v‘ÿqÐa“-“di“solito“un“b•Go“otstrap‘ loader.‘™lIlŽ¡loader–ßkresidenš¸ète“nel“settore“0“non“ha“i“suoi“driv˜er“pGer“cui“utilizza“i“servizi“del“BIOS.“Ci€ò“signica“c˜he“il“k˜ernelŽ¡di–U Linš¸èux“dev˜e“essere“in˜teramen˜te“con˜ten˜uto“nei“primi“1024“cilindri“pGer“essere“caricato.Ž¦Questo–tÏproblema“si“risolvš¸èe“molto“semplicemen˜te“v˜ericando“c˜he“il“k˜ernel“(e“gli“altri“le“utilizzati“duran˜te“ilŽ¡b•Go“ot,‘èFcome–Íle“mappGe“dei“le“di“LILO)‘Ìísia“in“una“partizione“con•¸èten“uta›Íin“tieramen“te˜nei˜primi˜1024˜cilindri˜delŽ¡disco–Cin“mošGdo“c¸èhe“il“BIOS‘Cvi“p˜ossa“accedere“-“probabilmen¸ète“questo“signica“utilizzare“il“primo“o“il“secondoŽ¡disco.Ž¦Create–?Wquindi“una“piccola“partizione,›vådiciamo“di“10“MB,“cos€ì“c'€è“spazio“pGer“pi€ù“di“un“k¸èernel,˜facendo“attenzioneŽ¡cš¸èhe–Nsia“con˜ten˜uta“en˜tro“i“primi“1024“cilindri“del“primo“o“del“secondo“disco.‘]åMon˜tatela“in“¼/boot“¹cos€ì“LILO‘?viŽ¡metter€à–U i“le“di“cui“necessita.ŽŸ#ÃÃ5.1Ž‘¾LILO–¸e“l'opzione“`linear'ŽŸMª¹Un–Êaltro“problema“€è“cš¸èhe“sia“il“b•Go“ot–Êloader“c˜he“il“BIOS‘Éêdev˜ono“v˜edere“la“stessa“geometria“del“disco.‘Ð9LILOŽ¡inoltra–2}al“kš¸èernel“la“ric˜hiesta“di“informazioni“circa“la“geometria“ma“molte“v˜olte“gli“autori“dei“driv˜er“dei“disc˜hiŽ¡hanno–yla“brutta“abitudine“di“utilizzare“la“ta•¸èv“ola–ydelle“partizioni“pGer“desumere“la“geometria“del“disco“in•¸èv“eceŽ¡di–š®spšGecicare“a“LILO‘šœqual“€è“la“geometria“utilizzata“dal“BIOS.“Cos€ì“facendo“sp˜esso“la“geometria“fornita“dalŽ¡BIOS›‘non–‘€è“corretta.‘%yIn“questi“casi“pu€ò“essere“con•¸èv“enien“te–‘passare“a“LILO˜l'opzione“`¼linear¹'“in“moGdo“c¸èheŽ¡non–0necessitando“dei“parametri“della“geometria“duran¸ète“la“fase“di“inizializzazione“del“sistema“(memorizza“gliŽ¡indirizzi–l(lineari“nelle“mappGe)“faccia“la“con•¸èv“ersione–l(in“indirizzi“lineari“all'a•¸èvvio.‘#ÙP“erc“h€é–l(questa“non“€è“un'opzioneŽ¡predenita?‘ƒ’Bene,‘\¨oGccorre–[&tener“presenš¸ète“c˜he“il“suo“uso“compGorta“un“problema.‘ƒ’LILO‘[%con“l'opzione“`linear'Ž¡attiv‘ÿqÐata–ܹnon“€è“in“grado“di“conoscere“il“n¸èumero“dei“cilindri“come“conseguenza“non“pu€ò“generare“nessunŽŽŽŒ‹Bç Û_2 ý ~?Ÿ„€ÕÁGŽÄ6.‘ñ8Geometria–Õdei“discš®>hi“ssi,“delle“partizioni“e“'so˜vrappQÂosizione'’ŒYm¹6ŽŽ ÕÁ ýV¯a•¸èvv“ertimen“to–ÿïse“una“parte“del“kš¸èernel“si“tro˜v‘ÿqÐa“oltre“il“limite“dei“1024“cilindri.‘UAlla“ne“vi“pGotreste“tro˜v‘ÿqÐare“conŽ¤ ®un–U sistema“cš¸èhe“non“€è“in“grado“di“a˜vviarsi.Ž©#ÃÃ5.2Ž‘¾Un–¸"bug"“di“LILOŽŸMª¹Le–Ò¹vš¸èersioni“di“LILO‘Ò˜inferiori“alla“v21“hanno“un“difetto:‘l±la“con˜v˜ersione“degli“indirizzi“eettuata“duran˜te“laŽ¡fase–òÿdi“a¸èvvio“ha“un“"bug":‘­?quando“il“prošGdotto“c*H‘ò×€è“maggiore“o˜d“eguale“a“65536“si“hanno“degli“errori“diŽ¡o•¸èv“ero“w›lÑduran“te˜il˜calcolo.‘¸“P“er˜v–ÿqÐalori˜di˜H‘lËsupGeriori˜a˜64˜si˜ha˜un˜limite˜pi€ù˜stretto˜sui˜v“alori˜attribuibili˜aŽ¡c–zþrispšGetto“al“solito“c“ó  b> cmmi10µ<“¹1024;‘íp˜er“esempio,‘„vcon“H=255“e“con“una“vš¸èersione“datata“di“LILO‘zôsi“dev˜e“a˜v˜ere“c“µ<Ž¡¹258–U (c=cilindro“do•¸èv“e–U risiede“l'immagine“del“kš¸èernel,“H=n˜umero“delle“testine“del“disco).Ž¦Ã5.3Ž‘¾1024–¸cilindri“non“sono“1024“cilindriŽŸMª¹Tim––©Williams“scrivš¸èe:‘ô’`Ho“la“mia“partizione“Lin˜ux“nei“primi“1024“cilindri“e“tutta˜via“non“c'€è“v˜erso“di“diŽ¡a¸èvviarla.›eQuando–/¸l'ho“ridimensionata“a“meno“di“1“GB‘/®le“cose“sono“andate“a“pGosto.'˜Cosa“pu€ò“essere?˜Bene,Ž¡il–ûdisco“in“parola“€è“un“disco“SCSI›ûcon“un“con¸ètroller“AHA2940UW˜c¸èhe“usa“sia“H=64,‘ S=32“(ossia“cilindri“di“1Ž¡MiB›ç=–û1.05“MB)˜c¸èhe“H=255,‘S=63“(ossia“cilindri“di“8.2“MB)˜a“seconda“delle“opzioni“impGostate“nel“rm•¸èw“areŽ¡e–¿nel“BIOS.“Senza“dubbio“il“BIOS‘¬assume“la“prima“e“tro¸èv‘ÿqÐa“il“limite“dei“1024“settori“in“corrispGondenza“di“unaŽ¡capacit€à–U di“1“GiB“menš¸ètre“Lin˜ux“utilizza“la“seconda“e“LILO“tro˜v‘ÿqÐa“il“limite“agli“8.4“GB.ŽŸ(ÀœÀ6Ž‘ÁGeometria–G\dei“discšchi“ssi,“delle“partizioni“e“'so˜vrapppœosizione'ŽŸ¿:¹Se–†$utilizzate“divš¸èersi“sistemi“opGerativi“sul“v˜ostro“disco“sso“ogn˜uno“a˜vr€à“a“dispGosizione“una“o“pi€ù“partizioni.Ž¡La–¡”pGosizione“delle“partizioni“devš¸èe“essere“univ˜ošGca“p˜er“tutti“i“sistemi“presen¸èti“onde“evitare“delle“conseguenzeŽ¡catastroc¸èhe.ŽŸؼIl–WžMBR‘Wconš¸ètiene“la“ta˜v˜ola“delle“partizioni“c˜he“descriv˜e“la“pGosizione“delle“partizioni“primarie.‘xúNella“ta˜v˜ola“ciŽ¡sono–U 4“campi“pšGer“le“4“partizioni“primarie,“ogni“camp˜o“€è“descritto“da“una“struttura“del“tip˜oŽ©ؼ¡‘ X¼struct–?¬partizione“{Ž¡‘þ°char–?¬attiva;‘~/*“0x80:“avviabile;“0:“non“avviabile“*/Ž¡‘þ°char–?¬inizio[3];‘¿/*“CHS“del“primo“settore“*/Ž¡‘þ°char‘?¬tipo;Ž¡‘þ°char–?¬fine[3];‘>\/*“CHS“dell'ultimo“settore“*/Ž¡‘þ°int–?¬partenza;‘>\/*“numero“identificativo“del“settore“a“32“bitŽ¡’ƒ7Ì(si–?¬conta“a“partire“da“0)“*/Ž¡–þ°int›?¬lunghezza;“/*˜numero˜totale˜dei˜settori˜a˜32˜bit˜*/Ž¡‘ X};Ž¦¹(do•¸èv“e–U CHS“signica“Cilindri/T‘ÿ*¸estine/Settori“-“Cylinder/Head/Sector).Ž©ؼla–à struttura“d€à“informazioni“ridondanš¸èti.‘»ELa“pGosizione“di“una“partizione“si“rica˜v‘ÿqÐa“dai“campi“¼inizio“¹e“¼fineŽ¡¹en•¸ètram“bi–U a“24“bit“e“dai“campi“partenza“e“¼lunghezza“¹questi“ultimi“a“32“bit.Ž¦Linš¸èux–Qmutilizza“solo“i“campi“¼inizio“¹e“¼lunghezza¹,‘…]pu€ò“quindi“gestire“partizioni“c˜he“abbiano“meno“di“232“settoriŽ¡(circa–~Y2TiB).“Questa“dimensione“€è“sessanš¸èta“v˜olte“pi€ù“grande“dei“disc˜hi“attualmen˜te“dispGonibili,‘©Nprobabilmen˜teŽ¡sar€à–U sucien¸ète“pGer“i“prossimi“otto“anni“e“forse“oltre.Ž¦(Le–p^partizioni“pGossono“essere“molto“grandi“tutta¸èvia“c'€è“un“limite“alla“dimensione“massima“di“un“singolo“leŽ¡c¸èhe–U nei“sistemi“a“32“bit“non“pu€ò“essere“pi€ù“grande“di“2GiB.)ŽŽŽŒ‹TÇ Û_2 ý ~?Ÿ„€ÕÁGŽÄ7.‘ñ8T‘ÿ ºraduzione–Õe“Gestori“dei“Disc®>hi’ª,¹7ŽŽ ÕÁ ýV¯Il–µ¤DOS›µ‹utlizza“i“campi“¼inizio“¹e“¼fine“¹e“la“c¸èhiamata“all'INT13“del“BIOS˜pGer“accedere“al“disco,‘ÍÅpu€ò“quindiŽ¤ ®indirizzare–êhdisc¸èhi“non“pi€ù“grandi“di“8.4“GB‘êMpur“eettuando“la“traslazione“(le“partizioni“non“pšGossono“sup˜erareŽ¡i–”2.1“GB‘ƒpšGerc¸èh€é“o˜ccorre“tener“con¸èto“delle“restrizioni“imp˜oste“al“lesystem“dalla“F‘þã A‘ÿ*¸T16).‘ZüLo“stesso“dicasi“p˜erŽ¡Windoš¸èws–U 3.11“e“WfW˜G“e“Windo˜ws“NT“3.*.Ž©ؼWindo¸èws–G„95“ha“il“suppšGorto“p˜er“l'in¸èterfaccia“all'INT13“Esteso“e“utilizza“un“tip˜o“sp˜eciale“di“partizione“(c,–J=e,“fŽ¡in•¸èv“ece–ü«di“b,–\6,“5)–ü«pšGer“indicare“c¸èhe“tale“partizione“pu€ò“essere“accessibile“in“questo“mo˜do.‘TQuando“si“utilizzanoŽ¡questi–^ktipi“di“partizione“i“campi“¼inizio“¹e“¼fine“¹conš¸ètengono“delle“informazioni“fasulle“(1023/255/63).‘DWindo˜wsŽ¡95–ppOSR2“ha“in¸ètrošGdotto“il“fylesystem“F‘þã A‘ÿ*¸T32“(partizioni“di“tip˜o“b“o“c)“c¸èhe“p˜ermette“partizioni“di“dimensioniŽ¡al–U massimo“di“2“TiB.Ž¦A‘~•cosa–~âsono“doš¸èvute“le“stupidaggini“c˜he“apprendiamo“da“¼fdisk“¹circa“la“`so˜vrappGosizione'“delle“partizioniŽ¡quando–Fœin“eetti“non“c'€è“nš¸èulla“di“sbagliato?‘EôBene“-“qualc˜he“v˜olta“c'€è“un“`errore':‘Txse“date“un'oGcc˜hiata“aiŽ¡campi–ß¼inizio“¹e“¼fine“¹di“tali“partizioni,‘ö¥come“fa“il“DOS,“queste“si“so¸èvrappGongono“(tale“`errore'“non“pu€ò“essereŽ¡corretto–åpšGerc¸èh€é“i“campi“non“p˜ossono“memorizzare“un“n¸èumero“di“cilindri“sup˜eriore“a“1024“-“ci“sar€à“sempreŽ¡`so¸èvrappšGosizione'–ÑCnon“app˜ena“aš¸èvrete“pi€ù“di“1024“cilindri).‘EŒT‘ÿ*¸utta˜via,‘ë¢se“v˜oi“date“uno“sguardo“ai“campi“¼inizioŽ¡¹e–_‰¼lunghezza¹,›b#come“fa“Lin¸èux,˜e“come“fa“ancš¸èhe“Windo˜ws“95“nel“caso“di“partizioni“di“tipGo“c,‘b#e“o“f“allora“tuttoŽ¡pro•Gcede›Ëæp“er˜il˜meglio.‘ÕÓConcludendo˜p“otete˜ignorare˜questi˜a•¸èvv“ertimen“ti˜quando˜usate˜¼cfdisk˜¹e˜sul˜v“ostroŽ¡disco–À¡€è“installato“solo“Lin¸èux.‘´Occorre“prestare“attenzione“quando“il“disco“€è“condiviso“con“il“DOS.“Usate“ilŽ¡comando›øç¼cfdisk–?¬-Ps“/dev/hdx˜¹e˜¼cfdisk“-Pt“/dev/hdx˜¹p•Ger˜con¸ètrollare˜la˜tab“ella˜delle˜partizioni˜del˜discoŽ¡¼/dev/hdx¹.ŽŸ(ÀœÀ7Ž‘ÁT‘þ®(raduzione–G\e“Gestori“dei“DiscchiŽŸ¿:¹La–Ϙgeometria“del“disco“(a“testine,‘êMcilindri“e“tracce)“€è“qualcosa“c¸èhe“ci“arriv‘ÿqÐa“dal“tempGo“di“MFM‘Ïve“RLL.“In“quelŽ¡p•Gerio“do–~xla“geometria“corrispGondev‘ÿqÐa“ad“una“realt€à“sica.‘íˆOggigiorno,‘ˆÎcon“le“in¸èterfacce“IDE‘~mo“SCSI,“nessunoŽ¡€è–Ê]pi€ù“inš¸èteressato“a“conoscere“la“geometria“`reale'“del“disco.‘Ñ8Il“n˜umero“di“settori“pGer“traccia“€è“v‘ÿqÐariabile“-“ciŽ¡sono–Npi€ù“settori“pGer“traccia“nelle“zone“pi€ù“esterne“del“disco“-“cosiccš¸èh€é“non“esiste“un“n˜umero“`reale'“di“settoriŽ¡pšGer–Gstraccia.‘lñAnzi“€è“l'esatto“opp˜osto:‘jªil“comando“IDE–GpINITIALIZE“DRIVE“P‘ÿ*¸ARAMETERS“(91h)–Gsserv¸èe“p˜erŽ¡ricš¸èhiedere– al“disco“quan˜te“testine“e“settori“pšGer“traccia“p˜ensa“di“a•¸èv“ere.‘IA€È‘œùabbastanza› com“une˜c“he˜i˜disc“hi˜diŽ¡grandi–=dimensioni“cš¸èhe“hanno“due“testine“com˜unic˜hino“al“BIOS‘)15“o“16“testine“men˜tre“il“BIOS‘)ne“ripGorta“255Ž¡all'uten¸ète.Ž¦P•¸èer›ÿll'uten“te˜€è˜meglio˜considerare˜un˜disco˜alla˜stregua˜di˜un˜v“ettore˜di˜settori˜n“umerati˜progressiv‘ÿqÐamen“teŽ¡0,1,....,‘¦>e–bÑlasciare“al“conš¸ètroller“del“disco“il“compito“di“loGcalizzare“i“settori.‘š”La“n˜umerazione“progressiv‘ÿqÐa“€èŽ¡denita‘U LBA.Ž¦Si– ripšGorta“adesso“il“funzionamen¸èto“logico.‘Y*Il“DOS,“o“qualsiasi“b˜o˜ot“loader,‘¸dialoga“con“il“BIOS‘ utilizzando“laŽ¡notazione–Â(c,h,s).‘^ Il“BIOS›³con•¸èv“erte–Âla“(c,h,s)“nella“notazione“LBA˜utilizzando“la“falsa“geometria“cš¸èhe“l'uten˜teŽ¡sta– utilizzando.‘6Se“il“disco“accetta“la“LBA› Ùallora“la“utilizza“nelle“opGerazioni“di“I/O˜su“disco.‘6Altrimen¸èti,Ž¡il–åöBIOS‘åÐla“ricon•¸èv“erte–åöin“(c',h',s')“utilizzando“la“geometria“falsa“in“uso“e“questi“n•¸èuo“vi–åöv‘ÿqÐalori“sono“impiegatiŽ¡nell'I/O–U su“disco.Ž¦€È‘ÈÏda–Èírimarcare“cš¸èhe“c'€è“un“pGo'“di“confusione“nell'utilizzo“dell'espressione“`LBA':“come“termine“c˜he“descriv˜eŽ¡le–gpšGossibilit€à“di“un“disco“signica“`Linear“Blo˜cš¸èk“A˜ddressing'“(al“con˜trario“dell'indirizzamen˜to“CHS),“men˜treŽ¡come–ÅNtermine“presenš¸ète“nel“setup“del“BIOS‘Å*descriv˜e“uno“sc˜hema“di“traslazione“c˜he“qualc˜he“v˜olta“viene“denitoŽ¡come–U `assisted“LBA'“-“cfr“pi€ù“sotto“4.2“(Linš¸èux“e“il“limite“degli“8“GiB“dei“con˜troller“IDE).Ž¦Se–ÜÅil“con¸ètroller“non“suppGorta“la“LBA›ܦma“€è“il“BIOS˜ad“eettuare“la“traduzione“si“ha“un“compGortamen¸èto“simileŽ¡a– quan¸èto“descritto“sopra“(nel“setup“del“BIOS‘ ë€è“spšGesso“indicata“come“mo˜dalit€à“`Large').‘“mIn“questo“caso“ilŽ¡BIOS›+vpassa–+al“sistema“opGerativ¸èo“la“geometria“(C',H',S')˜e“utilizza“(C,H,S)˜pGer“dialogare“con“il“con¸ètroller“delŽ¡disco.‘8Di–ã³norma“si“ha“c¸èhe:‘Ž¥S›ãŽ=“S',“C'˜=“C/N˜e“H'˜=“H*N,“do•¸èv“e‘ã³N˜rappresen“ta–ã³la“pi€ù“piccola“pGotenza“diŽ¡due–¤ecš¸èhe“assicura“la“v‘ÿqÐalidit€à“della“diseguaglianza“C'‘¤Qµ<¹=“1024“(si“spreca“spazio“a“causa“dell'arrotondamen˜toŽŽŽŒ‹c) Û_2 ý ~?Ÿ„€ÕÁGŽÄ8.‘ñ8T‘ÿ ºraduzione–Õdei“discš®>hi“IDE“opQÂerata“dal“k˜ernel’ܹ8ŽŽ ÕÁ ýV¯doš¸èvuto–U al“rappGorto“C'“=“C/N).“Anc˜he“in“questo“caso“si“pGossono“indirizzare“pi€ù“di“8.4“GB“(7.8“GiB).Ž¤ؼ(La–U terza“opzione“del“setup“€è“di“solito“`Normal',“c¸èhe“non“eettua“nessuna“traslazione).Ž¡Se–u›il“BIOS‘uPnon“suppšGorta“n€é“la“mo˜dalit€à“`Large'“n€é“la“`LBA'‘uPsi“devš¸èe“ricorrere“a“delle“soluzioni“soft˜w˜are.Ž¤ ®Gestori–‘´del“disco“("Disk“Manager")“come“OnT‘ÿ*¸racš¸èk“o“EZ-Driv˜e“sostituiscono“con“le“loro“routine“di“gestioneŽ¡del–Òdisco“quelle“del“BIOS.“Di“solito“vš¸èengono“installati“nell'MBR‘Ÿe“nei“settori“seguen˜ti“(OnT‘ÿ*¸rac˜k“denisceŽ¡questi–h„programmi“come“DDO:“Dynamic“Drivš¸èe“Ov˜erla˜y)“in“moGdo“c˜he“v˜engono“eseguiti“prima“del“sistemaŽ¡opGerativ•¸èo.‘q€P“er–U questo“motivš¸èo“quando“si“inizializza“il“sistema“da“disc˜hetto“ci“pGossono“essere“problemi.Ž©ؼI›7risultati–Kc¸èhe“si“ottengono“sono“pi€ù“o“meno“gli“stessi“di“quelli“forniti“da“un“BIOS˜c¸èhe“eettua“la“traduzione“-Ž¡ma,‘€mquando–wÄsono“presen¸èti“pi€ù“sistemi“opšGerativi“sullo“stesso“disco“ci“p˜ossono“essere“molti“problemi“deriv‘ÿqÐan¸ètiŽ¡dall'utilizzo–U dei“disk“manager.Ž¦Linš¸èux–.R€è“compatibile“con“OnT‘ÿ*¸rac˜k“Disk“Manager“dalla“v˜ersione“1.3.14“e“con“EZ-Driv˜e“da“quella“1.3.29.‘d‘AltriŽ¡dettagli–U sono“ripGortati“appresso.ŽŸ(ÀœÀ8Ž‘ÁT‘þ®(raduzione–G\dei“discšchi“IDE“oppœerata“dal“k˜ernelŽŸ¿:¹Se–r±il“kš¸èernel“di“Lin˜ux“rilev‘ÿqÐa“la“presenza“di“un“disk“manager“su“un“disco“IDE‘rgcerca“di“rimappare“il“discoŽ¡nello–}Ýstesso“moGdo“in“cui“l'ha“mappato“il“disk“manager,‘ˆ cos€ì“vš¸èede“le“stesse“partizioni“c˜he“ad“esempio“il“DOSŽ¡gestisce–‘¢con“OnT‘ÿ*¸racš¸èk“o“EZ-Driv˜e.‘'T‘ÿ*¸utta˜via“se“si“spGecica“la“geometria“da“riga“di“comando“NON‘‘PvieneŽ¡eettuata–ëƒla“rimappatura“del“disco.‘4ªUna“riga“di“comando“del“tipšGo“`¼hd=Ácilindri–ɼ,Átestine‘ÀO¼,Ásettori“¹'–ëƒfa“p˜erdereŽ¡ogni–U compatibilit€à“con“il“disk“manager.Ž¦Se–Itutto“questo“vi“d€à“fastidio“e“se“conoscete“qualcuno“cš¸èhe“pu€ò“ricompilarvi“un“n˜uo˜v˜o“k˜ernel“cer-Ž¡cate–¿Ãil“le“¼linux/drivers/block/ide.c“¹e“cancellate“dalla“funzione“¼ide_xlate_1024()“¹il“test:‘ FƼifŽ¡(drive-µ>¼forced_geom)–?¬ó !",š cmsy10¸f¼-;return“0;¸g¹.Ž¦La–aàrimappatura“si“fa,‘epšGosto“il“pro˜dotto“H*C‘aÜcostan¸ète,‘ev›ÿqÐariando“il“v˜alore“del“n¸èumero“di“testine“(4,–e8,“16,“32,Ž¡64,–U 128,“255)“ncš¸èh€é“si“v˜erica“C“µ<¹=“1024“o“H“=“255.Ž¦Il– }titolo“dei“paragra“cš¸èhe“seguono“corrispGonde“alle“stringhe“c˜he“appaiono“in“fase“di“b•Go“ot– }quando“Lin˜ux“rilev‘ÿqÐaŽ¡la–<signica“tutto“ci€ò?‘ EÛPš¸èer“gli“uten˜ti“Lin˜ux“una“sola“cosa:‘©½c˜he“dev˜ono“v˜ericare“c˜he“LILO‘ðÔe“¼fdiskŽ¦¹utilizzino–µŸla“geometria“corretta.‘’ýP¸èer“¼fdisk“¹la“geometria“`corretta'“€è“quella“utilizzata“dagli“altri“sistemiŽ¦opšGerativi–Qôinstallati“sullo“stesso“disco“men¸ètre“p˜er“LILO‘Qó€è“quella“c¸èhe“p˜ermette“un'in¸èterazione“senza“errori“conŽ¦il–U BIOS“in“fase“di“inizializzazione“(di“solito“i“due“aspGetti“coincidono).Ž¤ؼCome–›ªrilev‘ÿqÐa“la“geometria“¼fdisk¹?‘EInš¸èterroga“il“k˜ernel,‘­Lutilizzando“la“funzione“ioGctl.h“¼HDIO_GETGEO¹.“L'uten˜teŽ¦€è–U tuttaš¸èvia“in“grado“di“forzare“la“geometria“in“moGdo“in˜terattiv˜o“o“da“linea“di“comando.Ž¡Come–tBrilev‘ÿqÐa“la“geometria“LILO?“Inš¸èterroga“il“k˜ernel“utilizzando“la“ioGctl“¼HDIO_GETGEO¹.“T‘ÿ*¸utta˜via“l'uten˜te“pu€òŽ¦forzare–ª la“geometria“utilizzando“l'opzione“`¼disk=¹'“nel“le“¼/etc/lilo.conf“¹(cfr“lilo.conf(5)).‘pE€È‘©µpGossibileŽ¦fornire–gka“LILO›gfl'opzione“¼linear“¹in“moGdo“da“memorizzare“nella“mappa“dei“le“i“v‘ÿqÐalori“della“LBA˜in•¸èv“ece‘gkdeiŽ¦CHS‘Èée–É recupGerer€à“la“geometria“da“utilizzare“in“fase“di“aš¸èvvio“median˜te“la“funzione“8“dell'INT‘Èé13“pGer“ric˜hiedereŽ¦la–U geometria“del“disco.Ž¡Com'€è–ˆ­in“grado“di“rispGondere“il“k¸èernel?‘ 'Bene,›Õprima“di“tutto,˜l'utenš¸ète“pu€ò“a˜v˜er“spGecicato“una“geome-Ž¦tria–ßDesplicita“fornendo“le“opzioni“`¼hda=Ácyls–Ò¼,Áhe›ÿ}/ads“¼,Áse˜cs“¹'–ßDal“k¸èernel“da“riga“di“comando“(cfr.‘íb•Go“otparam(7)),Ž¦probabilm•¸èten“te–*di“pšGersona“o˜d“indicando“al“"b˜o˜ot“loader"“di“fornire“tali“v‘ÿqÐalori“al“k•¸èernel.‘ {P“er‘*esempio,Ž¦si–%pu€ò“indicare“a“LILO‘¯di“fornire“tali“informazioni“opzionali“aggiungendo“una“riga“del“tipGo“`¼append‘?¬=Ž¦"hda=Ácyls–Ò¼,Áhe›ÿ}/ads“¼,Áse˜cs“¼"¹'–“zin“¼/etc/lilo.conf“¹(cfr.–,Žlilo.conf(5)).“D'altroGcanš¸èto–“zil“k˜ernel“€è“in“grado“di“con-Ž¦getturare–U una“geometria“utilizzando“pGossibilmenš¸ète“i“v‘ÿqÐalori“otten˜uti“dal“BIOS“o“dai“dispGositivi“hardw˜are.Ž¡€È‘t†pGossibile–tŽ(a“partire“dalla“vš¸èersione“2.1.79)“cam˜biare“i“v‘ÿqÐalori“della“geometria“congetturata“dal“k˜ernel“utiliz-Ž¦zando–U il“lesystem“¼/proc¹.‘q€P¸èer“esempio:ŽŸŠZ‘óqLË ectt0900Æ#–¹Nsfdisk“-g“/dev/hdcŽ¤ Š=‘/dev/hdc:–¹N4441“cylinders,“255“heads,“63“sectors/trackŽ¡‘#–¹Ncd“/proc/ide/ide1/hdcŽŽŽŒ‹ ‡¾ Û_2 ý ~?Ÿ„€ÕÁGŽÄ10.‘ñ8Dettagli’‹^ѹ10ŽŽ ÕÁ ýV¯‘Æ#–¹Necho“bios_cyl:17418“bios_head:128“bios_sect:32“>“settingsŽ¤ Š=‘#–¹Nsfdisk“-g“/dev/hdcŽ¡‘/dev/hdc:–¹N17418“cylinders,“128“heads,“32“sectors/trackŽ¡‘#ŽŸ#ÃÃ9.1Ž‘¾Calcolo–¸dei“parametri“di“LILOŽŸMª¹Qualc•¸èhe›ùKv“olta˜€è˜utile˜impGostare˜una˜precisa˜geometria˜da˜riga˜di˜comando:‘¹Õ`¼hda=Ácyls–Ò¼,Áhe›ÿ}/ads“¼,Áse˜cs“¹'.‘^QuasiŽ¤ ®sempre–Zsi“vuole“un“v›ÿqÐalore“di“Áse‘ÿ}/cs‘Ò¹=63,‘1hlo“scopGo“di“fornire“tale“v˜alore“€è“quello“di“spGecicare“il“v˜alore“Áhe‘ÿ}/adsŽ¡¹(v‘ÿqÐalori– ragionev¸èoli“in“questo“p•Gerio“do– sono“Áhe›ÿ}/ads‘Ò¹=16“e“Áhe˜ads‘Ò¹=255).‘X(Quali“v‘ÿqÐalori“si“p•Gotrebb“ero› sp“ecicare˜p“erŽ¡Ácyls‘Ò¹?›hQuei–8´v‘ÿqÐalori“c¸èhe“forniranno“la“capacit€à“totale“corretta“di“C*H*S‘8¬settori.˜Pš¸èer“esempio,‘>cpGer“un“driv˜e“conŽ¡71346240–Êßsettori“(36529274880“b¸èyte)“si“p•Gotrebb“e–Êßcalcolare“C‘ÊÁcome“71346240/(255*63)=4441“(usando,‘èOe.g.,Ž¡il–2Óprogramma“¼bc¹)“e“fornire“quindi“come“parametri“di“a¸èvvio:‘,å¼hdc=4441,255,63¹.‘ ˜Come“si“pu€ò“stabilire“laŽ¡capacit€à–U totale“corretta?‘q€P¸èer“esempio:Ž©´å‘Æ#–¹Nhdparm“-g“/dev/hdc“|“grep“sectorsŽ¤ Š=‘¹Pgeometry‘ž†=–¹N4441/255/63,“sectors“=“71346240,“start“=“0Ž¡‘#–¹Nhdparm“-i“/dev/hdc“|“grep“LBAsectsŽ¡‘¹PCurCHS=16383/16/63,–¹NCurSects=16514064,“LBA=yes,“LBAsects=71346240ŽŸؼ¹indica–U due“mošGdi“p˜er“stabilire“il“nš¸èumero“totale“si“settori“pari“a“71346240.‘q€I“messaggi“del“k˜ernel:Ž¦‘Æ#–¹Ndmesg“|“grep“hdcŽ¡‘...Ž¡‘hdc:–¹NMaxtor“93652U8,“34837MB“w/2048kB“Cache,“CHS=70780/16/63Ž¡‘¹Phdc:–¹N[PTBL]“[4441/255/63]“hdc1“hdc2“hdc3!“hdc4“<“hdc5“>“...ŽŸؼ¹rip•Gortano›Ì?(p“erlomeno)˜34837*2048=71346176˜settori˜e˜70780*16*63=71346240˜settori˜(almeno).‘ÖÜIn˜questoŽ¤ ®caso–®«il“secondo“v‘ÿqÐalore“€è“quello“corretto“ma“in“generale“en•¸ètram“bi–®«sono“arrotondati“pGer“difetto.‘~"Questo“€è“unŽ¡buon–šòmošGdo“p˜er“denire“in“maniera“approssimata“le“dimensioni“del“disco“quando“¼hdparm“¹non“€è“disp˜onibile.Ž¡Non–ºassegnate“mai“a“Ácyls‘Œ'¹un“v‘ÿqÐalore“troppGo“grande!‘ UNel“caso“di“discš¸èhi“SCSI‘¹øil“n˜umero“preciso“dei“settori“€èŽ¡indicato–U dai“messaggi“forniti“dal“kš¸èernel“all'a˜vvio:Ž¦‘ÆSCSI–¹Ndevice“sda:“hdwr“sector=“512“bytes.“Sectors=“17755792“[8669“MB]“[8.7“GB]ŽŸؼ¹(MB–U e“GB“sono“arrotondati,“non“pGer“difetto,“e“in“`notazione“binaria').ŽŸ(ÀœÀ10Ž‘¬%DettagliŽŸèÃ10.1Ž‘%}¨Dettagli–¸sui“disc hi“IDE“-“le“sette“geometrieŽŸMª¹Il–‘ždriv¸èer“IDE‘‘mpu€ò“determinare“la“geometria“di“un“disco“in“quattro“moGdi.‘0UIl“primo“(G_user)“€è“quello“di“passareŽ¡le–J)informazioni“da“linea“di“comando.‘mØIl“secondo“(G_bios)“€è“la“lettura“in“fase“di“inizializzazione“della“T‘ÿ*¸a•¸èv“olaŽ¡dei–tMP¸èarametri“del“Disco“nel“BIOS‘tE(solo“pšGer“il“primo“e“il“secondo“disco)“prima“del“passaggio“alla“mo˜dalit€à“aŽ¡32–‚bit.‘¹¥Il“terzo“(G_phš¸èys)“e“il“quarto“(G_log)“sono“le“rispGoste“del“con˜troller“IDE‘Âeal“comando“IDENTIFY,Ž¡sono–U rispGettiv‘ÿqÐamen¸ète“la“geometria“`sica'“e“`logica'“del“disco.ŽŸؼIl–øKdrivš¸èer“ha“bisogno“di“due“v‘ÿqÐalori“pGer“determinare“la“geometria:‘·Öuno“€è“dato“da“G_fdisk,‘!otten˜uto“da“unaŽ¡c¸èhiamata–0na“¼HDIO_GETGEO‘0d¹ioGctl,›7Äl'altro“da“G_used,˜c¸èhe“€è“utilizzato“pšGer“le“op˜erazioni“di“I/O.“Sia“G_fdisk“c¸èheŽ¡G_used– Çsono“inizializzati“da“G_user“se“vš¸èengono“passati“i“v‘ÿqÐalori,‘81altrimen˜ti“da“G_bios“o“da“G_ph˜ys.‘’vSeŽ¡G_log–w~ha“un“v‘ÿqÐalore“ragionevš¸èole“questo“viene“assegnato“a“G_used.‘' Nel“caso“in“cui“G_used“non“sia“ragionev˜oleŽŽŽŒ‹ ˜" Û_2 ý ~?Ÿ„€ÕÁGŽÄ10.‘ñ8Dettagli’‹^ѹ11ŽŽ ÕÁ ýV¯ma–xlo“sia“G_phš¸èys“quest'ultimo“v‘ÿqÐalore“sar€à“assegnato“a“G_used.‘'ÔP˜er“`v‘ÿqÐalore“ragionev˜ole'“si“in˜tende“un“n˜umeroŽ¤ ®di–U testine“compreso“tra“1“e“16.Ž©ؼP¸èer–Š`dirla“in“altri“termini:‘Üi“parametri“passati“da“linea“di“comando“forzano“i“v‘ÿqÐalori“del“BIOS‘ŠSe“determinanoŽ¡la– âgeometria“cš¸èhe“v˜edr€à“¼fdisk¹.‘YÁT‘ÿ*¸utta˜via“se“i“parametri“si“riferiscono“ad“una“geometria“tradotta“con“pi€ù“di“16Ž¡testine–U l'I/O“del“kš¸èernel“sar€à“forzato“dai“v‘ÿqÐalori“rica˜v‘ÿqÐati“dal“comando“IDENTIFY.Ž¦Bisogna–G2osserv‘ÿqÐare“cš¸èhe“il“G_bios“€è“piuttosto“inattendibile:‘U¥pGer“i“sistemi“inizializzati“da“un“driv˜er“SCSI‘FôilŽ¡primo–Þôed“il“secondo“disco“pGossono“essere“SCSI›ÞÐe“la“geometria“c¸èhe“il“BIOS˜attribuisce“a“sda“€è“quella“usataŽ¡dal–¾êkš¸èernel“pGer“hda.‘®ÞT‘ÿ*¸utta˜via,‘Ù\i“disc˜hi“c˜he“non“sono“impšGostati“nel“Setup“del“BIOS‘¾Ïnon“p˜ossono“essere“vistiŽ¡da–¬quest'ultimo.‘v*Ci€ò“signica“c¸èhe,›Á¼pGer“esempio,˜in“un“sistema“IDE‘«ído•¸èv“e–¬non“sia“presen¸ète“hdb“le“geometrieŽ¡ripšGortate–U dal“BIOS“p˜er“il“primo“e“p˜er“il“secondo“disco“siano“attribuite“a“hda“e“hdc.ŽŸ#ÃÃ10.2Ž‘%}¨Dettagli–¸sui“disc hi“SCSIŽŸMª¹Pš¸èer–Çai“disc˜hi“SCSI‘Ç=la“situazione“€è“div˜ersa.‘BAQuesti“disc˜hi“utilizzano“la“LBA‘Ç=pGer“cui“determinare“una“`geometria'Ž¡€è–׿del“tutto“irrilev‘ÿqÐanš¸ète.‘ù]Il“formato“della“ta˜v˜ole“delle“partizioni“€è“praticamen˜te“lo“stesso,‘øg¼fdisk“¹dev˜e“crearsiŽ¡una–Å´qualcš¸èhe“geometria,‘áÚutilizza“¼HDIO_GETGEO¹,“pGerc˜h€é“non“€è“in“grado“di“distinguere“tra“disc˜hi“IDE‘Å—e“SCSI.Ž¡Come–U si“vš¸èedr€à“in“seguito“ogni“driv˜er“crea“una“sua“geometria.‘q€V‘ÿ*¸eramen˜te“una“grande“confusione.Ž¦Se–Ðánon“si“utilizza“il“DOS‘ÐÁ€è“meglio“evitare“le“impšGostazioni“di“traduzione“estese“ed“utilizzare“se“p˜ossibile“64Ž¡testine,‘–A32–Vsettori“pšGer“traccia“(p˜er“gli“esigen¸èti“pu€ò“andar“b˜ene“1MB‘UÅp˜er“cilindro)“cos€ì“facendo“si“evitanoŽ¡problemi–åóse“si“camš¸èbia“con˜troller.‘#úAlcuni“driv˜er“(aha152x,– (pas16,“ppa,“qlogicfas,“qlogicisp)–åósono“cos€ì“legatiŽ¡ai–khlimiti“del“DOS›kbda“non“pGermettere“l'utilizzo“di“pi€ù“di“8GiB˜ancš¸èhe“nel“caso“in“cui“Lin˜ux“sia“il“solo“sistemaŽ¡installato.‘q€Questo–U €è“un“baco.Ž¦Qual–*Ò€è“la“geometria“reale?›ò–La“rispGosta“pi€ù“facile“€è“c¸èhe“non“esiste.˜E‘*›se“ancš¸èhe“esistesse“v˜oi“non“do˜vresteŽ¡oGccuparvš¸èene–`Œe“di“sicuro“MAI–`‰E“POI“MAI“do˜vreste–`Œric˜hiedere“tali“informazioni“a“¼fdisk¹,‘cga“LILO‘`‰o“al“k˜ernel.Ž¡Questa–@€è“una“cosa“di“cui“di“ošGccupano“il“con¸ètroller“SCSI‘e“il“disco.‘{ßLasciatemelo“rip˜etere:‘Í¿solo“gli“stupidiŽ¡ricš¸èhiedono–U a“¼fdisk¹/LILO/k˜ernel“la“geometria“di“un“disco“SCSI.Ž¦T‘ÿ*¸uttaš¸èvia–Šöse“siete“pGersone“curiose“ed“insisten˜ti“pGotete“leggere“tali“v‘ÿqÐalori“dal“disco“stesso.‘Il“comando“READŽ¡CAP‘ÿ*¸A¸èCITY›Ýd€à–òla“capacit€à“totale“del“disco;‘WMODE˜SENSE˜ripGorta“il“n¸èumero“di“cilindri“e“testine“nella“RigidŽ¡Disk–DDrivš¸èe“Geometry“P˜age“(page“04,‘2questi“v‘ÿqÐalori“non“pšGossono“essere“mo˜dicati)“e“il“nš¸èumero“di“b˜yte“pGerŽ¡settore–8ƒe“i“settori“pšGer“traccia“nella“F‘ÿ*¸ormat“P¸èage“(page“03).‘göQuest'ultimo“v‘ÿqÐalore“dip˜ende“dalla“formattazioneŽ¡ed–¤€è“v‘ÿqÐariabile,‘µŠle“tracce“pi€ù“esterne“hanno“pi€ù“settori“di“quelle“in¸èterne.‘/Il“programma“¼scsiinfo“¹fornisce“questiŽ¡dati.‘b5Ci–ú²sono“molti“altri“dettagli“e“dicolt€à“da“supGerare,‘$€è“palese“c¸èhe“nessuno“utilizzer€à“questo“genere“diŽ¡informazioni–)N(molto“probabilmenš¸ète“nemmeno“lo“stesso“sistema“opGerativ˜o).‘båConsiderato“c˜he“stiamo“parlandoŽ¡di–@\¼fdisk“¹e“di“LILO‘@Wi“v›ÿqÐalori“tipici“sono:‘gC/H/S=4476/27/171,‘Dƒv˜alori“questi“c¸èhe“non“pGossono“essere“utilizzatiŽ¡da–U ¼fdisk“¹pšGerc¸èh€é“la“tab˜ella“delle“partizioni“riserv‘ÿqÐa“p˜er“la“terna“C/H/S“risp˜ettiv‘ÿqÐamen¸ète“18,“8“e“6“bit.Ž¦Ma–Y*allora“come“fa“¼HDIO_GETGEO‘Xç¹a“rica¸èv›ÿqÐare“tali“v˜alori?‘}žInš¸èterrogando“o“il“con˜troller“SCSI‘Xço“facendo“delleŽ¡ricš¸èhieste–ÜAappropriate“al“k˜ernel.‘I6Qualc˜he“driv˜er“sem˜bra“pGensare“c˜he“le“nostre“ric˜hieste“v˜ogliano“determinare“laŽ¡geometria–ï£reale“menš¸ètre“a“noi“in˜teressa“conoscere“il“v‘ÿqÐalore“dei“parametri“utilizzati“da“FDISK‘ïŠsia“c˜he“si“utilizziŽ¡DOS–U cš¸èhe“OS/2“(o“A˜daptec“AFDISK,“ecc...)Ž¦€È‘A%da–Absottolineare“cš¸èhe“¼fdisk“¹utilizza“il“n˜umero“delle“testine“H›A%e“dei“settori“pGer“traccia“S˜pGer“con•¸èv“ertire‘AbiŽ¡nš¸èumeri–cádei“settori“LBA‘c›nel“corrispGonden˜te“indirizzo“c/h/s;‘ëAil“n˜umero“dei“cilindri“C‘c›non“riv˜este“un“ruoloŽ¡impGortanš¸ète–ŸGin“questa“con˜v˜ersione.‘OôCerti“driv˜er“indicano“c˜he“la“capacit€à“del“driv˜e“€è“di“almeno“1023¼*¹255¼*¹63Ž¡settori–\Èassegnando“a“C,H,S‘\Æi“seguenš¸èti“v‘ÿqÐalori:1023,255,63.‘ˆyCos€ì“facendo“non“si“ottiene“la“v˜era“dimensione“delŽ¡disco–U e“si“limita“l'accesso“ai“primi“8GB“a“molte“vš¸èersioni“di“¼fdisk“¹-“un“v˜ero“problema“d'attualit€à.Ž¦Nelle–ÛTdescrizioni“a“seguire“con“M›Û5si“indica“la“capacit€à“totale“del“disco,‘ó°con“C,H,S˜il“n¸èumero“di“cilindri,‘ó°testineŽ¡e–U settori“pGer“traccia.‘q€€È“sucenš¸ète“ottenere“i“v‘ÿqÐalori“di“H“e“S“se“si“rica˜v‘ÿqÐa“C“dalla“relazione“M“/“(H¼*¹S).Ž¦I–U v›ÿqÐalori“predeniti“di“H“e“S“sono“rispGettiv˜amen¸ète“64“e“32.ŽŽŽŒ‹ ¦… Û_2 ý ~?Ÿ„€ÕÁGŽÄ10.‘ñ8Dettagli’‹^ѹ12ŽŽ ÕÁ ýV¯Äaha1740,–Õdtc,“g_NCR5380,“t128,“wd7000:ŽŽŽ¤]‘¹H=64,‘U S=32.Ž©^¦Äaha152x,–Õpas16,“ppa,“qlogicfas,“qlogicisp:ŽŽŽ¡‘¹H=64,›:RS=32– {se“C‘ Lµ<¼=“¹1024,˜altrimen¸èti“H=255,˜S=63,˜C‘ L=“min(1023,˜M/(H*S)).“(C‘ Lrappresen¸èta“unŽ¤ ®‘v‘ÿqÐalore–Æþtroncato,‘ãkH¼*¹S¼*¹C‘ÆÚnon“€è“un'approssimazione“della“capacit€à“M.“Pš¸èer“questo“molte“v˜ersioni“di“¼fdiskŽ¡‘¹si–¡½compšGortano“in“mo˜do“anomalo).‘WXIl“sorgenš¸ète“¼ppa.c“¹utilizza“M+1“in˜v˜ece“di“M‘¡gpGer“cui“genera“unŽ¡‘messaggio–U d'errore“dicendo“c¸èhe“M“€è“pi€ù“piccolo“di“1“a“causa“di“un“baco“in“¼sd.c¹.Ž¦Äadv‘ÿ\|ansys:ŽŽŽŸ]‘¹H=64,›NØS=32–MFse“C‘MDµ<¼=“¹1024,˜se“€è“abilitata“l'opzione“`µ>“¹1“GB'›MDnel“BIOS˜i“v›ÿqÐalori“assun¸èti“sono“rispGettiv˜a-Ž¡‘men¸ète–U 255“e“63.Ž¦Äaha1542:ŽŽŽŸ]‘¹Ricš¸èhiede–hal“con˜troller“quale“delle“due“traduzioni“pGossibili“sta“utilizzando“e“utilizza“o“H=255,‘¬ÍS=63Ž¡‘o–áH=64,‘AS=32.‘§ÃNel“primo“caso“duran¸ète“il“b•Go“ot–ási“ha“il“messaggio“"aha1542.c:‘ëUsing“extended“biosŽ¡‘translation".Ž¦Äaic7xxx:ŽŽŽŸ]‘¹H=64,›Þ¶S=32–ÿse“C‘­µ<¼=“¹1024,˜inoltre“se“viene“utilizzato“il“parametro“"extended"“o“si“impGosta“il“bitŽ¡‘`extended'–Onella“SEEPR¸èOM›NÁo“nel“BIOS˜i“v‘ÿqÐalori“saranno:‘eDH=255,‘zS=63.‘_&L'opzione“extended“vieneŽ¡‘sempre–YimpGostata“se“non“viene“rilev‘ÿqÐata“nessuna“SEEPRš¸èOM‘Jcon“il“k˜ernel“2.0.36“men˜tre“con“la“v˜ersioneŽ¡‘2.2.6–®»se“non“viene“troš¸èv‘ÿqÐata“la“SEEPR˜OM‘®l'opzione“€è“impGostata“solo“se“l'uten˜te“spGecica“in“fase“d'a˜vvio“ilŽ¡‘parametro–R "extended"“(nel“caso“vš¸èenga“rilev‘ÿqÐata“una“SEEPR˜OM“tale“parametro“v˜err€à“ignorato).‘pyT‘ÿ*¸uttoŽ¡‘ci€ò–signica“cš¸èhe“un“sistema“c˜he“funziona“con“il“2.0.36“pu€ò“non“a˜vviarsi“con“il“2.2.6“(e“ric˜hiedere“l'opzioneŽ¡‘`linear'–U pšGer“LILO“o“il“parametro“`aic7xxx=extended'“da“passare“al“k¸èernel“al“b˜o˜ot)Ž¦Äbuslogic:ŽŽŽŸ]‘¹H=64,‘ÝŸS=32–ÂSncš¸èh€é“C‘Â7µ>¼=“¹1024.‘¹Se“si“impGosta“la“traduzione“estesa“nel“con˜troller“si“hanno“due“casi“aŽ¡‘seconda–3cš¸èhe“sia“v˜ericata“o“meno“la“condizione“M‘µ<“¹222:‘ñ§nel“primo“caso“H=128,‘E8S=32“altrimen˜tiŽ¡‘H=255,‘W¿S=63.‘wËDopGo›W9a•¸èv“er˜eettuato˜la˜scelta˜della˜terna˜(C,H,S)‘W8viene˜letta˜la˜tabGella˜delle˜partizioniŽ¡‘e–§_si“vš¸èerica“c˜he“il“v‘ÿqÐalore“endH=H-1“appartenga“ad“una“delle“tre“condizioni“pGossibili“(H,S)‘§J=“(64,32),Ž¡‘(128,32),›ë|(255,63).‘Ú\Sar€à–Íiutilizzata“la“coppia“c¸èhe“soGddisfa“la“condizione,˜tale“scelta“€è“segnalata“da“unŽ¡‘messaggio–U duranš¸ète“il“b•Go“ot–U ("A˜dopting“Geometry“from“P˜artition“T‘ÿ*¸able").Ž¦Äfdomain:ŽŽŽŸ]‘¹Ricaš¸èv‘ÿqÐa–¡le“informazioni“sulla“geometria“o“dalla“tabGella“dei“parametri“BIOS‘del“driv˜e“o“dalla“ta˜v˜ola“delleŽ¡‘partizioni.‘6¢Utilizza–¤†i“v‘ÿqÐalori:‘3H=endH+1,›ÇØS=endS‘¤YpGer“la“prima“partizione,˜purc¸èh€é“non“sia“vuota,˜oppureŽ¡‘H=64,›'¬S=32–Ose“M‘Aµ<“¹221“(1“GB),“H=128,˜S=63“se“M›Aµ<“¹63¼*¹217“(3.9“GB)˜e“H=255,‘'¬S=63“in“tutti“gliŽ¡‘altri‘U casi.Ž¦Äin2000:ŽŽŽŸ]‘¹Utilizza–ûla“prima“coppia“di“v‘ÿqÐalori“(H,S)‘ë=“(64,32),–"œ(64,63),“(128,63),“(255,63)–ûcš¸èhe“v˜erica“la“condizioneŽ¡‘C–U µ<¼=“¹1024.‘q€Nell'ultimo“caso“il“v‘ÿqÐalore“di“C“€è“troncato“a“1023.Ž¦Äseagate:ŽŽŽŸ]‘¹Legge–;SC,H,S›;Mdal“disco“(orrore!).‘hçSe“C˜o“S˜sono“troppšGo“grandi“allora“imp˜osta“S=17“e“H=2“e“raddoppiaŽ¡‘H–%nc¸èh€é›4C“µ<¼=˜¹1024.‘^1Signica˜c¸èhe˜H“sar€à˜impGostato˜a˜zero˜nel˜caso˜in˜cui˜M“µ>˜¹128¼*¹1024¼*¹17˜(1.1˜GB).Ž¡‘Questo–U €è“un“baco.Ž¦Äultrastor–Õand“u14_34f:ŽŽŽŸ]‘¹Utilizza–vÖuna“coppia“di“v‘ÿqÐalori“(H,S)›vÎin“funzione“di“come“il“con¸ètroller“mappa“il“disco.‘Ö£((H,S)˜=“(16,63),Ž¡‘(64,32),‘U (64,63))ŽŽŽŒ‹ »½ Û_2 ý ~?Ÿ„€ÕÁGŽÄ11.‘ñ8Linš®>ux–Õe“il“limite“degli“8“GiB“dei“con˜troller“IDE’Æ¢:¹13ŽŽ ÕÁ ýV¯Se–Xil“driv¸èer“non“spšGecica“la“geometria“del“disco“p˜ossiamo“ric¸èhiedere“i“dati“alla“tab˜ella“delle“partizioni“oppureŽ¤ ®utilizzare–U tutta“la“capacit€à“del“disco.Ž©ؼDiamo–d9uno“sguardo“alla“tabGella“delle“partizioni.‘!3Pš¸èer“con˜v˜enzione“le“partizioni“terminano“in“un“cilindro“esternoŽ¡pšGer–ó:cui“dato“¼fine“¹=“(endC,endH,endS)‘ó!p˜er“una“partizione“qualsiasi“si“p˜one“H›ó!=“¼endH+1“¹e“S˜=“¼endS˜¹(ricordoŽ¡cš¸èhe–ý¯i“settori“si“con˜tano“a“partire“da“1).‘k,Il“proGcedimen˜to“€è“descritto“appresso“in“moGdo“pi€ù“preciso.‘k,T‘ÿ*¸ra“leŽ¡partizioni–²×non“vuote“si“considera“quella“con“il“v›ÿqÐalore“¼beginC‘²®¹pi€ù“grande.‘;hSi“con¸ètrolla“il“v˜alore“¼end+1“¹di“questaŽ¡partizione,‘Qcalcolato–ƒ­sia“come“somma“di“¼partenza“¹con“¼lunghezza“¹sia“ipGotizzando“c¸èhe“la“partizione“terminiŽ¡al–Ð{conne“di“un“cilindro.‘EISe“en•¸ètram“bi–Ð{i“v‘ÿqÐalori“coincidono,‘ëo“se“¼endC‘ÐY¹=“1023“e“la“somma“¼partenza+lunghezzaŽ¡¹€è–/fm¸èultiplo“di“¼(endH+1)*endS¹,“allora“la“partizione“€è“allineata“sul“conne“di“un“cilindro.‘RSi“pGongono“H‘/.=Ž¡¼endH+1–‚ï¹e“S‘‚ä=“¼endS¹.“Nel“caso“in“cui“le“v•¸èeric“he–‚ïsiano“negativš¸èe“o“pGerc˜h€é“non“ci“sono“partizioni“o“pGerc˜h€é“nonŽ¡hanno–-zdimensioni“note“si“utilizza“la“capacit€à“del“disco“M.“L'algoritmo“€è“cos€ì“sc¸èhematizzabile:‘"4pGorre“H‘-B=Ž¡M/(62¼*¹1024)–T´(arrotondato“all'in¸ètero“supGeriore),‘”™S›Tr=“M/(1024¼*¹H)˜(arrotondato“all'in¸ètero“supGeriore),‘”™C˜=Ž¡M/(H¼*¹S)›9ä(arrotondato–9ëall'in¸ètero“inferiore).‘hnI˜v‘ÿqÐalori“di“(C,H,S)˜c¸èhe“si“ottengono“sono“al“massimo“1024“pGer“CŽ¡e–U 62“pGer“S.ŽŸ(ÀœÀ11Ž‘¬%Linšcux–G\e“il“limite“degli“8“GiB“dei“con˜troller“IDEŽŸ¿:¹Il–Tdrivš¸èer“IDE‘SÐdi“Lin˜ux“rica˜v‘ÿqÐa“la“geometria“e“la“capacit€à“di“un“disco“(e“molte“altre“cose)“utilizzando“unaŽ¡ric¸èhiesta›U A–ÿ*¸T“A˜IDENTIFY.Ž¦Fino–d?a“p•Go“co›d?temp“o˜fa˜il˜driv•¸èer˜non˜accetta“v–ÿqÐa˜il˜v“alore˜di˜lba_capacit¸èy˜restituito˜se˜questo˜era˜maggioreŽ¡del–®P10%“rispšGetto“alla“capacit€à“calcolata“come“pro˜dotto“di“C¼*¹H¼*¹S.“Ci€ò“nonostan¸ète“grazie“ad“accordi“traŽ¡i–ÓÜproGduttori“di“disc¸èhi“IDE‘Óydi“grandi“dimensioni“(quelli“con“pi€ù“di“16514064“settori)“forniscono“i“v‘ÿqÐalori:Ž¡C=16383,–<`H=16,“S=63–6/pšGer“un“totale“di“16514064“settori“(7.8“GB)‘6(indip˜enden•¸ètemen“te–6/dalla“loro“dimensioneŽ¡reale–U cš¸èhe“forniscono“alla“lba_capacit˜y‘ÿ*¸.Ž¦I‘¸=kš¸èernel–¸epi€ù“recen˜ti“(2.0.34,‘×¾2.1.90)“conoscono“il“problema“e“si“compGortano“di“conseguenza.‘=BSe“a˜v˜ete“un“k˜ernelŽ¡datato–4cš¸èhe“v˜ede“solamen˜te“i“primi“8“GB‘di“un“disco“pi€ù“grande,‘0e“non“v˜olete“aggiornarlo,‘0pro˜v‘ÿqÐate“a“cam˜biareŽ¡la–U funzione“¼lba_capacity_is_ok“¹in“¼/usr/src/linux/drivers/block/ide.c“¹come“indicato:ŽŸ´å¤ Š=‘:$Æstatic–¹Nin“lba_capacity_is_ok“(struct“hd_driveid“*id)“{Ž¡‘_Û”id->cyls–¹N=“id->lba_capacity“/“(id->heads“*“id->sectors);Ž¡‘_Û”return‘¹N1;Ž¡‘:$}ŽŸؼ¹Pš¸èer–U fare“un“aggiornamen˜to“meno“brutale“utilizzate“il“k˜ernel“2.1.90.ŽŸ#ÃÃ11.1Ž‘%}¨Complicazioni–¸del“BIOSŽŸMª¹Come–—õgi€à“detto“i“discš¸èhi“di“grandi“dimensioni“forniscono“la“geometria“C=16383,–¨ªH=16,“S=63‘—õindipGenden˜te-Ž¤ ®menš¸ète–%ódalle“dimensioni“reali,‘Z'men˜tre“la“dimensione“reale“€è“indicata“dal“v‘ÿqÐalore“della“LBA˜capacit˜y‘ÿ*¸.‘ãøAlcuniŽ¡BIOS‘÷ non–÷#la“riconoscono,› ïe“traslano“il“16383/16/63“in“una“terna“con“meno“cilindri“e“pi€ù“testine,˜pGer“esempioŽ¡1024/255/63–ÄÓo“1027/255/63.‘À˜Cos€ì,‘à¿il“kš¸èernel“non“dev˜e“solo“riconoscere“la“geometria“16383/16/63“ma“anc˜heŽ¡quella–¿úgenerata“da“tali“BIOS.“Dal“kš¸èernel“2.2.2“questa“opGerazione“di“riconoscimen˜to“funziona“in“moGdo“correttoŽ¡(prendendo–pdal“BIOS›pi“v‘ÿqÐalori“H˜e“S˜e“calcolando“C˜=capacit€à/(H*S)).“Di“norma“questo“problema“si“risolv¸èeŽ¡impGostando–ÝÚnei“parametri“del“BIOS‘Ý·il“disco“come“Normal“(o,› ancor“meglio“a“None,˜non“fornendo“nessunaŽ¡indicazione–ppal“BIOS).“Se“questa“strada“non“€è“pšGercorribile“p˜ercš¸èh€é“do˜v˜ete“fare“il“b•Go“ot–ppda“questo“disco“oppureŽ¡a•¸èv“ete–øuna“partizione“DOS/Windoš¸èws,‘ ¹e“non“€è“pGossibile“aggiornare“la“v˜ersione“del“k˜ernel“alla“2.2.2“o“supGeriori,Ž¡passate–U al“kš¸èernel“i“parametri“duran˜te“il“b•Go“ot.ŽŽŽŒ‹Ë) Û_2 ý ~?Ÿ„€ÕÁGŽÄ11.‘ñ8Linš®>ux–Õe“il“limite“degli“8“GiB“dei“con˜troller“IDE’Æ¢:¹14ŽŽ ÕÁ ýV¯Se–Éil“BIOS‘—ripšGorta“la“geometria“16320/16/63“ci€ò“€è“fatto“p˜er“ottenere“dop˜o“la“traduzione“la“terna“1024/255/63.ŽŸؼQui–™c'€è“un“ulteriore“problema.‘={Se“il“disco“€è“stato“partizionato“usando“una“geometria“traslata“il“k¸èernel,Ž¤ ®duranš¸ète–”4la“fase“di“a˜vvio,‘£ùp•Gotrebb“e–”4v˜edere“tale“geometria“utilizzata“nella“tabšGella“delle“partizioni“e“rip˜ortare:Ž¡¼hda:‘ X[PTBL]‘?¬[1027/255/63]¹.‘#¼Questa–kÑ€è“una“brutta“faccenda“pGercš¸èh€è“ora“il“disco“e“di“soli“8.4“GB.“La“v˜ersioneŽ¡2.3.21–êha“corretto“questo“problema“tuttaš¸èvia“il“passaggio“dei“parametri“duran˜te“la“fase“di“a˜vvio“pu€ò“essereŽ¡d'aiuto.Ž©#ÃÃ11.2Ž‘%}¨Impš_úostare–¸il“n umero“delle“testine“p˜er“mezzo“dei“p˜on ticelli“(Jump˜er)ŽŸMª¹Molti–£Ëdiscš¸èhi“hanno“dei“pGon˜ticelli“c˜he“pGermetto“di“selezionare“una“geometria“a“15“o“a“16“testine.‘]La“cong-Ž¡urazione–# predenita“€è“quella“a“16“testine.‘Û;A‘"Ôvš¸èolte“en˜tram˜bGe“le“geometrie“indirizzano“lo“stesso“n˜umero“diŽ¡settori–ž”altre“quella“a“15“testine“ne“indirizza“un“nš¸èumero“inferiore.‘MÝC'€è“una“buona“ragione“come“spiega“P˜etriŽ¡Kauk‘ÿqÐasoina–½ëpšGer“spiegare“queste“due“opzioni:‘C`Ho“imp˜ostato“un“disco“IBM›½ÐDeskstar“16“GP˜(moGdello“IBM-Ž¡DTT‘ÿ*¸A-351010)–¨¦da“10.1“GiB‘¨zpGer“utilizzare“16“testine“come“da“congurazione“predenita“ma“il“mio“v•¸èecc“hio‘¨¦PCŽ¡(con›9hBIOS–9aAMI)“non˜si˜a•¸èvvia“v‘ÿqÐa˜cos€ì˜ho˜do“vuto˜sp•Gostare˜il˜p“on•¸èticello˜sull'opzione˜c“he˜d€à˜15˜testine.‘hChdparmŽ¡-i–[,ripšGorta“Ra¸èwCHS=16383/15/63“e“LBAsects=19807200.‘ƒ£Io“utilizzo“una“congurazione“20960/15/63“p˜erŽ¡pšGoter–îsfruttare“tutta“la“capacit€à“del“disco.'‘O*P¸èer“ulteriori“informazioni“su“come“p˜onš¸èticellare“tali“disc˜hi“visitateŽ¡il›U sito:‘q€Áhttp://www.stor–ÿ}/age.ibm.c“om/te“chsup/hddte“ch/hddte“ch.htm˜¹.Ž¦Ã11.3Ž‘%}¨Ridurre–¸la“capacit€à“totale“di“un“disco“medianš te“l'uso“dei“p_úon˜ticelliŽŸMª¹Molti–Jdiscš¸èhi“hanno“dei“pGon˜ticelli“c˜he“pGermettono“di“mostrare“le“dimensioni“del“disco“pi€ù“piccole“di“quelle“c˜heŽ¡sono.‘¶˜€È‘l"un–l(pGo'“stupido“a“farsi“e“probabilmenš¸ète“nessun“uten˜te“Lin˜ux“v˜orrebbšGe“mai“utilizzare“tale“esp˜edien¸èteŽ¡ma–½¤alcuni“BIOS‘½‰non“riescono“a“gestire“i“disc¸èhi“di“grandi“dimensioni“andando“in“"crash".‘« La“soluzione“pi€ùŽ¡comš¸èune–6†€è“quella“di“non“far“v˜edere“il“disco“all'a˜vvio“al“BIOS,“ma“€è“pGossibile“farlo“solo“se“il“disco“non“€è“quelloŽ¡di‘U a¸èvvio.Ž©ؼIl–F~primo“limite“gra•¸èv“e–F~era“il“limite“di“4096“cilindri“(c¸èhe“corrispGonde,‘Ilcon“16“testine“e“63“settori/traccia“a“2,11Ž¡GB).– »P¸èer“esempio,‘il“disco“F›ÿ*¸ujitsu“MPB3032A˜TU› ©da“3.24“GB˜ha“la“geometria“predenita“da“6704/15/63“maŽ¡pu€ò–·essere“pšGoticellato“p˜er“fornire“una“geometria“4092/16/63“e“rip˜ortare“di“conseguenza“una“LBA•¸ècapacit“yŽ¡di–†¶4124736“settori,‘“in“questo“mošGdo“il“sistema“op˜erativš¸èo“non“pu€ò“congetturare“c˜he“la“dimensione“reale“€è“pi€ùŽ¡grande.‘fIn–2Íquesti“casi“(con“un“BIOS‘2Äcš¸èhe“si“"sc˜hian˜ta"“se“riconosce“la“reale“dimensione“del“disco“€è“necessarioŽ¡ricorrere–åal“pGonš¸èticello)“€è“necessario“informare“Lin˜ux“sulle“dimensioni“del“disco“fornendo“i“parametri“all'a˜vvio.Ž¦Questo–$€è“un“caso“sfortunato.‘Z×Molti“disc¸èhi“pšGossono“essere“"p˜on¸èticellati"“in“mo˜do“da“semš¸èbrare“disc˜hi“da“2“GBŽ¡e–Þfornire“quindi“una“geometria“ridotta“tipGo“4092/16/63“o“4096/16/63“ma“in“grado“di“fornire“il“v‘ÿqÐalore“correttoŽ¡della› VLBA•¸ècapacit“y–ÿ*¸.‘š"T“ali˜disc•¸èhi˜sono˜in˜grado˜di˜la“v“orare˜bGene˜e˜di˜utilizzare˜la˜capacit€à˜totale˜con˜Lin“uxŽ¡indipšGenden•¸ètemen“te–U dalle“imp˜ostazioni“dei“p˜on¸èticelli.Ž¦Un–D«limite“pi€ù“recenš¸ète“€è“quello“dei“12.1“(33.8“GB).“I‘Dfk˜ernel“di“Lin˜ux“preceden˜ti“alla“v˜ersione“2.3.21“dev˜ono“essereŽ¡aggiornati–sòpšGer“p˜oter“gestire“disc¸èhi“IDE‘s¹di“dimensioni“sup˜eriori“a“queste.‘&qAlcuni“discš¸èhi“c˜he“supGerano“tale“limiteŽ¡pšGossono–Gessere“p˜on¸èticellati“p˜er“semš¸èbrare“dei“disc˜hi“da“33.8“GB.“P˜er“esempio“l'IBM‘2Deskstar“(DPT‘ÿ*¸A-353750)Ž¡da–n837.5“GB‘mýpu€ò“essere“pšGon¸èticellato“p˜er“sem¸èbrare“un“disco“da“33.8“GB‘mýe“fornire“la“geometria“16383/16/63“comeŽ¡un–šjqualsiasi“altro“disco“di“grandi“dimensioni,‘¿Áma“la“LBA•¸ècapacit“y–šjdi“66055248“(c¸èhe“corrispGonde“a“65531/16/63Ž¡o–ä°4111/255/63).‘LSfortunatamenš¸ète“i“pGon˜ticelli“sem˜brano“essere“troppGo“ecaci“-“non“inuenzano“solo“ci€ò“c˜he“ilŽ¡drivš¸èe–áÕfornisce“al“sistema“ma“anc˜he“le“opGerazioni“di“I/O:“P˜etr“Soucek“com˜unica“c˜he“questi“parametri“non“sonoŽ¡d'aiuto–¬=nel“caso“di“discš¸èhi“d'a˜vvio“-“pGon˜ticellando“tali“disc˜hi“ogni“accesso“ai“settori“oltre“il“settore“66055248Ž¡causa–£­un“errore“di“I/O.“T‘ÿ*¸uttaš¸èvia“con“sc˜hede“madri“c˜he“mon˜tino“il“BIOS‘£™A‘ÿ*¸w˜ard“4.51PG‘£™tali“disc˜hi“pGossonoŽ¡essere–»utilizzati“come“discš¸èhi“d'a˜vvio“ed“inoltre“in“tutta“la“loro“capacit€à.‘W´V‘ÿ*¸edi“anc˜he:‘JÍÁthe–L|BIOS›Lj33.8“GB˜limitŽ¡¹.ŽŽŽŒ‹Üw Û_2 ý ~?Ÿ„€ÕÁGŽÄ12.‘ñ8Il–Õlimite“dei“65535“cilindri“in“Lin®>ux’y¹15ŽŽ ÕÁ ýV¯À12Ž‘¬%Il–G\limite“dei“65535“cilindri“in“LincuxŽ©¿:¹La–Y˜cš¸èhiamata“¼HDIO_GETGEO‘Y–¹memorizza“il“n˜umero“dei“cilindri“in“una“v‘ÿqÐariabile“di“tipGo“short.‘~çQuesto“vuol“direŽ¤ ®cš¸èhe–]Ùse“si“hanno“pi€ù“di“65535“cilindri“il“loro“v‘ÿqÐalore“v˜err€à“troncato“e“(pGer“una“tipica“congurazione“SCSI‘]×comŽ¡1MiB›LAdi–LCcilindri)“un“disco“da“80“GiB˜apparir€à“come“uno“da“16“GiB.“Una“v¸èolta“riconosciuto“tale“problema“€èŽ¡facile‘U evitarlo.ŽŸ#ÃÃ12.1Ž‘%}¨Problemi–¸dei“conš troller“IDE“con“disc˜hi“di“dimensioni“sup_úeriori“ai“34“GBŽŸMª¹I›m9disc¸èhi–m‚supGeriori“ai“33.8“GB˜non“sono“utilizzabili“con“i“kš¸èernel“preceden˜ti“alla“v˜ersione“2.3.21.‘º¥AppressoŽ¡si–SlripšGortano“i“dettagli.‘leIp˜otizziamo“l'acquisto“di“un“n•¸èuo“v“o–Sldisco“IBM-DPT‘ÿ*¸A-373420“con“una“capacit€à“diŽ¡66835440–a\settori“(34.2“GB).“I‘aYkš¸èernel“an˜te“2.3.21“rip•Gorterebb“ero–a\una“dimensione“di“769*16*63“=“775152“set-Ž¡tori–ï2(0.4“GB)‘ïcš¸èhe“€è“una“cosa“spiacev˜ole.‘O†Se“fornissimo“i“parametri“hdc=4160,255,63“da“linea“di“comando“nonŽ¡otterremmo–Lalcun“eetto“-“tale“v‘ÿqÐalori“sarebbGero“ignorati.›¸Ma“cosa“succede?˜La“funzione“idedisk_setup()Ž¡utilizza–4ûla“geometria“fornita“dal“disco“(cš¸èhe“€è“16383/16/63)“e“so˜vrascriv˜e“i“v‘ÿqÐalori“spGecicati“dall'uten˜te“daŽ¡linea–Ìdi“comando“cš¸èhe“v˜engono“utilizzati“solo“pšGer“imp˜ostare“la“geometria“da“passare“al“BIOS.“La“funzione“cur-Ž¡ren•¸èt_capacit“y()–‚o“idedisk_capacitš¸èy()“ricalcola“il“n˜umero“dei“cilindri“come“66835440/(16*63)=66305“pGoic˜h€èŽ¡tale–ˆv›ÿqÐalore“€è“memorizzato“in“una“v˜ariabile“short“diviene“769.Fino“a“quando“lba_capacit¸èy_is_ok()“non“dis-Ž¡trugge–Ôùid-µ>¹cyls“ogni“sua“c¸èhiamata“successiv›ÿqÐa“ripGorter€à“il“v˜alore“falso,‘ôïdi“conseguenza“la“capacit€à“del“discoŽ¡diviene–N†769*16*63.‘oM€È‘N„dispšGonibile“un“aggiornamen¸èto“p˜er“divš¸èerse“v˜ersioni“del“k˜ernel.‘oMUna“"patc˜h"“pGer“la“v˜er-Ž¡sione–lä2.0.38“pu€ò“esere“troš¸èv‘ÿqÐata“presso:‘¡Áftp.kernel.or‘ÿ}/g“¹.‘¸ÌUna“"patc˜h"“pGer“la“v˜ersione“2.2.12“pu€ò“essere“tro˜v‘ÿqÐataŽ¡presso:‘q€Áwww.uwsg.indiana.e‘ÿ}/duŽŸؼ¹(p•Gotrebb“ero–/oessere“necessarie“delle“mošGdic¸èhe“p˜er“eliminare“i“delimitatori“del“linguaggio“h•¸ètml).‘dðI‘/fk“ernel‘/odellaŽ¡serie–u*2.2.14“gestiscono“tali“discš¸èhi.‘ÑžLa“serie“2.3.*“gestisce“questi“disc˜hi“a“partire“dalla“v˜ersione“2.3.21.‘Ñž€ÈŽ¡pGossibile–Æ–"risolvš¸èere"“il“problema“a“liv˜ello“hardw˜are“utilizzando“un“11.3“(pGon˜ticello)“(jumpšGer)“p˜er“imp˜ostare“laŽ¡dimensione–_€di“33.8“GB.“In“molti“casi“sar€à“necessario“un“aggiornamen¸èto“del“4.2“(BIOS)‘_~se“si“vuole“utilizzareŽ¡tali–U discš¸èhi“come“disc˜hi“d'a˜vvio“del“sistema.ŽŸ(ÀœÀ13Ž‘¬%Pšcartizioni–G\estese“e“logic˜heŽ¦¹6–Ò°(In“precedenza),‘òabbiamo“visto“la“struttura“dell'MBR‘Ò(settore“0):‘l¡il“cošGdice“del“b˜o˜ot“loader“seguito“da“4Ž¡vš¸èoGci–ôÝdella“ta˜v˜ola“delle“partizioni“da“16“b˜yte“ciascuna“e“dalla“rma“AA55.‘QjLe“v˜oGci“della“ta˜v˜ola“delle“partizioniŽ¡di–(0tipšGo“5“o“F‘'úo“85“(Hex)“hanno“un“signicato“sp˜eciale:‘ descrivš¸èono“le“partizioni“Áestese‘ÀO¹,‘\ôc˜he“sono“pGorzioniŽ¡di–ˆàdisco“cš¸èhe“v˜erranno“ripartizionate“in“partizioni“Álo‘ÿ}/giche‘I/¹(una“partizione“estesa“non“€è“c˜he“un“con˜tenitore“diŽ¡partizioni–dlogic¸èhe“e“non“pu€ò“essere“utilizzata“di“pšGer“se“stessa).‘‹LSolo“la“p˜osizione“del“primo“settore“di“unaŽ¡partizione–“êestesa“€è“impGortanš¸ète.‘-ÞQuesto“primo“settore“con˜tiene“una“ta˜v˜ola“delle“partizioni“con“quattro“v˜oGci:Ž¡una–ìõpšGer“la“partizione“logica,‘Ëuna“p˜er“quella“estesa“e“due“in¸èutilizzate.‘NÇIn“questo“mo˜do“si“ottiene“una“catena“diŽ¡ta•¸èv“ole–'odelle“partizioni,›0’sparse“pGer“il“disco,˜do•¸èv“e–'ola“prima“descrivš¸èe“tre“partizioni“primarie“e“una“estesa“men˜treŽ¡le›U ta•¸èv“ole˜seguen“ti˜descriv“ono˜una˜partizione˜logica˜e˜la˜pGosizione˜della˜prossima˜ta“v“ola.Ž©ؼ€È‘öòimpGortanš¸ète–÷capire“questo:‘µwquando“qualcuno“fa“qualcosa“di“stupido“partizionando“un“disco“si“c˜hiede:‘µw"IŽ¡miei–Bogni“5,‘BÕF‘> cmmi10ù&!ßßßß