Disque dur externeLa semaine dernière, un de mes clients – dont je gère le parc informatique – m’a dit qu’il a acheté un disque dur externe et qu’il n’arrivait pas à l’utiliser sur certains systèmes. Il utilise principalement Linux et Mac OS, mais il lui arrive d’avoir à travailler sur des postes sous Microsoft Windows. Je me suis dit que le moment était venu de faire le point sur la question du partitionnement et du formatage des disques externes.

MBR vs. GPT

Les informations de partitionnement sont actuellement gérées par deux procédures distinctes.

  • MBR (Master Boot Record)
  • GPT (GUID Partition Tables)

Les concepts de partitionnement basés sur les tables de partitions MBR remontent à l’époque MS-DOS, ce que explique tout un ensemble de limitations et de règles plus ou moins farfelues. La taille maximale de 2 To constitue sans doute la limitation la plus contraignante à une époque où l’on rencontre régulièrement des disques de 4 To.

GPT est un standard créé il y a quelque temps déjà pour éviter les nombreuses limitations liées au MBR. Les ordinateurs de la marque Apple utilisent GPT depuis 2005. Les machines Windows y ont migré depuis la présentation de Windows 8 à l’automne 2012. L’UEFI, le remplaçant du BIOS, exige l’utilisation d’une table de partitionnement GPT.

En théorie, le partitionnement GPT est censé avoir remplacé le modèle MBR depuis belle lurette. En pratique, ce dernier reste largement répandu, et nous retrouvons ce paradigme classique où une technologie obsolète a la vie dure et refuse de céder la place au progrès.

FAT vs. NTFS

Dans mon quotidien professionnel, je me retrouve confronté régulièrement aux clés USB et autres disques durs externes des clients, qui utilisent soit le système de fichiers FAT, soit le système de fichiers NTFS.

Le système de fichiers FAT (File Allocation Table) nous vient des bons vieux jours de MS-DOS. C’est un système de fichiers avec un os dans le nez, qui présente le seul avantage d’être pris en charge par tous les systèmes d’exploitation majeurs, c’est-à-dire Windows, Linux, BSD et Mac OS.

Quant au système de fichiers NTFS (New Technology File System), c’est le système de fichiers utilisé par défaut sur les systèmes Windows ces vingt dernières années. Il est correctement supporté par Linux, et il gère les disques de plus de 2 To et les fichiers de plus de 2 Go. En revanche, on ne pourra pas l’utiliser sous Mac OS, ce qui constitue un frein considérable à l’interopérabilité.

ExFAT

En septembre 2019, Microsoft a libéré son système de fichiers ExFAT (Extended File Allocation Table). Il est basé sur FAT sans toutefois souffrir des limitations de ce dernier. Et ce qui nous intéresse ici, c’est qu’il est géré par tous les OS courants et moins courants.

Atelier pratique

Dans l’exemple ci-dessous, je vais partitionner et formater un disque dur externe Western Digital de 500 Go de manière à ce qu’il soit utilisable sous Windows, Mac OS et Linux, tout en étant capable de gérer des fichiers d’une taille supérieure à 2 Go.

Pour commencer, j’identifie mon disque externe.

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0      2:0    1     4K  0 disk 
sda      8:0    0  55,9G  0 disk 
├─sda1   8:1    0     8M  0 part 
├─sda2   8:2    0   500M  0 part /boot
├─sda3   8:3    0  51,4G  0 part /
└─sda4   8:4    0     4G  0 part [SWAP]
sdb      8:16   0 465,7G  0 disk 
└─sdb1   8:17   0 465,7G  0 part 
sr0     11:0    1  1024M  0 rom  

Je repars sur des bases saines en détruisant la table de partitions existante.

# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): x

Expert command (? for help): z
About to wipe out GPT on /dev/sdb. Proceed? (Y/N): y
GPT data structures destroyed! You may now partition 
the disk using fdisk or other utilities.
Blank out MBR? (Y/N): y

Je crée une partition de type 0700 (Microsoft basic data).

# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): n
Partition number (1-128, default 1): [Entrée]
First sector (34-976707550, default = 2048) or {+-}size{KMGTP}: [Entrée]
Last sector (2048-976707550, default = 976707550) or {+-}size{KMGTP}: [Entrée]
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 0700
Changed type of partition to 'Microsoft basic data'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

Je vérifie si les paquets relatifs à la gestion du système de fichiers ExFAT sont bien installés sur ma station de travail sous OpenSUSE Leap.

# rpm -qa | grep exfat
fuse-exfat-1.2.8-lp151.1.1.x86_64
exfat-utils-1.2.8-lp151.1.2.x86_64

Je crée un système de fichiers ExFAT sur la partition unique de mon disque externe, en ajoutant l’étiquette MICROLINUX.

# mkexfatfs -n MICROLINUX /dev/sdb1
mkexfatfs 1.2.8
Creating... done.
Flushing... done.
File system created successfully.

Je tente un premier montage manuel de mon disque.

# mount -v /dev/sdb1 /mnt/
FUSE exfat 1.2.8

Je cherche un fichier d’une taille conséquente.

$ du -sh openSUSE-Leap-15.1-DVD-x86_64.iso
3,8G openSUSE-Leap-15.1-DVD-x86_64.iso

Je copie ce fichier vers mon disque externe.

$ cp -v openSUSE-Leap-15.1-DVD-x86_64.iso /mnt/
'openSUSE-Leap-15.1-DVD-x86_64.iso' -> '/mnt/openSUSE-Leap-15.1-DVD-x86_64.iso'

Je démonte mon disque externe.

# umount /mnt

Notez en passant que les opérations de montage et de démontage peuvent bien évidemment s’effectuer en mode graphique avec un navigateur de fichiers comme Dolphin.

Je branche mon disque sur un poste tournant sous Windows 10. Le contenu du disque s’affiche correctement, et je peux y accéder en lecture et en écriture.

Windows ExFAT


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


6 commentaires

FRANCK THOUREL · 2 décembre 2019 à 10 h 20 min

Bonjour et merci pour ces informations, qui sont toujours agréables à lire, qu’on maîtrise le sujet ou non.

Dans l’attente de la suite de votre dernier livre le tome 2.

Bonne journée.

Cordialement.

Marmotte · 2 décembre 2019 à 13 h 47 min

Bonjour,

Une phrase me dérange dans cet article : « L’UEFI, le remplaçant du BIOS, exige l’utilisation d’une table de partitionnement GPT. »
Il y a peut être des cas qui posent problème (certaines implémentations ou certains OS), mais une machine démarrant en mode UEFI peut très bien utiliser des disques utilisant une table de partitions MBR comme disque de données (la base de cet article), et dans la plupart des cas comme disque système aussi.
Pour un disque de données, rien de spécial à dire, c’est l’OS qui gère.
Pour un disque système, il suffit d’avoir une partition du bon type (EFI System) et formatée avec le bon système de fichiers (vfat/fat32) 😉

    kikinovak · 2 décembre 2019 à 15 h 43 min

    En théorie, vous avez sans doute raison. En pratique, j’ai essayé d’utiliser un partitionnement MBR avec des machines utilisant l’UEFI, et ça a toujours donné des joyeusetés du genre « Unknown Partition Table ». Les détails se trouvent dans le livre « Linux 2019 » de Michael Kofler (en allemand). Et pour l’anecdote, j’ai eu installé Slackware sur des machines UEFI dans le temps, c’est pour vous dire que moi aussi je chasse l’ours à mains nues. :o)

    Un gentil bonjour de la garrigue gardoise.

Stéph · 10 décembre 2019 à 13 h 56 min

Les partitions formatées en Exfat ne se redimensionnent pas. Dans certains cas cela peut être gênant, bien que souvent contournable en copiant toutes les données sur un autre support.

    kikinovak · 10 décembre 2019 à 18 h 50 min

    L’Exfat, je l’utilise seulement pour les disques externes. Je ne vois aucun scénario possible où je serais amené à redimensionner une telle partition.

      Stéph · 10 décembre 2019 à 19 h 36 min

      Effectivement sur un disque mono-partition le problème ne se pose pas.

      Je l’ai rencontré, une fois sur une carte microSD disposant de deux partitions, en voulant copier l’ensemble sur une plus grande carte micro SD. Je n’ai pas pu directement étendre l’une des partitions (j’ai pu déplacer la seconde, mais pas agrandir la première, j’ai du sauver les données, détruire et refaire la partition, pour restaurer les données). Mais je reconnais que c’était un cas limite, lié à une modification/émulation de console de jeux.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.