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

11. Limite de Linux pour l'IDE à 8 Gio

Le gestionnaire IDE de Linux obtient la géométrie et la capacité d'un disque (et beaucoup d'autres choses) en utilisant une requette ATA IDENTIFY. Récemment encore le gestionnaire ne croyait pas en la valeur retournée pour lba_capacity si elle était plus de 10% supérieure à la capacité calculée par C*H*S. Cependant, par suite d'un accord entre les industriels, les disques IDE de grande capacité donnent les valeurs C=16383, H=16 et S=63, pour un total de 16514064 secteurs (7.8 Go) indépendamment de leur taille réelle, mais donnent cette taille réelle dans lba_capacity.

Les noyaux récents de Linux (2.0.34, 2.1.90) savent cela et agissent en conséquence. Si vous avez un noyau Linux plus ancien et que vous ne voulez pas passer à une version plus récente, et que cedit noyau ne voit que 8 Gio d'un bien plus gros disque dur, alors essayez de remplacer la routine lba_capacity_is_ok dans /usr/src/linux/drivers/block/ide.c par quelque chose du genre

static int lba_capacity_is_ok (struct hd_driveid *id) {
        id->cyls = id->lba_capacity / (id->heads * id->sectors);
        return 1;
}
Pour une modification plus sûre, voyez le noyau 2.1.90.

11.1 Complications du BIOS

Comme nous venons de le dire, les gros disques durs donnent la géométrie C=16383, H=16, S=63 indépendamment de leur vraie taille, alors que cette dernière est visible par la valeur de LBAcapacity. Certains BIOS ne savent pas cela, et convertissent ce 16383/16/63 en quelque chose qui a moins de cylindres et plus de têtes, par exemple 1024/255/63 ou 1027/255/63. Donc, le noyau ne doit pas seulement reconnaître la géométrie particulière 16383/16/63, mais également toutes ses versions mutilées par le BIOS. Depuis le noyau 2.2.2 cela est fait correctement (en prenant la vision du BIOS de H et S, et en calculant C = capacité/(H*S)). En général, ce problème est résolu en mettant le disque en mode Normal dans la configuration du BIOS (ou, encore mieux, à None, ne le déclarant pas du tout au BIOS). Si cela est impossible parce que vous devez démarrer à partir de ce disque dur, ou l'utiliser avec DOS/Windows, et que vous n'envisagez pas un passage au noyau 2.2.2 ou mieux, utilisez les paramètres de démarrage du noyau.

Si un BIOS rapporte 16320/16/63, c'est en général pour pouvoir aboutir à 1024/255/63 après conversion.

11.2 Des cavaliers pour sélectionner le nombre de têtes

Beaucoup de disques durs IBM ont des cavaliers qui vous permettent de choisir entre des géométries à 15 ou à 16 têtes. Le réglage par défaut vous donnera une géométrie à 16 têtes. Parfois, les deux géométries adressent le même nombre de secteurs, parfois la version à 15 têtes est plus petite. Vous devez avoir une bonne raison pour changer cette valeur : Petri Kaukasoina a écrit : `Un disque dur IBM Deskstar 16 GP de 10.1 Go (modèle IBM-DTTA-351010) avait ses cavaliers positionnés pour présenter 16 têtes par défaut mais ce vieux PC (avec un AMI BIOS) ne démarrait pas et j'ai eu à modifier les cavaliers pour le faire passer en 15 têtes. hdparm -i donne RawCHS=16383/15/63 et LBAsects=19807200. J'utilise 20960/15/63 pour avoir la capacité totale.' La géométrie 16383/15/63 n'est pas encore reconnue par le noyau, donc des paramètres de démarrage explicites sont ici nécessaires. Pour le positionnement des cavaliers voyez http://www.storage.ibm.com/techsup/hddtech/hddtech.htm.

11.3 Des cavaliers pour fixer la capacité totale

De nombreux disques durs IBM ont des cavaliers qui vous permettent de faire apparaître leur taille inférieure à leur valeur réelle. C'est une bêtise que de le faire, et probablement aucun utilisateur de Linux ne voudra utiliser cette fonctionnalité, mais certains BIOS plantent avec de gros disques. En général la solution consiste à conserver le disque entièrement en dehors du contrôle du BIOS. Cela n'est faisable que si ce disque dur n'est pas votre disque de démarrage.

Par exemple, un disque dur Deskstar de 25 Go (DJNA-352500) a des cavaliers qui peuvent être positionnés pour qu'il apparaisse comme ayant une capacité de 2 Go. Quel gaspillage !

Une limite plus récente est celle des 33,8 Go. Linux aussi a besoin d'une modification pour être capable de gérer des disques durs aussi grands que cela. Des disques durs avec une capacité supérieure à celle-là, comme le Deskstar de 37,5 Go (DPTA-353750) ont des cavaliers qui peuvent être positionnés pour qu'ils présentent une taille de 33,8 Go. Vous pouvez également regarder la page sur la limite de 33,8 Go du BIOS.


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