Mkfs
| Fiche express | |
|---|---|
| Domaine | Formatage de systèmes de fichiers |
| Commande | mkfs, mkfs.ext4, mkfs.xfs...
|
| Contexte | Créer un système de fichiers sur une partition ou un périphérique bloc |
| Destructif | Oui — efface toutes les données existantes sur la cible |
| Voir aussi | Fdisk (partitionnement préalable), Tune2fs (réglages ext après coup), Fstab (montage) |
mkfs ("make filesystem") crée un système de fichiers sur une partition ou un
périphérique bloc. C'est une commande générique qui délègue le vrai travail à un binaire
spécifique par type de système de fichiers (mkfs.ext4, mkfs.xfs,
mkfs.vfat...) — mkfs -t ext4 /dev/sdb1 et
mkfs.ext4 /dev/sdb1 sont strictement équivalents.
⚠️ Opération destructive et irréversible. Formater écrase l'intégralité des données du
périphérique ciblé, sans confirmation par défaut sur la plupart des variantes. Avant toute
exécution, vérifier systématiquement l'identité exacte de la cible avec lsblk
(voir l'arborescence des disques/partitions et confirmer la taille attendue) et
blkid (repérer un système de fichiers déjà présent, un UUID connu, un label —
un périphérique qui répond déjà à blkid contient probablement des données
utiles). Le partitionnement préalable se fait avec Fdisk (ou un outil équivalent) : mkfs
formate une partition ou un volume déjà créé, il ne le crée pas.
Utilisation de base
mkfs.ext4 /dev/sdb1 # formater en ext4 (usage général, journalisé)
mkfs.xfs /dev/sdb1 # formater en XFS (gros volumes, bonnes perfs en écriture parallèle)
mkfs.vfat /dev/sdb1 # formater en FAT32 (clé USB, interopérabilité)
mkfs -t ext4 /dev/sdb1 # forme générique équivalente à mkfs.ext4
Option -b : taille de bloc
-b fixe la taille de bloc du système de fichiers, exprimée directement en
octets — ce n'est pas un calcul à faire, on donne la valeur finale voulue (1024, 2048 ou
4096 la plupart du temps sur ext) :
mkfs.ext4 -b 4096 /dev/sdb1 # bloc de 4096 octets (défaut courant sur ext4, aligné sur la page mémoire x86_64)
mkfs.xfs -b size=4096 /dev/sdb1 # équivalent côté XFS, syntaxe clé=valeur
4096 octets est la taille par défaut sur la plupart des systèmes ext4 récents (elle correspond à la taille de page mémoire standard sur x86_64, ce qui optimise les accès), pas le résultat d'un doublement de 2048. Une taille de bloc plus petite (1024) réduit le gaspillage sur des partitions contenant beaucoup de petits fichiers mais augmente le nombre de blocs à gérer (métadonnées, fragmentation) ; une taille plus grande limite l'overhead sur de gros fichiers mais gaspille de l'espace pour les petits (chaque fichier occupe au minimum un bloc entier). ext4 limite en général le choix à 1024/2048/4096 selon l'architecture.
Option -m : réserve pour root (ext)
-m définit le pourcentage de blocs réservés à l'utilisateur root (ou plus
précisément non accessibles aux utilisateurs non-root) :
mkfs.ext4 -m 5 /dev/sdb1 # 5 % réservés à root (défaut historique ext2/3/4)
mkfs.ext4 -m 0 /dev/sdb1 # aucune réserve — tout l'espace disponible pour tous
Cette réserve sert historiquement à garantir que les processus système (et root) puissent
continuer à écrire (logs, sockets...) même quand une partition est pleine à 100 % du point de
vue des utilisateurs normaux. Le défaut de 5 % est pertinent sur / ou
/var, mais souvent excessif sur un gros volume de données dédié (backup,
médiathèque...) où -m 0 ou -m 1 évite de perdre des dizaines de Go
inutilement. La valeur peut aussi être ajustée après coup, sans reformater, avec
tune2fs -m.
Vérifier la cible avant de formater
lsblk # lister disques et partitions, tailles, points de montage actuels
blkid # voir le type de FS existant, UUID, label éventuels
blkid /dev/sdb1 # cibler un seul périphérique
Après le formatage
Une fois le système de fichiers créé, il reste à le monter (ponctuellement avec
mount, ou de façon persistante via Fstab), et éventuellement à ajuster ses
paramètres a posteriori (réserve root, label, comportement au montage) avec Tune2fs pour
ext2/3/4.