[Linux-bruxelles] PATAtes

Frederic Peters fpeters at entrouvert.com
Jeu 3 Mai 13:10:51 CEST 2007


Encore récemment, et de plus en plus souvent, des messages confus sur la
liste du LUG, dans des forums, une grosse interrogation, « comment ?! avant
j'avais des hda1, hda2... et maintenant j'ai des sda1, sda2... », ce à quoi
il y a des réponses aussi rapides qu'expéditives, expliquant que hda = IDE
et sda = SCSI.

Oh, parfois il y a quelques mots en plus, pour dire que les disques SATA
sont vus comme des disques SCSI, ce qui aggrave l'incompréhension du gars
qui sait très bien que ses vieux disques qui ont cinq ans, ils ne sont pas
transformés pendant la nuit.

À la base, il y a la simplification sda = SCSI, simplification qui aurait
pourtant eu le temps d'être battue en brèche, il y a dix ans, les lecteurs
ZIP branchés sur le port parallèle ?  plus tard l'émulation SCSI pour les
graveurs de CD-ROM, parce que cdrecord ne supportait pas l'IDE ?  et les
milliards de clés USB apparaissant comme sda ?  et effectivement, plus
récemment, les disques SATA...

Mais même après ça, les disques IDE, les bons vieux disques IDE, pourquoi
maintenant les voir apparaître comme sda et cie ?

C'est que la partie IDE du noyau, elle est vieille, assez chargée
d'historique, et pas extensible, et que les nouvelles technologies (et les
ZIP sur le port parallèle, ça c'est de la nouvelle technologie), elles se
sont alors systématiquement appuyées sur un système plus net, le
sous-système SCSI, qui est ainsi devenu avec le temps un sous-système assez
générique.

Jusqu'à en arriver au moment présent, genre 2.6.20, 2.6.21, où l'accès à
l'IDE classique commence lui-même à être possible via le sous-système SCSI,
et à l'occasion il est renommé en PATA, Parallel ATA, qui est un nouveau
nom sorti de nulle part, pour se différencier du Serial ATA.

Revenons au noyau, le « problème » arrive principalement chez les
utilisateurs Ubuntu (comme tous les problèmes diront les mauvaises
langues), parce que le noyau de la dernière version est assez récent et
semble avoir activé le nouveau système (marqué comme expérimental).  Il y a
même des échos comme quoi les deux systèmes seraient activés et qu'il y
aurait clash par endroit (mais c'est peut-être de chez Debian que viennent
ces échos).

Le cas pratique, sur mon ordinateur, il y a un « Intel Corporation 82801DBM
(ICH4-M) IDE Controller » qui est géré par le pilote drivers/ide/pci/piix.
Mais le même contrôleur peut aussi être géré par le pilote
drivers/ata/ata_piix.  Et c'est un peu la course à chaque démarrage pour
décider qui gérera le contrôleur, très sympa.  

Reste alors à se laisser pousser la barbe et à compiler soi-même son noyau
avec des options utiles et pas redondantes pour un sou.  Ou à trouver un
moyen de forcer l'un ou l'autre module, mais c'est moins amusant.

Bravement désactiver « ATA/ATAPI/MFM/RLL support » dans la configuration,
installer le noyau, redémarrer et espérer.  Évidemment ça va foirer parce
que le support pour les disques SCSI était mis en module, c'est malin ça.

Ça démarre alors, ça se prend cependant rapidement les pieds dans le
fichier /etc/fstab qui renseigne des /dev/hda1 et cie, alors que ceux-ci
ont laissé place à de brillants /dev/sda...  Évidemment facile à corriger,
mais quid des anciens noyaux qui voudraient continuer à utilier hda ?  La
solution à cela est de renseigner les partitions non plus par leur "device
file" mais par un label ou un UUID, les UUID, c'est ce que fait Ubuntu je
pense, mais ``UUID=2a8c00f8-f965-11db-9658-000ae422715d / ext3 defaults...``;
ça effraie les braves gens.

La solution des étiquettes, c'est plus humain, ``tune2fs -L root
/dev/hda1``; et ça marche aussi pour le swap, exemple: ``mkswap -L swap
/dev/hda2``.

Ça donne alors un fstab ainsi:

  proc        /proc   proc   defaults                    0  0
  LABEL=swap  none    swap   sw                          0  0
  LABEL=root  /       ext3   defaults,errors=remount-ro  0  1
  LABEL=usr   /usr    ext3   defaults                    0  2
  LABEL=var   /var    ext3   defaults                    0  2
  LABEL=home  /home   ext3   defaults,user_xattr         0  2
  tmpfs       /tmp    tmpfs  defaults                    0  0

Et il devient possible de passer d'un système à l'autre sans le moindre
soucis.





Plus d'informations sur la liste de diffusion Linux-bruxelles