6. Disques

Contenu de cette section

Les informations contenues dans ce chapitre concernent les disques.

6.1 Matériel supporté et non supporté

Tous les périphériques SCSI à accès direct, d'une taille de bloc de 256, 512 ou 1024 octets devraient fonctionner. Les autres tailles de bloc ne marchent pas (notez que cela peut souvent être corrigé en modifiant la taille des blocs et/ou des secteurs en utilisant la commande SCSI MODE SELECT).

La taille des secteurs fait référence au nombre d'octets de données présents par secteur sur un périphérique (les lecteurs de CDROM utilisent par exemple une taille de secteur de 2048 octets).

La taille des blocs fait référence à la taille des blocs logiques utilisés pour s'interfacer avec le périphérique. Bien que cette valeur soit habituellement identique à la taille des secteurs, certains périphériques regroupent plusieurs secteurs physiques plus petits (par exemple 256 octets dans le cas des périphériques Syquest de 55 Mo) en un seul bloc logique plus important ou l'inverse (des blocs de 512 octets sur les lecteurs de CDROM compatibles SUN, par exemple).

Les périphériques amovibles incluent les disques Bernouilis, les disques flopticals, les disques magnéto-optiques et les Syquest.

En théorie, les périphériques d'une taille inférieure à 1 To (téra-octets) devraient marcher. Il n'y a en particulier aucun problème avec les minuscules disques de 9 Go.

6.2 Problèmes fréquents

Message 'Cylindre supérieur à 1024'

Au moment du partitionnement, un message d'avertissement "cylinder > 1024" s'affiche ou bien vous êtes incapable de démarrer depuis une partition possédant des cylindres au-delà du cylindre 1024.

C'est une limitation du BIOS.

Reportez-vous aux chapitres Géométrie et Partitionnement pour des explications plus détaillées.

Vous êtes incapable de partitionner "/dev/hd*"

Les /dev/hd* font référence à des périphériques IDE. Utilisez /dev/sd* pour vos disques SCSI.

Reportez-vous aux chapitres Fichiers spéciaux , Géométrie et Partitionnement pour les noms de fichiers corrects et la marche à suivre pour le partionnement.

Impossibilité d'éjecter le média d'un périphérique amovible

Linux tente de verrouiller la porte du lecteur lorsqu'un média est monté, afin d'éviter les endommagements du système de fichiers résultants d'un changement de support.

Démontez vos disques amovibles avant de les éjecter.

Impossibilité de démarrer depuis un disque SCSI en utilisant LILO

Dans certaines conditions, le pilote SCSI et le BIOS ne sont pas d'accord sur le mapping du BIOS correct à utiliser. Le résultat est que LILO se bloque après avoir affiché les lettres 'LI' au moment du boot.

Comme contournement, trouvez quelle géométrie est utilisée sous DOS puis créez une entrée pour votre disque dans le fichier /etc/lilo/disktab.

Vous pouvez éventuellement également utiliser l'option "linear" pour LILO.

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 n'est pas mémorisée lorsque fdisk est réexécuté.

Reportez-vous au chapitre Partitionnement .

Un seul périphérique est détecté sur une carte pont (bridge board) avec plusieurs périphériques

Linux ne recherche pas les unités logiques (LUNs) supérieures à 0 sur les périphériques SCSI qui retournent une version ANSI SCSI 1. Si vous voulez que toutes les unités logiques soient reconnues, allez modifier la fonction scan_scsis() du fichier drivers/scsi/scsi.c.

Le système se fige en swappant

La version 1.1.38 devrait avoir corrigé le problème. Essayez de faire une mise à jour de votre pilote.

Les disques Conner CFP1060S sont endommagés

Cela est dû à un erreur du microcode dans les fonctions de lecture anticipée et dans le cache.

>D'après Soenke Behrens, du support technique de Conner :

Ces dernieres semaines, nous avons recu des appels de plusieurs clients
qui nous affirmaient avoir de serieux problemes avec les disques SCSI
Conner CFP1060x de 1Go en utilisant le systeme d'exploitation Linux.
Des erreurs etaient detectees par e2fsck a chaque demarrage du systeme
(inodes abimes) entre autres.

Une correction est maintenant disponible pour les clients possedant
des CFP1060x (versions de microcode 9WA1.62/1.66/1.68) sous Linux. Pour
appliquer la mise a jour, vous aurez besoin d'une disquette bootable DOS,
et des pilotes ASPI qui permettent l'acces au disque dur. La mise a jour
telecharge un nouveau code de gestion de files (mise en file et lecture)
dans la memoire SCSI non-volatile du disque.

Si vous avez des problemes avec des disques dont le microcode est a la
version 9WA1.60, contactez votre centre Conner le plus proche pour une
mise a jour. La version du microcode peut etre trouvee sur l'etiquette
du disque ou, sur sa face inferieure, sur l'etiquette d'un des circuits
integres.

Si vous vous sentez assez sur de vous pour faire vous-meme la mise a jour,
appelez le support technique de Conner, apres avoir note la version de
votre microcode. Le support technique de Conner en Europe peut etre joint
 au +44-1294-315333. Le support americain peut etre joint au 1-800-4CONNER.

Salutations,
Soenke Behrens
Support Technique Europe

6.3 Fichiers spéciaux

Les disques SCSI utilisent le majeur bloc 8. Il n'y a pas d'accès en mode "raw", comme sous BSD.

16 mineurs sont attribués pour chaque disque SCSI, mineur % 16 == 0 représentant le disque entier, 1 <= (mineur % 16) <= 4 les 4 partitions principales et 5 <= (mineur % 16) <= 15 les partitions étendues.

Exemple de configuration avec un seul contrôleur :

Peripherique                 Adresse  Unite logique     disque SCSI
Seagate 84M                  0        0                 /dev/sda
Disque 0 SCSI->SMD bridge    3        0                 /dev/sdb
Disque 1 SCSI->SMD bridge    3        1                 /dev/sdc
Derouleur de bande Wangtek   4        0                 aucun
Maxtor 213M                  6        0                 /dev/sdd

etc.

La convention de nommage standard est

/dev/sd{lettre} pour le disque entier ((mineur % 16) == 0)

/dev/sd{lettre}{partition} pour les partitions de ce disque (1 <= (mineur % 16) <= 15)

Par exemple :

/dev/sda        peripherique mode bloc de majeur 8 et de mineur 0
/dev/sda1       peripherique mode bloc de majeur 8 et de mineur 1
/dev/sda2       peripherique mode bloc de majeur 8 et de mineur 2
/dev/sdb        peripherique mode bloc de majeur 8 et de mineur 16

etc.

6.4 Partitionnement

Vous pouvez partitionner vos disques SCSI en utilisant l'outil de votre choix, sous DOS, OS/2, Linux ou n'importe quel autre système d'exploitation supportant le schéma de partionnement standard.

Le meilleur moyen d'utiliser le programme fdisk de Linux est de spécifier le périphérique sur la ligne de commande. Par exemple, pour partitionner le premier disque SCSI, tapez :

fdisk /dev/sda

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

Il peut arriver que fdisk affiche

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

Command (m for help):

ou qu'il sorte un message comme quoi "HDIO_REQ ou HDIO_GETGEO ioctl" a échoué. Dans ce cas, spécifiez manuellement la géométrie du disque ( Géométrie ) au moment de lancer fdisk ou entrez-la dans /etc/disktab si vous avez l'intention de booter sur ce disque en utilisant LILO.

Si vous avez manuellement précisé la géométrie du disque, les utilisations ultérieures de fdisk vous donneront le même message d'erreur. C'est normal, puisque les PC ne stockent pas les informations de géométrie dans la table des partitions. Cela ne cause AUCUN PROBLEME et vous n'aurez pas de soucis à accéder aux partitions créées par Linux. Certains programmes mal écrits peuvent en être gênés ; contactez votre revendeur et insistez pour qu'il corrige son code si cela arrivait.

Un message d'avertissement vous signale parfois que votre partition se termine au-delà du cylindre 1024. Si vous créez une telle partition, vous ne serez pas capable de démarrer dessus avec LILO. Cela étant, rien n'empêche de créer une partition racine (root) partiellement ou entièrement située au-delà de ce cylindre 1024. Il est en effet toujours possible de créer une petite partition /boot sous la barrière des 1024 ou de démarrer le noyau directement depuis une autre partition.

6.5 Géométrie

Sous Linux, chaque disque est vu tel que le contrôleur SCSI le voit : N blocs, numérotés de 0 à N - 1, sans erreurs, là où le DOS / BIOS considèrent avoir affaire à des disques intelligents et appliquent une transformation arbitraire <tête/cylindre/secteur> à cet adressage linéaire.

Cela peut poser un problème lorsque vous partitionnez votre disque sous Linux, puisqu'il n'y a pas de moyen portable de récupérer la géométrie estimée par le DOS/BIOS. Dans la plupart des cas, un ioctl() HDIO_GETGEO peut être implémenté pour obtenir ce mapping. Malheureusement, lorsque le vendeur (au hasard Seagate) choisit un mapping retors, non standard et non documenté, cela n'est plus possible et il est nécessaire de préciser manuellement la géométrie.

Si vous en arrivez là, plusieurs options sont possibles :

  1. Si cela ne vous gêne pas d'utiliser DOS ou de démarrer depuis le disque avec LILO, créez une traduction telle que tête * cylindre * secteur * 512 < taille de votre disque en octets (un mégaoctet est défini par 2ˆ20 octets).
    1 <= tete <= 256
    1 <= cylindre <= 1024
    1 <= secteur <= 63
    
  2. Utilisez le mapping du BIOS. Dans certains cas, cela implique qu'il faudra reconfigurer le disque de manière à ce qu'il soit à l'adresse SCSI 0 et qu'il faudra désactiver le second disque IDE (si vous en avez un).

Sous DOS, vous pouvez utiliser un programme tel que NU (Norton Utilities). Vous pouvez aussi lancer 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

Lorsque vous le lancerez, il affichera le nombre de secteurs, de cylindres et de têtes du disque dont l'adresse BIOS a été fournie sur la ligne de commande (0x80 pour le premier disque, 0x81 pour le second disque, etc.).

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