La 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é.
Vous ê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
Les 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.
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.