gblend-1
Accueil du site > Documentations > Système > libATA

libATA

Publié le dimanche 18 mai 2008, mis a jour le dimanche 25 mai 2008, par Stephane MALINET

La libATA est une bibliothèque utilisée sous le noyau linux pour le support des controlleurs et périphériques ATA. Elle permet de gérer les transferts ATA et ATAPI via le sous-système SCSI.

Introduction

La libATA est une bibliothèque du noyau linux pour le support des controlleurs et périphériques ATA. Elle permet de gérer les transferts ATA et ATAPI via le sous-système SCSI. Apparue dans le noyau 2.6.18, à la base développée pour le support des disques Serial ATA, elle s’est imposée comme le futur standard des disques Paralell ATA (entendez les disques à interfaces IDE). De fait à terme les drivers IDE seront probablement amenés à disparaitre du noyau au détriment de la libATA. Un des gros avantages, est de n’avoir à paramétrer qu’un seul format de périphérique peu importe le type d’interface IDE, SATA, ou SCSI : tout sera vu en /dev/sd* et /dev/sr* pour les lecteurs et graveurs CD DVD.

Configuration

Le Noyau

Nous allons donc dans un premier temps changer la configuration du noyau :

# cd /usr/src/linux
# make menuconfig

Si vous n’avez que des disques SATA et que vous utilisez des clés USB, alors votre configuration noyau est déjà trés proche de celle ci-dessous, pensez à désativer le support ATA/ATAPI... et à activer le support des lecteurs de CDROM SCSI. Sélectionnez les options suivantes afin de n’activer que le support libATA :

Device Drivers  --->
 < > ATA/ATAPI/MFM/RLL support  --->
 SCSI device support  --->
     -*- SCSI device support
     <*> SCSI target support
     [*] legacy /proc/scsi/ support
     <*> SCSI disk support
     <*> SCSI CDROM support
     [*]   Enable vendor-specific extensions (for SCSI CDROM)
     <*> SCSI generic support
     [*] SCSI logging facility
     [*] Asynchronous SCSI scanning
 <*> Serial ATA (prod) and Parallel ATA (experimental) drivers  --->
(sélectionnez le support de votre chipset à l'aide de la commande lspci,  dans notre exemple un intel)
      <*>   Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support

Ensuite recompilez votre noyau :

# make -j2 && make modules_install

Le fichier /etc/fstab

C’est là que cela se complique un peu puisque les disques IDE seront vus comme des disques SCSI, si vous n’aviez que des disques IDE, alors ce sera relativement simple puisque d’une manière générale, /dev/hda deviendra /dev/sda, /dev/hdb -> /dev/sdb... en revanche, si vous mixiez disques SATA et disques IDE alors il va falloir trouver un moyen de savoir comment seront nommés les disques.

- Une méthode serait de labeliser vos partitions c’est-à-dire de donner un nom à ces partitions afin de pouvoir nommer la partition /boot en BOOT par exemple. L’opération de mettre des labels sur vos partitions doit de faire sur des partitions non montées, le mieux est donc depuis un liveCD. Pour ce faire utilisez les outils suivant :

sur ext2/3 : tune2fs (16 caractères maximum)

# tune2fs -L BOOT /dev/hda1

sur reiserfs : reiserfstune (16 caractères maximum)

# reiserfstune -l ROOT /dev/hda2

sur xfs : xfs_admin (12 caractères maximum)

# xfs_admin -L USR /dev/hda3

sur jfs : jfs_tune (16 caractères maximum)

# jfs_tune -L VAR /dev/hda6

Pour la partition de swap :

# mkswap -L SWAP /dev/hda5

Modifiez ensuite le fichier /etc/fstab :


[...]
LABEL=ROOT    /               reiserfs         noatime      0 2
[...]

- Autre méthode est d’utiliser la dénomination par UUID (entendez Universal Unique IDentifier) des partitions.

Pour les connaître :

# ls -lh /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 mai 11 18:44 136cea0d-4971-45f7-a22f-184c28325e0d -> ../../hdb1
lrwxrwxrwx 1 root root 10 mai 11 18:44 19f589de-5fe1-4ef8-886e-5407bdd09242 -> ../../hda6
lrwxrwxrwx 1 root root 10 mai 11 18:44 23522038-ec20-4d27-b082-2cb7cb01d18f -> ../../hda7
lrwxrwxrwx 1 root root 10 mai 11 18:44 28176ab9-04a4-4661-ae7b-aad4e2adc4e3 -> ../../hda3
lrwxrwxrwx 1 root root 10 mai 11 18:44 81b59432-398e-40fd-8098-f6f7b4abc52a -> ../../hda5
lrwxrwxrwx 1 root root 10 mai 11 18:44 88f09f52-b4f6-4ee3-b96f-d86b6d4b1e57 -> ../../hda1
lrwxrwxrwx 1 root root 10 mai 11 18:44 c422bb01-014d-46b2-98cd-73071234df6f -> ../../hda8
lrwxrwxrwx 1 root root 10 mai 11 18:44 d605fa56-f3bb-416c-9b65-27cde7a703f6 -> ../../hda2

Remplacez donc dans le fichier /etc/fstab vos /dev/hd* par les UUID correspondantes :


[...]
UUID=d605fa56-f3bb-416c-9b65-27cde7a703f6  /               reiser4         noatime,nodiratime      0 2
[...]

Dans tout les cas n’oubliez pas vos lecteurs et/ou graveurs CD DVD :

/dev/sr0                /mnt/dvdrom     iso9660         noauto,ro,user          0 0
/dev/sr1                /mnt/cdr        iso9660         noauto,ro,user          0 0

Le Chargeur de démarrage

- Grub

Modifiez le fichier /boot/grub/grub.conf :

title=GENTOO 2.6.25 entropie R3
root (hd0,0)
kernel /kernel-2.6.25-entropie-r3 root="LABEL=ROOT"

- Lilo

Modifiez votre fichier /etc/lilo.conf :

boot=/dev/sda
prompt
timeout=50
default=Gentoo

image=/boot/kernel-2.6.25-gentoofr-r5
 label=Gentoo
 read-only
 root="LABEL=ROOT"

A ce niveau il ne vous reste plus qu’à rebooter... Ceci dit, pensez à vérifier vos configurations hdparm et lvm... Dans le pire des cas vous ne verrez aucune différence en terme de performances, en revanche dans le meilleur des cas ces dernières seront améliorées.


Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP | squelette