Ajouter un nouveau disque dur

Une question qui revient fréquement: comment ajouter un disque dur sous Linux? En effet, s’il est maitenant très facile d’installer Linux, ajouter du matériel n’est pas toujours évident. Vous apprendrez ici tout ce qu’il est nécessaire pour mener à bien cette expérience.

Avant de commencer à utiliser ce tutoriel, il est conseillé de maîtriser un peu Linux

1 – Notions de base

Avec GNU/Linux, tout comme avec Unix, tout est fichier. Le système interprète donc vos périphériques en tant que fichiers. Les disques dur n’échappent pas à cette règle et se retrouvent donc dans le dossier /dev. Traditionnellement les périphériques IDE répondent à une appellation commençant par hd pour Hard Disk suivi d’une lettre correspondant à la position logique du disque (maître, esclave etc.) suivi d’un chiffre identifiant la partition.

Par exemple, la première partition du premier disque dur (disque maître du bus IDE primaire) s’appelle donc hda1 et c’est généralement sur celle-ci qu’est installé votre système d’exploitation.

Malheureusement cette nomenclature devient plus complexe dès lors que l’on utilise des contrôleurs serial ATA ou RAID et que l’on se retrouve avec beaucoup de disques dans le même ordinateur. Je vais, dans cet article, essayer de vous faciliter la vie mais si vous désirez vraiment savoir comment ça fonctionne je vous invite à consulter cette page de Linux Wizard.

2 – Cas d’un disque déjà utilisé

Cette partie vous permettra de récupérer des informations contenue dans disque dur ayant déjà servi et donc, étant déjà partitionné formaté etc. Ceci est particulièrement utile pour récupérer les donnée d’un ordinateur sur un autre.

2.1 – Identifier le disque dur

Les disques durs connectés à l’ordinateur sont identifiés au démarrage de l’ordinateur, par conséquent il faut analyser le journal de démarrage pour récupérer leur appellation logique.

Lancez la commande dmesg | grep hd* pour obtenir quelque chose de ce genre:

Kernel command line: root=/dev/hda1 ro quiet splash
ide0: BM-DMA at 0xe000-0xe007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xe008-0xe00f, BIOS settings: hdc:DMA, hdd:DMA
hda: WDC WD200BB-00AUA1, ATA DISK drive
hdb: Maxtor 51024U2, ATA DISK drive
hda: max request size: 128KiB
hda: 39102336 sectors (20020 MB) w/2048KiB Cache, CHS=38792/16/63, UDMA(100)
hda: cache flushes not supported
hdb: max request size: 128KiB
hdb: 20010816 sectors (10245 MB) w/2048KiB Cache, CHS=19852/16/63, UDMA(66)
hdb: cache flushes not supported
hdc: HITACHI DVD-ROM GD-5000, ATAPI CD/DVD-ROM drive
hdd: HL-DT-ST GCE-8526B, ATAPI CD/DVD-ROM drive
Adding 746980k swap on /dev/hda5. Priority:-1 extents:1
EXT3 FS on hda1, internal journal
hdc: ATAPI 40X DVD-ROM drive, 512kB Cache
hdd: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache
EXT3 FS on hdb1, internal journal

Dans cet exemple on remarque facilement ces périphériques:

  • hda Disque dur primaire Western Digital de 20Go
  • hdb Disque dur secondaire Maxtor de 10Go
  • hdc Lecteur DVD-ROM Hitachi
  • hdd Graveur CD-RW

2.2 – Identifier les partitions

Une fois le nom du disque récupéré, il nous reste à repérer la partition qui nous intéresse. Nous allons utiliser la commande fdsik. Ainsi, avec fdisk -l /dev/hda nous allons afficher les partitions du disque principal:

Disque /dev/hda: 20.0 Go, 20020396032 octets
255 têtes, 63 secteurs/piste, 2434 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 * 1 2341 18804051 83 Linux
/dev/hda2 2342 2434 747022+ 5 Extended
/dev/hda5 2342 2434 746991 82 Linux swap / Solaris

Et voilà, nous obtenons le nom de chacune des partitions et un certain nombre d’informations intéressantes comme la position sur le disque, les partitions bootable on non et le type de système de fichiers.

3 – Cas d’un disque vierge/neuf

Si vous installez un nouveau disque dans votre ordinateur, il faut obligatoirement le partitionner et le formater, ce qui implique des manipulations supplémentaires. Pour trouver l’identifiant de votre disque, je vous invite à suivre la démarche du point 2.1

3.1 – Partitionner le disque

L’utilitaire cfdisk vous permet d’afficher les partitions d’un disque et de les modifier. Attention, si vous supprimez une partition, vous détruisez son contenu.

Il se lance avec la commande sudo cfdisk éventuellement suivi de l’adresse du disque concerné comme dans l’exemple suivant (sudo cfdisk /dev/hda).

                                  cfdisk 2.12p

Unité de disque: /dev/hda
Taille: 20020396032 octets, 20.0 Go
Têtes: 255 Secteurs par piste: 63 Cylindres: 2434

Nom Fanions Part Type Type SF [Étiq.] Taille (Mo)
------------------------------------------------------------------------------
hda1 Amorce Primaire Linux ext3 [/] 19255,39
hda5 Logique Linux swap / Solaris 764,96



[Amorçable] [Détruire] [ Aide ] [Maximiser] [Afficher]
[Quitter ] [ Type ] [Unités ] [Écrire ]

Basculer le fanion d'amorce pour la partition courante

Vous pouvez choisir votre partition avec les flèches haut et bas et utiliser les menu avec la touche tabulation, voici l’explication concise de ses principaux menus

  • [Amorçable] rend amorçable la partition sélectionnée, ceci est indispensable pour la partition contenant votre système d’exploitation.
  • [Nouveau] permet de créer une partition dans un espace vide
  • [Détruire] efface la partition sélectionnée
  • [Aide] affiche l’aide
  • [Quitter] quitte sans enregistrer les modifications
  • [Type] permet de choisir le type de partition (Fat, Ext, etc.) cette commande affiche une liste exhaustive.
  • [Unité] permet de choisir si on affiche la taille des partitions en Cylindres, en Secteurs ou en Octets
  • [Écrire] enregistre les modification de manière définitive (à faire avant de quitter)

3.2 – Formater le disque

Une fois vos partitions clairement identifiées et préparées, il vous reste à les formater correctement. Avant de procéder au formatage en tant que tel, pensez à choisir le type de système de fichier du genre…

  • ext2 système de fichier historique de Linux
  • ext3 évolution de l’ext2 avec journalisation
  • jfs concurrent de l’ext3
  • vfat système de fichier de windows 9x

La commande mkfs vous permet de formater votre partition, elle s’utilise en passant en paramètre le type de fichier voulu et le nom de la partion, par exemple, pour formater hdb1 en ext3: sudo mkfs.ext3 /dev/hdb1.

4 – Connecter logiquement le disque dur

Avec Linux, pour avoir accès à un périphérique, il faut le « monter » c’est à dire que l’on doit faire correspondre un dossier existant de l’arborescence avec le fichier de matériel en question. Cela peut se faire de deux manière: soit à la demande, comme on le fait généralement avec ne lecteur CD par exemple, soit de manière permanente au démarrage de l’ordinateur comme c’est utilisé pour le disque système.

Da
ns les exemple suivant on prévoit que votre point de montage et prêt et qu’il s’agit de /media/backup, pour se faire il suffit juste de créer le dossier en question avec mkdir.

4.1 – À la demande

Pour monter un périphérique de stockage, on utilise la commande mount qui doit s’accompagner de la désignation de votre lecteur et, éventuellement, des paramètre à lui appliquer.

Pour monter notre disque /dev/hdb1 dans /media/backup

  • mount /dev/hdb1 /media/backup

Cette commande monte votre disque en détectant automatiquement le type du système de fichier, dans certain cas, Linux sera incapable de le choisir automatiquement, il faudra donc indiquer à la commande mount le type de fichier:

  • mount -t ext3 /dev/hdb1 /media/backup

Vous pouvez aussi ajouter des option comme, par exemple, des droits d’accés:

  • mount -t ext3 -o mode=0755 /dev/hdb1 /media/backup

Pour aller plus loin dans les arcane de la commande mount je vous invite grandement à consulter le manuel qui lui est associée (man mount)

4.2 – De façon permanente

Si vous voulez monter votre disque dur de façon permanent, c’est à dire à chaque démarrage de votre ordinateur, il vous sera nécessaire de modifier le fichier fstab. Ce fichier à pour but d’identifier les points de montage et, au besoin, de monter les périphériques correspondants. Je propose donc ici de vous faire un petit aperçu de cet outil.

Voici le contenu du fichier /etc/fstab tel qu’il est lu au démarrage de l’ordinateur:

# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/hda1 / ext3 defaults 0 1
/dev/hda5 none swap sw 0 0
/dev/hdd /media/cdrom0 udf,iso9660 ro,user,noauto 0 0
/dev/hdc /media/cdrom1 udf,iso9660 ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Il se décompose de la manière suivante

  • file system : fichier corrspondant au matériel (voir point 1)
  • mount point : point de montage: repetoire auquel sera rattaché le contenu du périphérique (voir point 4)
  • type : le type de fichier (ext2, ext3, vfat pour les données, iso et udf pour le CD etc.)
  • options : les option à appliquer au moment du montage: auto ou noauto montage automatique du périphérique ou avec la commande mount
  • ro : ou rw lecture uniquement ou lecture et écriture
  • defaults : valeurs par défaut
  • dump : vidange ou non du périphérique
  • pass : ordre de vérifiaction du système de fichier

Par conséquent, pour monter automatiquement notre hypotétique partition en ext3 avec des droits particuliers dans le répertoire /media/backup il faudrait ajouter la ligne suivante:

/dev/hdb1 /media/backup  ext3  rw,auto,mode=0755  0  0

5 – Informations complémentaires

5.1 – Le NTFS

Dans certains cas il est interessant de pouvoir monter des partitions de type NTFS, notamment utiliser par les disque dur de grande capacité fonctionnant sous windows NT ou windows XP. Il faut savoir que cela est possible en lecture mais que ça reste très expérimental pour l’ecriture. Pour mettre cela en place, il est indispensable de disposer de la librairie correspondante nommé libntfs5. Vous pouvez l’installer de la manière suivante sous debian:

apt-get install libntfs5

Ainsi, si votre partition est en NTFS vous pôurrez la monter à la volée de la façon suivante:

mount -t ntfs -o mode=0111 /dev/hdb1 /media/backup

Ou l’ajouter au fstab:

/dev/hdb1  /media/backup  ntfs  ro,auto 0  0

L’outil ntfsprogs propose des logiciels permettant de suppoort le ntfs au niveau du foramtage et du patitionnement entre autre

5.2 – Les disques SCSI et SATA

Les disques dur SCSI et Serial ATA reponde globalement aux même spécificité que les disques IDE, il faut cependant s’assurer que le matériel utilisé est comptaible avce Linux. Le nommage des disques ne sera plus en hd mais en sd.