Ajouter un nouveau disque dur sous linux

Je vais décrire dans cette article comment formater, partitionner et monter un disque dur sous Debian. J'utilise la distribution Ubuntu déjà installée sur un disque dur. Puis nous allons placer le dossier /var sur ce nouveau disque pour gagner de l'espace de stockage.
Toutes les commandes suivantes sont tapées connecté en root.

Préparation du disque dur

Première étape : contrôler que le disque dur est correctement reconnu par l'OS avec le commande "fdisk -l" :

Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1   *           1          13      104391   83  Linux
/dev/cciss/c0d0p2              14       30396   244051447+   5  Extended
/dev/cciss/c0d0p5              14          14        8001   83  Linux
/dev/cciss/c0d0p6              15         536     4192933+  82  Linux swap / Solaris
/dev/cciss/c0d0p7             537         797     2096451   83  Linux
/dev/cciss/c0d0p8             798       30396   237753936   83  Linux
 
Disk /dev/cciss/c0d1: 2000.2 GB, 2000297156608 bytes
255 heads, 32 sectors/track, 478778 cylinders
Units = cylinders of 8160 * 512 = 4177920 bytes
Disk identifier: 0x00000000
 
Disk /dev/cciss/c0d1 doesn't contain a valid partition table

Le disque dur de 2000.2 GB nommé /dev/cciss/c0d1 ne contient pas de partition. Nous allons donc la créer. Il se peut que vous ayez un autre nom, ce sera celui à utiliser dans les commandes suivantes en remplaçant le /dev/cciss/c0d1 par le vôtre.

Deuxième étape : créer une partition sur le nouveau disque dur. Il faut utiliser la commande "cfdisk /dev/cciss/c0d1" (identique à fdisk, mais via une interface graphique simplifiée)

                        cfdisk (util-linux-ng 2.13.1.1)
 
                          Disk Drive: /dev/cciss/c0d1
                      Size: 2000297156608 bytes, 2000.2 GB
             Heads: 255   Sectors per Track: 32   Cylinders: 478778
 
    Name        Flags      Part Type  FS Type          [Label]        Size (MB)
 ------------------------------------------------------------------------------
                            Pri/Log   Free Space                     2000296.19
 
     [  Help  ]  [  New   ]  [ Print  ]  [  Quit  ]  [ Units  ]
     [ Write  ]
 
                               Print help screen

Sur cet écran on peut voir et modifier les partitions.

  • Sélectionner "New", puis validez;
  • Ensuite partition primaire ("Primary"). Attention toutefois, il ne peut y avoir que 4 partitions primaire sur un même disque dur;
  • Laissez la taille par défaut pour utiliser tout le disque;
  • De retour dans l'interface, sélectionnez "Write" puis validez;
  • Répondre "yes" pour écrire la partition;

Vous devez avoir une nouvelle partition de ce type.

 c0d1p1                  Primary   Linux                          2000296.19

Vous pouvez utiliser "Quit" pour quitter l'application.
Si l'on refait un "fdisk -l", une nouvelle partition doit apparaître, ici c'est : "/dev/cciss/c0d1p1".
           Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d0p1   *           1          13      104391   83  Linux
/dev/cciss/c0d0p2              14       30396   244051447+   5  Extended
/dev/cciss/c0d0p5              14          14        8001   83  Linux
/dev/cciss/c0d0p6              15         536     4192933+  82  Linux swap / Sol
aris
/dev/cciss/c0d0p7             537         797     2096451   83  Linux
/dev/cciss/c0d0p8             798       30396   237753936   83  Linux
 
Disk /dev/cciss/c0d1: 2000.2 GB, 2000297156608 bytes
255 heads, 32 sectors/track, 478778 cylinders
Units = cylinders of 8160 * 512 = 4177920 bytes
Disk identifier: 0x00000000
 
           Device Boot      Start         End      Blocks   Id  System
/dev/cciss/c0d1p1               1      478778  1953414224   83  Linux

Troisième étape : formater la partition "mkfs -t ext3 /dev/cciss/c0d1p1". Il faut patienter quelques minutes le temps que l'OS formate et crée correctement la partition.

Quatrième étape : vérifier les données. Avec la commande "fsck -f -y /dev/cciss/c0d1p1" le système va contrôler que la partition est valide et réparer au cas où elle serait défectueuse.

Il est ensuite conseillé de redémarrer avec la commande "reboot".

Monter la partition

Maintenant que la partition est utilisable, il faut la monter pour pouvoir l'utiliser.

Monter une partition simple

Pour monter une partition temporairement il suffit de créer un dossier à la racine par exemple "mkdir /test". Puis de monter la partition avec la commande "mount /dev/cciss/c0d1p1 /test". Attention : Si le dossier existe déjà, son contenu ne pourra être lu tant que le disque dur est monté.
Pour démonter un disque "umount /dev/cciss/c0d1p1" ou alors redémarrer le serveur.

Si vous désirez monter une partition permanente il faudra manipuler le fichier de configuration "/etc/fstab". Toute modification erronée peut bloquer le serveur au démarrage et donc le rendre inutilisable car il ne pourra pas démarrer.
Editer le fichier "/etc/fstab" :

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/cciss/c0d0p8 /               ext3    errors=remount-ro 0       1
/dev/cciss/c0d0p1 /boot           ext3    defaults        0       2
/dev/cciss/c0d0p7 /tmp            ext3    defaults        0       2
/dev/cciss/c0d0p6 none            swap    sw              0       0

Ajouter une nouvelle ligne pour votre partition :
/dev/cciss/c0d1p1 /test            ext3    defaults        0       2

Déplacer un dossier existant

Pour l'article, nous allons déplacer le dossier "/var" pour le mettre sur le nouveau disque dur.
Pour commencer il faut créer un nouveau dossier pour copier le dossier var "mkdir /var2".
Ensuite monter le disque dur temporairement sur ce nouveau dossier "mount /dev/cciss/c0d1p1 /var2".
On peut tester via la commande "df -k"

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d0p8    234023392    863040 221272656   1% /
tmpfs                 12370412         0  12370412   0% /lib/init/rw
udev                     10240       700      9540   7% /dev
tmpfs                 12370412         0  12370412   0% /dev/shm
/dev/cciss/c0d0p1       101086     22412     73455  24% /boot
/dev/cciss/c0d0p7      2063504     35876   1922808   2% /tmp
/dev/cciss/c0d1p1    1922762632    200160 1824891764   1% /var2

C'est la dernière ligne qui nous intéresse. La partition est correctement montée pour le dossier.
Il faut ensuite copier le contenu de var dans var2 en gardant les paramètres de droits, dates etc "cp -rpf /var/* /var2/".
Renommer le dossier var en var.old pour le sauvegarder "mv /var /var.old".
Puis recréer le dossier var car il est important que le dossier existe afin de correctement le monter "mkdir /var".
Maintenant il est nécessaire de démonter le disque dur pour le configurer en montage permanent "umount /dev/cciss/c0d1p1".
Note : A ce moment, vous pouvez regarder le contenu de var2, il est vide car le disque dur est démonté.

Editer le fichier "/etc/fstab" puis ajouter la ligne à la fin

/dev/cciss/c0d1p1 /var            ext3    defaults        0       2

Afin de contrôler que le fichier est correcte et ne pas bloquer le serveur au démarrage, il est possible de monter les partitions écrites dans le fichier fstab sans redémarrer "mount -a".
Puis faites un "df -k" pour contrôler.
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/cciss/c0d0p8    234023392    863048 221272648   1% /
tmpfs                 12370412         0  12370412   0% /lib/init/rw
udev                     10240       700      9540   7% /dev
tmpfs                 12370412         0  12370412   0% /dev/shm
/dev/cciss/c0d0p1       101086     22412     73455  24% /boot
/dev/cciss/c0d0p7      2063504     35876   1922808   2% /tmp
/dev/cciss/c0d1p1    1922762632    449208 1824642716   1% /var

Avec la dernière ligne on voit que la partition est correctement montée.
Maintenant on peut redémarrer en toute sérénité le serveur "reboot".