Page suivante Page précédente Table des matières

8. Conversions du noyau pour les disques durs IDE

Si le noyau de Linux détecte la présence d'un gestionnaire de disque sur un disque dur IDE, il va essayer de recartographier le disque de la même manière que l'aurait fait le gestionnaire de disque, comme ça Linux voit le même partitionnement pour, par exemple, DOS avec OnTrack ou EZ-Drive. Cependant, AUCUNE recartographie n'est effectuée quand une géométrie a été passée en ligne de commande -- donc une option de la ligne de commande comme `hd=cyls,têtes,secs' peut très bien briser la compatibilité avec un gestionnaire de disque.

Si vous êtes touché par ce problème et que vous connaîssez quelqu'un qui peut compiler pour vous un nouveau noyau, trouvez le fichier linux/drivers/block/ide.c et supprimez, dans la routine ide_xlate_1024(), le test if (drive->forced_geom) { ...; return 0; }.

La nouvelle cartographie est obtenue en essayant les valeurs 4, 8, 16, 32, 64, 128, 255 pour le nombre de têtes (H*C reste constant) jusqu'à ce que C <= 1024 ou que H = 255.

Ci-dessous les détails -- les titres des sous-sections sont les messages qui apparaissent dans les différents messages de démarrage. Ici et partout ailleurs dans ce texte, les types des partitions sont donnés en hexadécimal.

8.1 EZD

EZ-Drive est détecté par le fait que le type de la première partition primaire est 55. La géométrie est recartographiée comme décrit ci-dessus, et la table des partitions du secteur 0 est supprimée -- à la place, la table des partitions est celle lue sur le secteur 1. Le nombre de blocs du disque n'est pas changé, mais les écritures sur le secteur 0 sont redirigées vers le secteur 1. Ce comportement peut être modifié en recompilant le noyau avec #define FAKE_FDISK_FOR_EZDRIVE 0 dans ide.c.

8.2 DM6 : DDO

OnTrack DiskManager (sur le premier disque dur) est détecté grâce au type 54 de la première partition primaire. La géométrie est recartographiée comme décrit ci-dessus et la totalité du disque est décalée de 63 secteurs (comme ça, l'ancien secteur 63 devient le numéro 0). Ensuite un nouveau MBR (avec une table des partitions) est lu depuis le nouveau secteur 0. Bien sûr ce décalage a pour but de libérer de la place pour le DD0 -- c'est pourquoi il n'y a pas de décalage sur les autres disques durs.

8.3 DM6 : AUX

OnTrack DiskManager (sur les autres disques durs) est détecté grâce au type 51 ou 53 de la première partition primaire. La géométrie est recartographiée comme décrit ci-dessus.

8.4 DM6 : MBR

Une version plus ancienne de OnTrack DiskManager n'est pas détectée grâce au type de partition, mais par signature. (Un test est effectué pour savoir si la valeur de décalage trouvée dans les octets 2 et 3 du MBR n'est pas supérieure à 430, et si le short trouvé à cette valeur de décalage est égal à 0x55AA et qu'il est suivi par un octet impair.) Une fois encore, la géométrie est recartographiée comme décrit ci-dessus.

8.5 PTBL

Finalement, il y a un test qui tente de déduire une conversion à partir des valeurs start et end de la partition primaire : si n'importe quelle partition a comme secteurs de début et de fin respectivement 1 et 63, et comme dernier numéro de tête 31, 63, 127 ou 254, alors, à partir du moment où il est habituel de terminer des partitions sur une limite de secteur, et qui plus est depuis que l'interface IDE utilise au plus 16 têtes, il est supposé qu'une conversion du BIOS est active, et la geométrie est recartographiée pour utiliser respectivement 32, 64, 128 ou 255 têtes. Cependant, le disque n'est pas recartographié quand la vision actuelle de la géométrie a déjà 63 secteurs par piste et au moins autant de têtes (cela signifie sans doute qu'il a déjà été recartographié).


Page suivante Page précédente Table des matières