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é.

InfoVous êtes informaticien et vous avez l’habitude de formater les clés USB et les disques durs externes de vos clients en NTFS ? Et si vous étiez pompiste, vous me conseilleriez de mettre du gasoil dans le réservoir de ma moto ?

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

InfoLes opérations de montage et de démontage ainsi que la copie de fichiers 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.

ExFAT Windows


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.

 


4 commentaires

Stephane · 14 août 2020 à 15 h 32 min

je pense qu’à partir de Windows 7 ( voir les différence 32 / 64 bits et suivant les versions home , familial ou professionel , etc ) c’est en GPT que le formatage était fait pour
usage de /boot/efi en 2007- 2008 , pensez bootcamp par Apple pour permettre l’installation de windows sur un support GPT

    kikinovak · 15 août 2020 à 0 h 07 min

    GPT est une méthode de partitionnement. Ne pas confondre avec le formatage.

Fabrice · 17 août 2020 à 8 h 45 min

Salut,

Je tiens à modérer ton propos sur l’utilisation de NTFS sur les disques durs externes (ou supports de type SSD). C’est un bon système de fichiers avec ACL, chiffrement, MFT, journalisation et compression. Cela n’a rien d’aberrant sur ce type de support si la cible principale est du Windows et qu’il sert à partager quelques fichiers avec des systèmes GNU/Linux. Par contre, sur une clef USB…

Ce n’est pas mon premier choix comme FS mais on est loin de la moto diesel. 😀

Note : je ne touche pas au matos Apple, qu’il reste dans son écosystème.

PS : Tu as d’excellent articles.

    kikinovak · 17 août 2020 à 9 h 20 min

    Merci pour les fleurs.

    Et je note pour NTFS, que je ne connais pas plus que ça, vu que la dernière fois que j’ai utilisé Windows au quotidien, c’était avant la sortie de XP.

    Le problème avec NTFS, c’est quand les vendeurs d’informatique en question (pas de noms) filent des clés USB / disques durs externes NTFS à des clients qui ont un Mac. Ce cas de figure revient de temps en temps dans mon quotidien.

    C’est vrai que ça résoudrait le problème si Apple se motivait à supporter le système de fichiers NTFS. Vu que ntfs-3g est inclus dans les ports de FreeBSD (le système qui sert de base à macOS), j’imagine que ça ne doit pas être la mer à boire non plus. Corrigez-moi si je me trompe.

Les commentaires sont fermés.