Menu Fermer

mkfs : formater et créer un système de fichiers (ext4, NTFS, FAT) sur Linux

Cette entrée fait partie d'une série de 14 sur 19 dans la série Les partitions de disque sur Windows et Linux : le dossier complet

mkfs (Makes File Systems) est la commande à utiliser en ligne de commandes depuis un terminal pour créer et formater un système de fichiers.

Elle vous permet donc de créer la structure de fichiers pour pouvoir ensuite stocker des fichiers sur votre partition de disque.
mkfs est capable de formater avec beaucoup de type de système de fichiers différents : ext4, ext3, BFS, MINIX, NTFS, vFAT, CRAMFS.
Par exemple formater une partition en ext4, ou en NTFS si vous êtes en Dual-boot Linux/Windows.
Enfin il est aussi possible de formater en FAT par exemple pour une clé USB.

Cet article vous donne la syntaxe et des extensions d’utilisation de mkfs pour formater et créer un système de fichiers (ext4, NTFS, FAT) sur Linux.

mkfs : formater et créer un système de fichiers (ext4, NTFS, FAT) sur Linux

Introduction aux systèmes de fichiers

Le système de fichiers est la structure qui permet de stocker des fichiers.
Le formatage est l’opération qui créé le système de fichiers sur une partition de disque.

Linux supporte beaucoup de système de fichiers comme ext4, JFS, ReiserFS, NTFS et FAT.
Ext4 est le système de fichiers par défaut de Linux.
NTFS et FAT sont des systèmes de fichiers de Microsoft et donc à destination de Windows.

la commande mkfs se décline en plusieurs sous-commandes que l’on peut utiliser pour formater le type de système de fichiers souhaités.

Plus d’explications sur les opérations de formatage de disque :

mkfs : formater et créer un système de fichiers (ext4, NTFS, FAT) sur Linux

Syntaxe et paramètres

La syntaxe est la suivante :

mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ]

Il existe de nombreux types de systèmes de fichiers et chacun présente ses propres avantages et inconvénients. Voici le type de système de fichiers le plus courant:

  • FAT*
  • NTFS
  • ext*
  • APFS
  • HFS*

Soit donc les paramètres suivants :

ParamètresDescription
-V (verbose)Produisez une sortie détaillée, y compris toutes les commandes spécifiques au système de fichiers qui sont exécutées. La spécification de cette option plusieurs fois empêche l’exécution de toute commande spécifique au système de fichiers. Ceci n’est vraiment utile que pour les tests
-t (type)Permet de choisir le type de système de fichiers
-V (version)Affiche la version de la commande mkfs
-h (help)Affiche de l’aide de la commande mkfs
Liste des paramètres de la commande mkfs

Ainsi, on utilise le paramètre -t pour spécifier le type de système de fichiers.
Mais mkfs se décline en sous-commandes qui ont leurs propres paramètres.
On trouve notamment :

mkfs  mkfs.bfs  mkfs.cramfs  mkfs.ext2  mkfs.ext3  mkfs.ext4  mkfs.ext4dev  
mkfs.minix  mkfs.msdos  mkfs.ntfs  mkfs.vfat

Par exemple, mkfs.ext3 permet de formater en ext3, mkfs.ntfs en NTFS, mkfs.vfat en FAT et ainsi de suite.
Les commandes pour formater en ext2, ext3 ou ext4 pointent vers la commande mke2fs que l’on peut aussi utiliser directement.

Voici la liste des paramètres de mkfs.ntfs.
Cela peut aller du formatage rapide, à la spécification des tailles de (clusters) blocs et secteurs.

Ci-dessous les paramètres de mkfs.ext4 avec notamment la taille des inodes et de bloc et clusters, etc.

Le formtage de disque en ligne de commandes avec mkfs nécessite des droits administrateur et root. Dans les commandes suivantes, il faut donc utiliser sudo ou se logguer en root.

Formater et créer un système de fichiers ext4

Pour formater une partition en ext4 en ligne de commandes avec mkfs, on utilise le paramètre -t.
Ainsi pour formater la partition sdb2 en ext4 :

mkfs -t ext4 /dev/sdb2

ou plus directement :

mkfs.ext4 /dev/sdb2

Voici la liste des principaux paramètres de la commande mkfs.ext4 :

ParamètresDescription
-bSpécifiez la taille des blocs en octets. Les valeurs de taille de bloc valides sont 1024, 2048 et 4096 octets par bloc
-CSpécifiez la taille du cluster en octets pour les systèmes de fichiers à l’aide de la fonctionnalité bigalloc. Les valeurs de taille de cluster valides vont de 2 048 à 256 Mo octets par cluster
-dCopiez le contenu du répertoire donné dans le répertoire racine du système de fichiers
-eModifiez le comportement du code du noyau lorsque des erreurs sont détectées
-EDéfinissez des options étendues pour le système de fichiers
-gSpécifie le nombre de blocs dans un groupe de blocs
-GSpécifiez le nombre de groupes de blocs qui seront regroupés pour créer un plus grand groupe de blocs virtuels (ou «groupe flex_bg») dans un système de fichiers ext4
-iSpécifiez le rapport octets / inode. mke2fs crée un inode pour chaque octet par octet d’espace sur le disque. Plus le rapport octets par inode est élevé, moins les inodes seront créés.
-lSpécifiez la taille de chaque inode en octets. La valeur de la taille de l’inode doit être une puissance de 2 supérieure ou égale à 128. Plus la taille de l’inode est grande, plus la table d’inode consommera d’espace, ce qui réduit l’espace utilisable dans le système de fichiers et peut également avoir un impact négatif sur les performances
-JCréez le journal ext3 à l’aide des options spécifiées sur la ligne de commande
-lLisez la liste des blocs défectueux à partir du nom de fichier
-LDéfinissez le nom de volume du système de fichiers sur new-volume-labe
-mSpécifiez le pourcentage de blocs du système de fichiers réservés au super-utilisateur
-MDéfinissez le dernier répertoire monté pour le système de fichiers
-NRemplace le calcul par défaut du nombre d’inœuds qui doivent être réservés pour le système de fichiers (qui est basé sur le nombre de blocs et le rapport octets par inode)
-oRemplace la valeur par défaut du champ “système d’exploitation créateur” du système de fichiers
-OCréez un système de fichiers avec les fonctionnalités données (options du système de fichiers), en remplaçant les options par défaut du système de fichiers
-rDéfinissez la révision du système de fichiers pour le nouveau système de fichiers
-tSpécifiez le type de système de fichiers (c’est-à-dire ext2, ext3, ext4, etc.) à créer
-tSpécifiez comment le système de fichiers va être utilisé, afin que mke2fs puisse choisir les paramètres de système de fichiers optimaux pour cette utilisation
-UDéfinissez l’identificateur unique universel (UUID) du système de fichiers sur UUID
Liste des paramètres de la commande mkfs.ext4
Bravo ! vous avez réussi à formater un disque en ext4 en ligne de commandes avec mkfs.

Formater et créer un système de fichiers NTFS

mkfs est compatible NTFS (New Technology File System) afin de pouvoir créer un système de fichiers compatible Linux et Windows.
Utile pour les clés USB, les partages SMB ou lorsque vous êtes en dual-boot.

On peut utiliser directement la commande mkfs avec l’option -t :

mkfs -t ntfs /dev/sdb2

Mais aussi la commande mkfs.ntfs, par exemple ici pour formater /dev/sdb2 en NTFS :

mkfs.ntfs /dev/sdb2

Pour un formatage rapide en NTFS, ce sera donc :

mkfs.ntfs -f /dev/sdc1

Celle-ci peut alors prendre les paramètres suivants.

ParamètresDescription
-fEffectuer un formatage rapide (rapide). Cela sautera à la fois la remise à zéro du volume et la vérification du secteur défectueux.
-lDéfinissez le nom de volume du système de fichiers. Le nom de volume du système de fichiers est défini sur string.
-CActivez la compression. Sur le volume la compression est activée sur le volume.
-nFait en sorte que mkntfs ne crée pas réellement un système de fichiers, mais affiche ce qu’il ferait s’il créait un système de fichiers. Toutes les étapes du formatage sont effectuées à l’exception de l’écriture proprement dite sur l’appareil.
Donc, mkntfs ne crée pas réellement le système de fichiers, mais affiche qu’il crée le travail sera effectué lorsqu’un système de fichiers. Exécutera toutes les étapes de formatage, mais ne sera pas réellement écrit sur le disque.
-UGénérer un UUID de volume aléatoire
Liste des paramètres de la commande mkfs.ntfs
Bravo ! vous avez réussi à formater un disque en NTFS en ligne de commandes avec mkfs.

Formater et créer un système de fichiers FAT

Enfin mkfs peut aussi formater en FAT (File Allocation Table), notamment pour les médias amovibles.

Voici la commande à utiliser :

mkfs -t vfat /dev/sdb2

Enfin comme les autres commandes, on peut aussi directement utiliser mkfs.vfat comme ceci :

mkfs.vfat /dev/sdb2

Voici la liste des paramètres possibles.

ParamètresDescription
-bSélectionne l’emplacement du secteur de démarrage de sauvegarde pour FAT32
-cVérifiez le périphérique pour les blocs défectueux avant de créer le système de fichiers
-DSpécifiez le numéro de lecteur BIOS à stocker dans le secteur de démarrage FAT
-fSpécifiez le nombre de tables d’allocation de fichiers dans le système de fichiers
-FSpécifie le type de tables d’allocation de fichiers utilisées (12, 16 ou 32 bits)
-hSélectionnez le nombre de secteurs cachés dans le volume
-iDéfinit l’ID de volume du système de fichiers nouvellement créé; VOLUME-ID
-lLisez la liste des blocs défectueux sur FILENAME
-MDéfinit le message que l’utilisateur reçoit lors des tentatives de démarrage de ce système de fichiers sans avoir correctement installé un système d’exploitation
-nSpécifiez le type de média à stocker dans le secteur de démarrage FAT
-rSélectionnez le nombre d’entrées disponibles dans le répertoire racine
-RSélectionnez le nombre de secteurs réservés. Avec le format FAT32, au moins 2 secteurs réservés sont nécessaires, la valeur par défaut est 32
-sSpécifiez le nombre de secteurs de disque par cluster. Doit être une puissance de 2
-SSpécifiez le nombre d’octets par secteur logique. Doit être une puissance de 2 et supérieure ou égale à 512, c’est-à-dire 512, 1024, 2048, 4096, 8192, 16384 ou 32768. Les valeurs supérieures à 4096 ne sont pas conformes à la spécification du système de fichiers FAT et peuvent ne pas fonctionner partout
Liste des paramètres de la commande mkfs.vfat
Bravo ! vous avez réussi à formater un disque en FAT en ligne de commandes avec mkfs.

Donner un nom de volume et monter la partition formatée

Une fois la partition de disque formatée, vous pouvez attribuer un nom au volume avec la commande e4lbabel comme ceci :

e4label /dev/sdb2 disk2

Puis on monte la partition de disque, par exemple pour monter /dev/sdb2 sur /mnt/disk2.
Cela rend alors les données accessibles.

mkdir /mnt/disk2
mount /dev/sdb2 //mnt/disk2

Enfin pour que le montage de disque se fasse au démarrage du PC et de Linux afin de le rendre permanent, il faut ajouter une ligne dans le fichier /etc/fstab.
Par exemple pour monter une partition ext4 :

/dev/sdb2   /mnt/disk2  ext4   defaults    0   0