Page suivantePage pr�c�denteTable des mati�res

12. Limite de Linux � 65535 cylindres

L'ioctl HDIO_GETGEO retourne le nombre de cylindres dans un short. Cela signifie que si vous avez plus de 65535 cylindres, le nombre est tronqu� et (pour une configuration SCSI typique avec 1 Mio de cylindres) un disque de 80 Gio peut appara�tre comme ne faisant que 16 Gio. Une fois que le probl�me a �t� d�tect�, il est facile de l'�viter.

La convention de programmation est d'utiliser l'ioctl BLKGETSIZE pour obtenir la taille totale et HDIO_GETGEO pour conna�tre le nombre de t�tes et de secteurs par piste et, si n�cessaire, il est possible d'obtenir C avec la formule C=taille/(H×S).

12.1 Probl�mes de l'IDE avec des disques durs de 34 Go et plus

Ci-dessous se trouve une discussion sur les probl�mes du noyau Linux. Les probl�mes li�s au BIOS et au positionnement des cavalier ont-�t� trait�s ci-dessus.

Des unit�s d'une taille sup�rieure � 33,8 Go ne fonctionneront pas avec les noyaux ant�rieurs au 2.2.14/2.3.21. Les d�tails sont les suivants. Supposez que vous ayez achet� un tout nouveau disque dur IBM-DPTA-373420 qui offre une capacit� de 66835440 secteurs (34,2 Go). Les noyaux plus anciens que le 2.3.21 vous diront que la taille est de 769*16*63=775152 secteurs (0,4 Go), ce qui est quelque peu �tonnant. Et le fait de donner les param�tres hdc=4160,255,63 au d�marrage n'aide en rien -- ils sont tout simplement ignor�s. Que se passe-t-il ? La routine idedisk_setup() retrouve la g�om�trie rapport�e par le disque dur (qui est 16383/16/63) et �crase ce que l'utilisateur avait demand� sur la ligne de commande, de telle mani�re que les donn�es de l'utilisateur ne sont utilis�es que pour la g�om�trie du BIOS. La routine current_capacity() ou idedisk_capacity() recalcule le nombre de cylindres comme �tant 66835440/(16*63)=66305 mais comme il est stock� dans un short, il devient 769. Comme lba_capacity_is_ok() a d�truit id->cyls, tous les appels se solderont par un �chec et la capacit� du disque deviendra 769*16*63. Un correctif est disponible pour de nombreux noyaux. Un correctif pour le 2.0.38 peut �tre trouv� � ftp.kernel.org. Un correctif pour le 2.2.12 peut �tre trouv� � www.uwsg.indiana.edu (il se peut qu'il faille le modifier un peu pour se d�barrasser des tags html). Les noyaux 2.2.14 supportent ces disques durs. Dans la s�rie 2.3.* des noyaux, le support pour ces disques existe depuis le 2.3.21. Il est �galement possible de r�soudre ce probl�me avec une m�thode mat�rielle en positionnant des cavaliers pour limiter la taille � 33,8 Go. Dans la plupart des cas, une mise � jour du BIOS sera n�cessaire pour pouvoir d�marrer depuis ce disque dur.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:42