Page suivantePage précédenteTable 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 connaissez 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 géomé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é).

8.6 Comment se débarasser d'un gestionnaire de disque

Quand Linux détecte le gestionnaire de disque Ontrack Disk Manager il décale tous les accès disques de 63 secteurs. De la même manière, si Linux détecte EZ-Drive, tous les accès au secteur 0 seront décalés au secteur 1. Cela signifie qu'il peut s'avérer difficile de se débarasse de ces gestionnaires de disque. La plupart de ces gestionnaires ont une option de désinstallation, mais si vous avez besoin de supprimer un gestionnaire de disque, une approche peut être de donner explicitement une géométrie de disque sur la ligne de commande. De ce fait Linux saute la routine ide_xlate_1024() et il est du coup possible de supprimer la table des partitions ainsi que le gestionnaire de disque (rendant l'accès à toutes les données impossible) avec la commande

 dd if=/dev/zero of=/dev/hdx bs=512 count=1
Les détails dépendent du numéro de version mineur du noyau. Les noyaux récents (depuis le 2.3.21) reconanissen les paramètres de démarrage tels que hda=remap et hdb=noremap. Il est alors possible de conserver ou d'éviter le décalage dû à EZD sans se soucier de ce qui est dans la table des partitions. Le paramètre de démarrage hdX=noremap permet également d'éviter le décalage dû au gestionnaire Ontrack Disk Manager.


Page suivantePage précédenteTable des matières