Ajouter des Disques Durs
Cas d'un disque déjà utilisé

Cette partie vous permettra de récupérer des informations contenues dans un 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ées d'un ordinateur sur un autre.

Identifier le disque dur

Plusieurs commandes existent aux résultats plus ou moins compréhensibles et adaptés aux besoins de l'utilisateur.

    -
lshw

sudo lshw -class disk

Exemple de résultat

*-disk:0
description: ATA Disk
product: WDC WD200EB-00CP
vendor: Western Digital
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: 06.0
serial: WD-WMAAXXXXXXX
size: 18GiB (20GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=7945XXXXXX
*-disk:1
description: ATA Disk
product: ST320414A
vendor: Seagate
physical id: 0
bus info: scsi@0:0.1.0
logical name: /dev/sdb
version: 3.05
serial: 7EC0XXXXX
size: 18GiB (20GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=fxxxxxx


    -
Analyse des fichiers log

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 [sh]d[a-z] pour obtenir quelque chose de ce genre ou encore dmesg > /chemin/votre_fichier (cela permet d'envoyer le contenu de la commande dans un fichier) :

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


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 fdisk. Ainsi, nous allons afficher les partitions du disque principal,
sudo fdisk -l

qui renvoie :

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 bootables ou non et le type de système de fichiers.

Note: On peut aussi aller, dans la barre du haut, sur Système/Administration/Disques pour avoir le nom des disques (le nombre d'information est tout de même moins détaillé)

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

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. Ou utilisez Gparted qui est une interface graphique permettant de partitionner et formatter les disques durs.

Il se lance avec la commande
sudo cfdisk éventuellement suivie 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 menus 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 modifications de manière définitive (à faire avant de quitter)

Formater les disques

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
    - reiserfs 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 partition, par exemple, pour formater hdb1 en ext3 :
sudo mkfs.ext3 /dev/hdb1

Formatage NTFS

ntfs : système de fichier de windows NT XP (disques durs de grande capacité). Dans le cas particulier où l'on souhaite formater un disque dur USB externe au format NTFS
Il faut installer
ntfsprogs avec le gestionnaire de paquets Synaptic
Partitionner le disque si une ou des partition(s) n'existe(nt) pas (cas d'un disque neuf) :
sudo cfdisk /dev/sdc

Puis formater la partition créée, par exemple une partition couvrant le disque complet :
sudo mkntfs /dev/sdc1

Dès lors, vous pouvez aussi utiliser "mkfs.Type_de_fichier" :
sudo mkfs.ntfs /dev/sdc1

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ères : soit à la demande, comme on le fait généralement avec le lecteur CD par exemple, soit de manière permanente au démarrage de l'ordinateur comme c'est utilisé pour le disque système.

Dans les exemples suivants, on prévoit que votre point de montage est prêt et qu'il s'agit de /media/backup, pour ce faire il suffit juste de créer le dossier en question avec mkdir.

À 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ètres à lui appliquer.

Pour monter notre disque /dev/hdb1 dans /media/backup :
sudo mount /dev/hdb1 /media/backup

Cette commande monte votre disque en détectant automatiquement le type du système de fichier, dans certains cas, Linux sera incapable de le choisir automatiquement, il faudra donc indiquer à la commande mount le type de fichier :
sudo mount -t ext3 /dev/hdb1 /media/backup

Vous pouvez aussi ajouter des options comme, par exemple, des droits d'accès :
sudo mount -t ext3 -o mode=0755 /dev/hdb1 /media/backup

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

Dans le cas particulier où l'on souhaite monter un disque USB externe NTFS :
sudo mount -t ntfs-3g /dev/sdd1 /media/backup

démontage avant arrêt du disque dur :
sudo umount -f /media/backup

Le disque NTFS peut refuser de se monter, cela peut arriver lorsque le disque à été mal démonté par windows, pour forcer le montage :
sudo mount -t ntfs-3g /dev/sdd1 /media/backup -o force

De manière permanente

En modifiant le fichier fstab
Pour que le disque dur soit détecté automatiquement au démarrage, on doit éditer le fichier
/etc/fstab et ajouter la ligne suivante :

Le fichier
/etc/fstab contient les points de montage pour chacun des systèmes de fichiers utilisés couramment sur le système et qui seront montés au démarrage. Un fstab est composé de plusieurs lignes décrivant chacune les conditions de montage de chaque système de fichier.

Point de montage dont le nom comporte un espace.
Pour la commande mount : l'espace doit être précédé d'un caractère d'echappement \, ou le nom du dossier mis entre guillements ""
Pour Fstab : l'espace doit être remplacé par \040

On retrouve dans ce fichier toutes les informations que nous avons déjà mentionnées. Certains systèmes de fichiers tels que /proc ou la swap sont un peu particuliers, et il est fortement recommandé de ne pas y toucher sans savoir ce que l'on fait. Les options de dump et de pass sont utilisées respectivement pour les sauvegardes (dump) et l'ordre de vérification au démarrage (pass). Laissez-y également les valeurs par défaut. Si vous ajoutez manuellement des partitions par la suite, les valeurs de <pass> doivent rester à 1 pour la racine, à 2 pour les autres partitions UNIX, et à 0 pour le swap et les partitions windows. Une valeur de <pass> à 0 signifie qu'il n'y aura pas de vérification au démarrage (Déconseillé dans la plupart des cas).

Le fichier /etc/fstab suivant résume une configuration classique :

# /etc/fstab: static file system information.
#
# file system mount point                                                 type     options                dump pass
proc /proc proc defaults 0 0
# / was on /dev/sda7 during installation
UUID=33b870b8-a81e-4203-a4fd-7affa9f412fb /             ext4     errors=remount-ro   0   1
# /boot was on /dev/sda5 during installation
UUID=c3cc32c0-b4bd-49f6-b23c-35fed37adea5 /boot      ext2    defaults                    0   2
# /home was on /dev/sda8 during installation
UUID=c2d386a1-c2f9-4d2f-957a-65a5d9b4c4d7 /home    ext4    defaults                   0   2
# /opt was on /dev/sda9 during installation
UUID=050d0aa7-e04c-4f3a-895d-4b228a0ba049 /opt      ext4    defaults                   0   2
# swap was on /dev/sda6 during installation
UUID=2c442228-1991-48c7-bad9-a80dfc8267cf none      swap    sw                           0   0

Lorsqu'un système de fichier est présent dans le fichier /etc/fstab, tous les utilisateurs peuvent le monter en tapant "mount /media/stock" par exemple. En outre, il est monté automatiquement au démarrage de la machine.
Options
Description
Compatible
defaults
Correspond à: rw, suid, dev, exec, auto, nouser et async
discard
Compatible ext4 SSD seulement, active le TRIM
SSD partition ext4
auto
Montage automatique lors d'un appel mount -a (par défaut)
noauto
Pas de montage automatique
user
Autorise l'utilisateur courant à monter/démonter le système de fichier. Ceci entraîne l'utilisation des options noexec, nosuid, et nodev (à moins qu'elles ne soient explicitement surchargées, comme dans une ligne d'option user,exec,dev,suid)
nouser
Seul le compte root peut monter/démonter le système de fichier (par défaut)
rw
Montage en lecture/écriture (par défaut)
ro
Montage en lecture seule
atime
Met a jour la date à chaque manipulation (par défaut)
noatime
Pas de mise à jour de la date (Augmente la durée de vie de votre SSD)
exec
Autorise l'exécution des programmes (par défaut)
noexec
Pas d'exécution
showexec
?
! pas ext !
suid
Les bits SUID et SGID sont pris en compte (par défaut)
nosuid
Les bits SUID et SGID ne sont pas pris en compte
async
Montage asynchrone (par défaut)
sync
Montage synchrone
dev
Interpréte les fichiers spéciaux de périphériques présents sur le système (par défaut)
nodev
N'interpréte pas les fichiers spéciaux de périphériques présents sur le système de fichiers
uid=
Spécifie le n° du user propriétaire des fichiers (si omis : root) [n° du user ou nom en toutes lettres ???]. Les numéros des utilisateurs se trouve dans "/etc/passwd".
fat, ntfs
gid=
Spécifie le n° du groupe propriétaire des fichiers (si omis : root). Les numéros des groupes se trouve dans "/etc/group".
fat, ntfs, (! pas ext4)
umask=
umask=000 pour avoir chmod 777 - spécifie les droits d'usage des fichiers (et des dossiers ? ) permission=777-umask (si omis : ? )
fat, hfs, hpfs, ntfs, udf (! pas ext4)
dmask=
(obsolète, utiliser dir_mode) spécifie les droits d'usage des dossiers - (si omis : ? )
(! pas ext4)
dir_mode=
Pour les répertoires, indique le chmod, par exemple 0777 pour un accès complet !
fmask=
(obsolète, utiliser file_mode) spécifie les droits d'usage des fichiers - (si omis : ? )
(! pas ext4)
file_mode=
Pour les fichiers, indique le chmod, par exemple 0777 pour un accès complet !
utf8 (autres possibilités ?)
(par exemple) spécifie l'encodage utf8 pour les noms de fichiers
sw
Montage des partitions swap
swap
windows_names
Interdit l'usage des caractères non compatibles avec Windows dans les noms de fichiers. À savoir / \ : ? * < > " et le caractère barre verticale. Remarque : ces caractères ne peuvent de toutes façons pas être utilisés dans les partitions de format FAT
ntfs (! pas ext4)
De manière graphique

Disk-manager permet d'effectuer pour vous cette opération.

Note sur les UUIDs

Il est préférable de noter les UUIDs des partitions plutôt que leur types bloc (exemple: /dev/sda4, /dev/sdb2…). En effet, l'UUID est unique à la partition, elle vous assure qu'il n'y aura pas d'ambiguïté dans votre fstab.
Pour obtenir les UUIDs de vos partitions, tapez
sudo blkid

Vous obtiendrez la liste de vos partitions, leurs types blocs, leurs UUIDs, leurs étiquettes, leurs types:

/dev/sda5: UUID="c3cc32c0-b4bd-49f6-b23c-35fed37adea5" TYPE="ext2"
/dev/sda6: UUID="2c442228-1991-48c7-bad9-a80dfc8267cf" TYPE="swap"
/dev/sda7: UUID="33b870b8-a81e-4203-a4fd-7affa9f412fb" TYPE="ext4"
/dev/sda8: UUID="c2d386a1-c2f9-4d2f-957a-65a5d9b4c4d7" TYPE="ext4"
/dev/sda9: UUID="050d0aa7-e04c-4f3a-895d-4b228a0ba049" TYPE="ext4"
/dev/sdd1: LABEL="Datas" UUID="77F65A7545C503E9" TYPE="ntfs"


Ainsi, dans votre fstab, les deux lignes suivantes sont équivalentes, mais on préfèrera la seconde:
/dev/sdd1 /mnt/Datas ntfs defaults 0 0
UUID=77F65A7545C503E9 /mnt/Datas ntfs defaults 0 0

Monter un répertoire avec l'option « bind » de la commande « mount »

Après avoir monté un disque, par exemple dans /media/disque-test, il peut être intéressant de monter l'intégralité du contenu, ou un répertoire seulement, de ce disque dans un autre répertoire sans démonter /media/disque-test.

Cela permet par exemple :

 
  - de « recopier » ce contenu dans un répertoire tout spécialement destiné à un partage FTP,
    - un utilisateur qui n'a pas accès au disque-test par le répertoire de montage peut ainsi se voir  conférer des droits d'accès à un sous répertoire du
      disque-test s'il a accès au répertoire lié (le répertoire lié et les fichiers qu'il contient doivent autoriser cet accès)


Cela est possible avec l'option "bind" (bind signifie lier en anglais) de la commande « mount » qui s'utilise ainsi en ligne de commande :
mount --bind /media/répertoire-à-lier /home/user/répertoire-lié
mount --bind /source-"privée"-à-rendre-visible /répertoire-accessible-à-tous
sudo mount --bind /media/disque/répertoire /home/user/répertoire-lié


Attention : l'utilisateur du répertoire lié peut aussi modifier les données auxquelles il a accès, si les droits qui lui sont conférés par le répertoire lié et les fichiers qu'il contient le lui permettent.

On peut démonter le répertoire lié par la commande : 'umount /home/user/répertoire-lié'
sudo umount /home/user/répertoire-lié

De toute façon, lors d'un redémarrage les montages vont disparaître.

Pour faire perdurer ces montages, il faut alors spécifier ce montage dans le fichier fstab.

nano /etc/fstab

On indique le montage 'bind' de la façon suivante :
 
/media/disque/répertoire /home/user/répertoire-lié none bind 0 0

Voici un exemple :
                       
# /etc/fstab: static file system information.
#
# file system mount point           type           options                            dump pass
proc               /proc                      proc      defaults                                   0     0
/dev/hda2     /                             ext3      defaults,errors=remount-ro     0     1
/dev/hda3     /home                    ext3      defaults                                    0     2
/dev/hda6     /media/stock          ext3     defaults                                     0     2
/dev/hda1     /media/win_c         vfat      defaults,umask=0                     0      0
/dev/hda7     /media/win_d         vfat      defaults,umask=0                     0     0
/dev/hdb1     /media/windows    ntfs       ro,uid=1000,gid=1000             0      2
/dev/hda8     /media/debian      reiserfs  defaults                                     0     2
/dev/hda5     none                     swap     sw                                             0     0
/dev/hdc        /media/cdrom0     udf,iso9660 ro,user,noauto                    0      0

# mes répertoires liés
/media/Maxtor1 /home/user/Maxtor1 none bind 0 0

Il suffit de retirer le dernier paragraphe du fichier fstab pour annuler l'opération au prochain redémarrage.