5. Disques

Contenu de cette section

Cette section fournit des informations spécifiques aux périphériques disques.

5.1 Matériel supporté et non supporté

Tous les périphériques SCSI ayant une taille de bloc de 256, 512 ou 1024 octets devraient fonctionner. Les autres tailles ne fonctionneront pas (bien qu'il soit souvent possible de corriger cela en changeant les tailles de bloc et/ou de secteur en utilisant la commande MODE SELECT SCSI).

La taille de secteur se réfère au nombre d'octets de données alloués par secteur sur un périphérique ; les CD-ROM utilisent par exemple une taille de secteur de 2048 octets.

La taille de bloc se réfère à la taille des blocs logiques utilisés pour s'interfacer avec le périphérique. Bien qu'elle soit généralement identique à la taille de secteur, certains périphériques regroupent plusieurs petits secteurs physiques (comme 256 octets dans le cas des lecteurs Syquest 55 Mo) en blocs logiques plus grands, ou vice versa (comme les blocs de 512 octets sur les lecteurs de CD-ROM compatibles SUN).

Les médias extractibles, comme les lecteurs Bernouilli, floptical et MO fonctionnent.

En théorie, les disques d'une taille allant jusqu'à un téra-octet doivent fonctionner. Il n'y a absolument aucun problème avec les petits disques de 9 Go.

5.2 Problèmes habituels

Message cylindre > 1024.

Au moment du partitionnement, un message s'affiche, du type ``cylinder > 1024'', ou vous êtes incapables de démarrer à partir d'une partition comprenant un cylindre logique dépassant le cylindre 1024.

Il s'agit d'une limitation du BIOS.

Voir la section geometry and parts : Géométrie des disques pour une explication.

Il vous est impossible de partitionner ``/dev/hd* ''

Les /dev/hd* ne sont pas des périphériques SCSI, utilisez des /dev/sd*.

Voir la section device files : Fichiers périphériques, et la section device filesgeometry and parts , Géométrie des disques pour les noms de périphériques la procédure corrects.

Impossible d'éjecter le support d'un périphérique extractible.

Linux essaye de bloquer la porte du lecteur quand un support est chargé afin d'empêcher la corruption du système de fichier due à un changement de support inopiné.

Faites un umount de vos disques avant de les éjecter.

Impossible de démarrer par LILO depuis un disque SCSI

Dans certains cas, le pilote SCSI et le BIOS sont en désaccord sur la géométrie correcte à utiliser, et LILO plante après avoir affiché 'LI' au démarrage et/ou d'autres problèmes.

La solution consiste à déterminer la géométrie du disque utilisée sous DOS, et en faire une entrée pour votre disque dans /etc/lilo/disktab. (NdT : cette façon de faire est obsolète, voir /usr/doc/lilo/README).

Vous pouvez aussi utiliser l'option de fichier de configuration ``linear''.

fdisk répond par

You must set heads sectors and cylinders.
You can do this from the extra functions menu.
et la géométrie du disque est ``oubliée'' quand fdisk est relancé.

Voir la section partitioning : Partitionnement

Un seul disque est détecté sur une carte bridge où plusieurs disques sont connectés.

Linux ne recherchera pas les LUN après zéro sur les périphériques SCSI antérieurs à la norme ANSI SCSI révision 1. Si vous voulez que des périphériques soient reconnus sur d'autres LUN, il vous faudra modifier drivers/scsi/scsi.c:scan_scsis().

Un seul disque est détecté sur une carte bridge où plusieurs disques sont connectés.Le système se bloque au swap

Il semble que ceci ait été corrigé, essayez de passer à la 1.1.38.

Les disques Conner CFP1060S se corrompent

Il s'agit d'un bug du microcode de la lecture en avance et du cache.

From Soenke Behrens of Conner tech. support:

Ces dernieres semaines, nous avons eu plusieurs appels de clients affirmant 
avoir rencontre de graves problemes avec les disques SCSI Conner CFP1060 1Go 
sous le systeme d'exploitation Linux. Les symptomes consistaient en systemes 
de fichiers corrompus (inodes endommages) indiques par e2fsck a chaque 
demarrage systeme et d'autres erreurs similaires.

Il existe maintenant une correction disponible pour les clients possedant un 
CFP1060x (revisions de microcode 9WA1.62/1.66/1.68) et Linux. Pour appliquer 
la mise a jour, vous aurez besoin d'un disque de demarrage DOS et des pilotes 
ASPI pour acceder au disque dur. La mise a jour charge le nouveau code de 
queuing et lookahead dans la RAM SCSI non-volatile du disque.

Si vous rencontrez des problemes avec un disque dont la revision de microcode 
est la 9WA1.60, vous devrez contacter le centre de service Conner le plus 
proche pour proceder a la mise a jour. La revision du microcode se trouve sur 
l'etiquette du disque, et en dessous, sur l'etiquette de l'un des circuits 
integres.

Si vous pensez pouvoir faire vous-meme la mise a jour, appelez Conner 
Technical Support Europe et gardez votre revision de microcode a portee de 
main. On peut joindre Conner Technical Support Europe au +44-1294-315333, et 
Conner Technical Support aux USA au 1-800-4CONNER.

Soenke Behrens
European Technical Support

5.3 Problèmes habituelsFichiers périphériques

Les disques SCSI utilisent le numéro majeur de périphérique bloc 8, et il n'existe pas de périphériques ``raw'' à la BSD.

16 numéros mineurs sont alloués à chaque disque SCSI, avec mineur % 16 == 0 étant le disque entier, les mineurs 1 <= (mineur % 16) <= 4 étant les quatre partitions primaires, les mineurs 5 <= (mineur % 16) <= 15 étant les partitions étendues.

En raison des contraintes imposées par l'utilisation de Linux d'un dev_t de 16 bits, seuls 8 bits étant alloués au nombre mineur, les nombres mineurs de disques SCSI sont assignés dynamiquement en commençant par le plus bas des HOST/ID/LUN SCSI.

Par exemple, une configuration peut ressembler à ceci (avec un adaptateur hôte) :
Périphérique Cible Lun Disque SCSI
Seagate 84 Mo 0 0 /dev/sda
SCSI-> SMD bridge disk 0 3 0 /dev/sdb
SCSI-> SMD bridge disk 1 3 1 /dev/sdc
Wangtek tape 4 0 aucun
Maxtor 213 Mo 6 0 /dev/sdd
etc.

La convention de nommage est

/dev/sd{lettre} pour le périphérique disque entier ((mineur % 16) == 0) /dev/sd{lettre}{partition} pour les partitions sur ce périphérique (1 < = (mineur % 16) < = 15)

Par exemple
Périphérique type majeur mineur
/dev/sda bloc 8 0
/dev/sda1 bloc 8 1
/dev/sda2 bloc 8 2
/dev/sda3 bloc 8 3
etc.

5.4 Partitionnement

Vous pouvez partitionner vos disques SCSI avec le programme de partitionnement de votre choix, sous DOS, OS/2, Linux ou tout autre système d'exploitation qui supporte le système standard de partitionnement.

La façon correcte de lancer le programme fdisk de Linux consiste à préciser le périphérique sur la ligne de commande. Par exemple, pour partitionner le premier disque SCSI,

fdisk /dev/sda

Si vous ne précisez pas explicitement le périphérique, le programme de partitionnement peut prendre /dev/hda par défaut, qui n'est pas un disque SCSI.

Dans certains cas, fdisk répondra par

You must set heads sectors and cylinders.
You can do this from the extra functions menu.

Command (m for help):

et/ou afficher un message comme quoi l'ioctl HDIO_REQ ou HDIO_GETGEO a échoué. Dans ce cas, vous devez spécifier manuellement la géométrie du disque comme indiqué à la sous-section fdisk geometry : Géométrie des disques au moment de lancer fdisk, ainsi que dans /etc/disktab si vous désirez démarrer le noyau depuis ce disque avec LILO.

Si vous avez spécifié manuellement la géométrie du disque, les tentatives ultérieures de lancement de fdisk donneront le même message d'erreur. C'est normal, car les PC ne stockent pas les informations concernant la géométrie du disque dans la table de partition. En tout état de cause, il n'y a _AUCUN PROBLEME_, et vous pourrez accéder aux partitions que vous avez créé sur le disque avec Linux. Le code d'installation de quelques fournisseurs pourra buter dessus, auquel cas vous devrez contacter ledit fournisseur afin d'insister pour qu'il corrige ce code.

Dans certains cas, vous obtiendrez un message d'avertissement concernant une partition finissant après le cylindre 1024. Si vous créez une de ces partitions, vous serez incapable de démarrer les noyaux de Linux depuis cette partition par LILO. Remarquez cependant que cette restriction n'empêche pas la création d'une partition racine située partiellement ou entièrement au-dessus de cette limite des 1024 cylindres, puisqu'il est possible de créer une petite partition /boot en dessous de la limite ou de démarrer des noyaux depuis des partitions existantes.

5.5 PartitionnementGéométrie des disques

Sous Linux, chaque disque est vu tel que l'adaptateur SCSI hôte le voit : N blocs, numérotés de 0 à N-1, tous sans erreurs, alors que le DOS et le BIOS ont été conçus à une date antérieure aux disques intelligents et favorisent une géométrie arbitraire en têtes / cylindres / secteurs au lieu d'un adressage linéaire.

Ceci peut poser problème au moment de partitionner les disques sous Linux, puisqu'il n'existe aucune manière portable de connaître l'idée que se font le DOS et le BIOS de la géométrie du disque. Dans la plupart des cas, un ioctl() avec HDIO_GETGEO peut être implémenté pour renvoyer cette géométrie. Malheureusement, quand le fournisseur (comme Seagate) a choisi une géométrie perverse, non-standard et non-documentée, cette façon de faire devient impossible et la géométrie doit être spécifiée manuellement.

Dans ce dernier cas, vous disposez de plusieurs options :

  1. Si vous ne désirez pas utiliser le DOS, ni démarrer des noyaux depuis ce disque avec LILO, créez une translation telle que têtes * cylindres * secteurs * 512 < la taille de votre disque en octets (un mégaoctet est défini comme 2ˆ20 octets). (NdT : 1 Mo est aussi souvent égal à 10ˆ6 octets pour de nombreux fabriquants de disques dur...)
    1 < = têtes < = 256
    1 < = cylindres < = 1024
    1 < = secteurs < = 63
  2. Utilisez la géométrie du disque. Dans certains cas, cela implique une reconfiguration du disque afin que celui-ci se trouve en SCSI ID 0, et la désactivation du deuxième disque IDE (si vous en avez un). Vous pouvez utiliser soit un programme comme NU, soit le programme suivant :
    begin 664 dparam.com
    MBAZ``##_B+^!`+N!`(H'0SP@=/D\,'5:@#]X=`6`/UAU4(!_`3AU2H!_`P!U
    M1(I7`H#J,(#Z`7<Y@,*`M`C-$PCD=3-14HC()#\PY.@R`.@J`%J(\/[`,.3H
    M)0#H'0!8AL2Q!M+L0.@7`+K"`;0)S2'#NIP!ZR"ZQ0'K&[K5`>L6N]T!,=*Y
    M"@#W\8#",$N(%PG`=>^)VK0)S2'#=7-A9V4Z(&1P87)A;2`P>#@P#0H@("!O
    L<B`@9'!A<F%M(#!X.#$-"B1);G9A;&amp;ED(&1R:79E#0HD("`D```````D``!O
    `
    end
    

    A son exécution, il affiche les secteurs, les têtes et les cylindres du disque dont l'adresse du BIOS a été précisée sur la ligne de commande (0x80 est le premier disque, 0x81 est le second). Par exemple,
    dparam 0x80
    60 17 1007
    
    Signifie que C: a 60 secteurs, 17 têtes et 1007 cylindres.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre