Verder Terug Inhoud

8. Kernel disk vertaling voor IDE disks

Als de Linux kernel de aanwezigheid van een bepaalde diskmanager op een IDE disk detecteert, zal het proberen de disk opnieuw op dezelfde manier in te delen als deze diskmanager zou hebben gedaan, zodat Linux dezelfde diskpartitionering ziet als bijvoorbeeld DOS met OnTrack of EZ-Drive. Er zal echter geen herindeling plaatsvinden als er een geometrie op de opdrachtregel werd opgegeven - dus een `hd=cyls,heads,secs' opdrachtregeloptie zou heel goed compatibiliteit met een diskmanager kunnen ruïneren.

Als dit je treft, en je weet iemand die een nieuwe kernel voor je kan compileren, zoek dan naar het bestand linux/drivers/block/ide.c en verwijder in de routing ide_xlate_1024() de test if (drive->forced_geom) {...;return 0; }.

De herindeling wordt gedaan door het uitproberen van 4, 8, 16, 32, 64, 128, 255 heads (waarbij H*C constant wordt gehouden) totdat of C <= 1024 of H = 255.

De details zijn als volgt - subsectie titelkoppen bestaan uit de tekst die in de corresponderende bootmeldingen verschijnen. Hier en elders in de tekst worden partitietypes in hexidecimaal gegeven.

8.1 EZD

EZ-Drive wordt gedetecteerd door het feit dat de eerste primaire partitie type 55 heeft. De geometrie wordt heringedeeld zoals hierboven beschreven, en de partitietabel is vanaf sector 0 opzijgezet - in plaats daarvan wordt de partitietabel vanaf sector 1 ingelezen. Diskbloknummers zijn niet gewijzigd, maar schrijfopdrachten naar sector 0 worden doorgestuurd naar sector 1. Dit gedrag kan worden gewijzigd door de kernel te hercompileren met #define FAKE_FDISK_FOR_EZDRIVE 0 in ide.c.

8.2 DM6:DDO

OnTrack DiskManager (op de eerste disk) wordt gedetecteerd door het feit dat de eerste primaire partitie type 54 heeft. De geometrie is heringedeeld als hierboven beschreven en de volledige disk is met 63 sectoren verschoven (zodat de oude sector 63 sector 0 wordt). Daarna wordt een nieuwe MBR (met partitietabel) vanaf de nieuwe sector 0 ingelezen. Natuurlijk is deze verschuiving om ruimte voor de DDO te maken - daarom is er geen verschuiving op andere disks.

8.3 DM6:AUX

OnTrack DiskManager (op andere disks) wordt gedetecteerd door het feit dat de eerste primaire partitie het type 51 of 53 heeft. De geometrie is heringedeeld als hierboven beschreven.

8.4 DM6:MBR

Een oudere versie van OnTrack DiskManager wordt niet gedetecteerd door het partitietype maar door een kenmerk. (Test of de offset die in bytes 2 en 3 van de MBR wordt gevonden, niet meer is dan 430, en of de short die op deze offset wordt gevonden gelijk is aan 0x55AA, en wordt gevolgd door een even byte.) Weer wordt de geometrie heringedeeld als hierboven.

8.5 PTBL

Als laatste is er een test dat een vertaling van de start en eind waarden van de primaire partities probeert af te leiden: Als een bepaalde partitie een start- en eind sectornummer van respectievelijk 1 en 63 heeft, en end heads 31, 63, 127 of 254 dan, aangezien het gebruikelijk is om partities op een cylindergrens te beëindigen, en aangezien de IDE interface bovendien maximaal 16 heads gebruikt, wordt verondersteld dat er een BIOS vertaling actief is, en de geometrie is heringedeeld dat het respectievelijk 32, 64, 128 of 255 heads gebruikt. Er heeft echter geen herindeling plaatsgevonden als het huidige idee van de geometrie reeds 63 sectoren per spoor heeft en tenminste zoveel heads (aangezien dit waarschijnlijk betekent dat er reeds een herindeling heeft plaatsgevonden).


Verder Terug Inhoud