Nästa Föregående Innehållsförteckning

5. Hårddisköversättning av kärnan för IDE-hårddiskar

Om Linux-kärnan detekterar närvaron av någon hårddiskhanterare på en IDE-hårddisk kommer den att försöka mappa om hårddisken på samma sätt som denna hårddiskhanterare skulle ha gjort, så att Linux ser samma hårddiskpartitionering som till exempel DOS med OnTrack eller EZ-Drive. Emellertid görs INGEN ommappning när en geometri specificeras på kommandoraden -- så ett kommandoradsargument som "hd=cylindrar,huvuden,sektorer" skulle mycket väl kunna förstöra kompatibiliteten med en hårddiskhanterare.

Ommappningen görs genom att testa 4, 8, 16, 32, 64, 128, 255 huvuden (och hålla H*C konstant) tills antingen C <= 1024 or H = 255.

Detaljerna är som följer -- titlarna för subkapitlen är strängarna som dyker upp i korresponderande boot-meddelanden. Här och överallt annars i denna text ges partitionstyperna med hexadecimaler.

5.1 EZD

EZ-Drive kan kännas igen genom att den första primära partitionen är av typ 55. Geometrin mappas om enligt beskrivning ovan, och partitionstabellen från sektor 0 slängs bort -- istället läses partitionstabellen från sektor 1. Hårddiskblockens nummer ändras inte, men skrivningar till sektor 0 dirigeras om till sektor 1. Detta beteende kan ändras genom att kompilera om kärnan med #define FAKE_FDISK_FOR_EZDRIVE 0 i ide.c.

5.2 DM6:DDO

Hårddiskhanteraren OnTrack (på den första hårddisken) känns igen genom att den första primära partitionen är av typ 54. Geometrin mappas om enligt beskrivning ovan, och hela disken skiftas 63 sektorer (så att den ursprungliga sektorn 63 blir sektor 0). Efteråt läses en ny MBR (med partitionstabell) in från sektor 0. Självklart är denna skiftning till för att göra plats för DDOn -- det är därför det inte görs någon skiftning på resten av hårddiskarna.

5.3 DM6:AUX

Hårddiskhanteraren OnTrack (på resten av hårddiskarna) känns igen genom att den första primära partitionen är av typ 51 eller 53. Geometrin mappas om enligt beskrivning ovan.

5.4 DM6:MBR

En äldre version av hårddiskhanteraren OnTrack känns inte igen genom partitionstyp, utan genom en signatur. (Testa huruvida offseten som finns i byte 2 och 3 på MBRen inte är större än 430 och talet som finns på denna offset är lika med 0x55AA och följs av en udda byte.) Återigen, geometrin mappas om enligt ovan.

5.5 PTBL

Till sist finns ett test som försöker beräkna en översättning med hjälp av start- och end-fälten för de primära partitionerna: Om någon partition har start- och slutcylinder mindre än 256, och start- och slutsektor nummer 1 och 63, respektive, och sluthuvuden 31, 63 eller 127, så (eftersom det är brukligt att avsluta partitioner på en cylindergräns och eftersom IDE-gränssnittet använder högst 16 huvuden) antas det att en BIOS-översättning är aktiv och att geometrin är ommappad till att använda 32, 64 eller 128 huvuden, respektive. (Det finns kanske en brist här; genhd.c borde kanske inte ha testat de två mest signifikanta bitarna av cylindertalet?) Emellertid görs ingen ommappning när den nuvarande idén om hur geometrin ska vara inbegriper 63 sektorer per spår och åtminstone lika många huvuden (eftersom det då förmodligen innebär att en ommappning redan är gjord).


Nästa Föregående Innehållsförteckning