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

4. Översättning och hårddiskhanterare

Ingen är intresserad av vad den "riktiga" geometrin för en hårddisk är. Faktiskt är antalet sektorer per spår ofta variabelt -- det finns fler sektorer per spår nära den yttre kanten på hårddisken -- så det finns inget "riktigt" antal sektorer per spår. För användaren är det bäst att betrakta en hårddisk som en linjär samling sektorer numrerade 0, 1, ..., och låta hårddiskkontrollern ta reda på var en given sektor finns på hårddisken.

Denna linjära numrering kallas för LBA. Den linjära adressen som hör till (c,h,s) för en hårddisk med geometrin (C,H,S) är c*H*S + h*S + (s-1). Alla SCSI-kontrollrar, och några IDE-kontrollrar, pratar LBA.

Om BIOSet konverterar 24-bitarsadressen (c,h,s) till LBA och skickar den till en kontroller som förstår LBA kommer 7,875 GB att vara adresserbart. Inte nog för alla sorters hårddiskar, men i alla fall en förbättring. Notera att CHS, så som det används av BIOS, här inte längre har någon koppling till "verkligheten".

Någonting liknande fungerar när kontrollern inte pratar LBA, men när BIOS känner till översättning. (Det indikeras ofta som "Large" i BIOS-inställningarna.) Då kommer BIOS att presentera en geometri (C',H',S') för operativsystemet och använda (C,H,S) när den kommunicerar med diskkontrollern. Normalt är S = S', C' = C/N och H' = H*N, där N är den minsta exponenten till två som säkerställer att C' <= 1024 (så att så lite av kapaciteten som möjligt slösas bort i avrundning av C' = C/N). Åter igen, detta ger en adressrymd på 7,875 GB.

Om ett BIOS inte känner till "Large" eller "LBA" finns det mjukvarulösningar. Hårddiskhanterare som OnTrack eller EZ-Drive byter ut BIOS' rutiner för hårddiskhantering mot sina egna. Detta åstadkoms ofta genom att låta hårddiskhanterarens kod ligga i MBR och påföljande sektorer (OnTrack kallar denna kod DDO: Dynamic Drive Overlay), så att den laddas innan operativsystemet. Det är därför man kan ha problem med att boota från diskett när en hårddiskhanterare har installerats.

Effekten är mer eller mindre likadan som med ett översättande BIOS -- men hårddiskhanterare kan ställa till med mycket problem, speciellt när man kör flera olika operativsystem på samma hårddisk.

Linux stöder hårddiskhanteraren OnTrack sedan version 1.3.14 och EZ-Drive sedan version 1.3.29. Lite mer detaljer ges nedan.


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