Systèmes de fichiers sous Linux : commandes pour gérer EXT4, XFS et BTRFS
Table des matières
Cet article récapitule quelques infos sur les systèmes de fichiers sous Linux.
Je vais traiter les systèmes de fichiers EXT4, XFS et BTRFS.
Cette page peut être aussi consultée en complément sur fstab : https://www.linuxtricks.fr/wiki/fstab-explications-sur-le-fichier-et-sa-structure
Pour créer le système de fichiers :
On peut utiliser les arguments -L pour préciser un LABEL et -U pour spécifier un UUID.
Pour voir les infos sur le système de fichiers, on va utiliser :
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On peut procéder de deux façons :
ou
On peut utiliser des options bien pratiques telles que :
-c => Lance une vérification des badblocks, et les isole (Opération longue)
-y => Répond OUI à toutes les questions
-f => Force la vérification même si le système est noté «propre»
-v => Mode verbeux, utile pour voir ce qui est effectué
Pour vérifier la partition racine, rendez-vous en fin d'article (vérifier le système de fichiers racine)
Pour agrandir le système de fichiers, on va utiliser :
Exemple :
Si on ne précise pas la taille, la place maximum sera prise. Ces opérations se font à à chaud (système de fichiers monté).
La réduction par contre se fait à froid (système de fichiers démonté). Il est nécessaire de faire une vérification avant.
Pour réduire :
Exemple :
Si on veut réduite au maximum le système de fichiers :
Il peut être utile sur de grosses partitions de défragmenter ses partitions, notamment sur les disques durs mécaniques.
Cela se fait via la commande e4defrag.
Pour changer le label du système de fichiers :
Pour changer le UUID du système de fichiers, il faut qu'il soit démonté et il faut un UUID valide.
Il est possible de générer un UUID aléatoire avec :
Ensuite :
Par défaut, 5% des blocs du système de fichiers sont réservés et ne peuvent être écrits. Ils sont réservés en "secours" et utilisables uniquement par root.
Si le système de fichier est grand (j'ai un disque de 1To) ça fait quand même 50Go, surtout si on stocke des données c'est pas utile.
Mettre à 0% c'est pas l'idéal, mais on peut mettre cette valeur à 1% via tune2fs :
D'abord, vous pouvez voir comment est réglé votre système de fichiers via :
Maximum mount count: XX => Nombre de montages avant vérification (-1 désactive l'option)
Check interval : XXX => Durée maximale entre 2 vérifications (en secondes), (0 désactive l'option)
Pour modifier ces valeurs, avec par exemple :
- 1 vérification tous les 50 montages :
- 1 vérification tous les 30 jours :
Pour créer le système de fichiers :
On peut utiliser les arguments -L pour préciser un LABEL et -U pour spécifier un UUID.
Pour voir les infos sur le système de fichiers, on va utiliser :
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On peut procéder ainsi :
Pour agrandir le système de fichiers, on va utiliser :
La TAILLE c'est en nombre de blocs (généralement 4ko, cf xfs_info)
Exemple pour agrandir à 15G :
Si on ne précise pas la taille, la place maximum sera prise. Ces opérations se font à à chaud (système de fichiers monté).
La réduction est impossible.
Il peut être utile sur de grosses partitions de défragmenter ses partitions, notamment sur les disques durs mécaniques.
Cela se fait via la commande xfs_fsr.
Pour changer le label du système de fichiers :
Pour changer le UUID du système de fichiers, il faut qu'il soit démonté et il faut un UUID valide.
Il est possible de générer un UUID aléatoire avec :
Ensuite :
Attention, dans cette partie, BTRFS est utilisé comme simple partition (usage stable depuis le noyau 4.14) et non ses fonctionnalités avancées (RAID, ...) qui ne sont pas encore notées comme stables.
Pour créer le système de fichiers :
On peut utiliser les arguments -L pour préciser un LABEL et -U pour spécifier un UUID.
Pour voir les infos sur le système de fichiers, on va utiliser :
Pour vérifier la taille occupée sur le système de fichiers, il est préférable d'utiliser :
ou de manière plus verbeuse :
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On peut procéder de deux façons :
BTRFS permet de vérifier le système de fichiers monté grâce à
Il est alors impossible de démonter le système de fichiers pendant le "scrub". Il est possible de voir où en est l'opération avec
Avec BTRFS, l'agrandissement et la réduction peut se faire à chaud.
Pour agrandir ou réduire le système de fichiers, on va utiliser :
La TAILLE c'est en Mega (M) ou Giga (G)
Exemple pour agrandir à 15G :
Une taille est nécessaire. Elle peut être précédée de + ou - (ainsi c'est une taille ajoutée ou retirée). Exemple pour agrandir de 1G de plus :
Pour agrandir à la taille maximale on utilise max :
Il peut être utile sur de grosses partitions de défragmenter ses partitions, notamment sur les disques durs mécaniques.
Cela se fait via la commande btrfs filesystem defragment.
Il est possible de compresser les données pour gagner de l'espace sur le disque. On utilise l'option -c à btrfs filesystem defragment suivi de l'algorithme de compression. Exemple :
Pour compresser de manière automatique on ajoutera compress=lzo ou compress=zstd aux options dans le fichier fstab.
Dans le cas de zstd, on peut spécifier la "puissance" de compresson de 1 (faible) à 15 (forte). Dans fstab, exemple pour 15 : compress=zstd:15
Pour changer le label du système de fichiers on utilise :
Si le système de fichiers est démonté, on utilise le nom du device :
Pour changer le UUID du système de fichiers, il faut qu'il soit démonté et il faut un UUID valide.
Il est possible de générer un UUID aléatoire avec :
Ensuite :
Le système de fichiers racine ( / ) ne peut être démonté, donc comment le vérifier au démarrage du système ?
Cette manipulation ne fonctionne pas que pour la partition racine, mais en fonction du dernier chiffre de la ligne correspondant à la partition dans le fichier fstab. Seule la partition dont ce dernier chiffre vaut 1 est vérifiée en premier, suivi de celles qui ont le chiffre 2.
Il suffit de créer le fichier forcefsck à la racine :
Puis de redémarrer.
On peut vérifier que cela a bien fonctionné avec
Le fichier /forcefsck est détruit automatiquement après le reboot.
Il existe un service [email protected] que l'on va stimuler via un paramètre passé au noyau.
Ainsi, au démarrage, il faut éditer la ligne de démarrage de GRUB, qui commence par linux en ajoutant à la fin (attention au clavier qwerty) :
Attention au clavier en qwerty, si vous avez un clavier AZERTY, taper :
On continue le démarrage et les systèmes de fichiers sont vérifiés.
Parfois lors du démontage du système de fichiers, on a une erreur :
Pour diagnostiquer, on va utiliser la commande fuser en spécifiant le point de montage concerné :
Le processus en cause est le 3614.
On recherche le processus concerné :
La réponse de la console :
Ici c'est squid qui est en cause, mais dans votre cas adaptez.
Moi j'ai donc arrêté squid3 :
Puis démonté ma partition home avec succès
Puis faire ma vérification de système de fichiers.
Filesystem in UserSpacE (en français : « système de fichiers en espace utilisateur »), souvent abrégé FUSE, est un logiciel libre permettant à un utilisateur sans privilèges particuliers d'accéder à un système de fichiers sans qu'il soit nécessaire de modifier les sources du noyau.
De nombreux systèmes de fichiers "spéciaux" utilisent le concept comme NTFS.
Pour pouvoir gérer en lecture/écriture les partitions NTFS, il est nécessaire d'installer le paquet ntfs-3g (ou ntfs3g). Il est souvent installé par défaut.
Pour créer le système de fichiers :
On peut utiliser les arguments -Q pour faire un formatage rapide et -L pour préciser un LABEL.
On peut avoir des infos sur la partition NTFS avec
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On procède à la vérification et réparation via :
Pour agrandir ou réduire le système de fichiers, on va utiliser :
La TAILLE c'est en octets (ou suivi de l'unité)
Exemple pour agrandir à 40G :
Sous Linux, il n'est pas possible de défragmenter une partition NTFS.
Pour changer le label du système de fichiers :
Introduction
Cet article récapitule quelques infos sur les systèmes de fichiers sous Linux.
Je vais traiter les systèmes de fichiers EXT4, XFS et BTRFS.
Cette page peut être aussi consultée en complément sur fstab : https://www.linuxtricks.fr/wiki/fstab-explications-sur-le-fichier-et-sa-structure
EXT4
EXT4 Création
Pour créer le système de fichiers :
Code BASH :
mkfs.ext4 /dev/XXX
On peut utiliser les arguments -L pour préciser un LABEL et -U pour spécifier un UUID.
EXT4 Informations
Pour voir les infos sur le système de fichiers, on va utiliser :
Code BASH :
tune2fs -l /dev/XXX
EXT4 Vérifier et réparer
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On peut procéder de deux façons :
Code BASH :
e2fsck /dev/XXX
ou
Code BASH :
fsck.ext4 /dev/XXX
On peut utiliser des options bien pratiques telles que :
-c => Lance une vérification des badblocks, et les isole (Opération longue)
-y => Répond OUI à toutes les questions
-f => Force la vérification même si le système est noté «propre»
-v => Mode verbeux, utile pour voir ce qui est effectué
Pour vérifier la partition racine, rendez-vous en fin d'article (vérifier le système de fichiers racine)
EXT4 Agrandir et réduire
Pour agrandir le système de fichiers, on va utiliser :
Code BASH :
resize2fs /dev/XXX TAILLE
Exemple :
Code BASH :
resize2fs /dev/datavg/adrienlv 15G
Si on ne précise pas la taille, la place maximum sera prise. Ces opérations se font à à chaud (système de fichiers monté).
La réduction par contre se fait à froid (système de fichiers démonté). Il est nécessaire de faire une vérification avant.
Pour réduire :
Code BASH :
e2fsck -f /dev/XXX resize2fs /dev/XXX TAILLE
Exemple :
Code BASH :
e2fsck -f /dev/datavg/adrienlv resize2fs /dev/datavg/adrienlv 10G
Si on veut réduite au maximum le système de fichiers :
Code BASH :
e2fsck -f /dev/datavg/adrienlv resize2fs -M /dev/datavg/adrienlv
EXT4 Défragmenter
Il peut être utile sur de grosses partitions de défragmenter ses partitions, notamment sur les disques durs mécaniques.
Cela se fait via la commande e4defrag.
Code BASH :
e4defrag -v /dev/XXX
EXT4 Modifier le système de fichiers
EXT4 Changer le label
Pour changer le label du système de fichiers :
Code BASH :
tune2fs -L NEWLABEL /dev/XXX
EXT4 Changer le UUID
Pour changer le UUID du système de fichiers, il faut qu'il soit démonté et il faut un UUID valide.
Il est possible de générer un UUID aléatoire avec :
Code BASH :
uuidgen
Ensuite :
Code BASH :
tune2fs -U UUU-UUUU-UUUU.... /dev/XXX
EXT4 Changer le pourcentage de blocs réservés
Par défaut, 5% des blocs du système de fichiers sont réservés et ne peuvent être écrits. Ils sont réservés en "secours" et utilisables uniquement par root.
Si le système de fichier est grand (j'ai un disque de 1To) ça fait quand même 50Go, surtout si on stocke des données c'est pas utile.
Mettre à 0% c'est pas l'idéal, mais on peut mettre cette valeur à 1% via tune2fs :
Code BASH :
tune2fs -m 1 /dev/XXX
EXT4 Vérifier périodiquement les systèmes de fichiers
D'abord, vous pouvez voir comment est réglé votre système de fichiers via :
Code BASH :
tune2fs -l /dev/XXXX
Maximum mount count: XX => Nombre de montages avant vérification (-1 désactive l'option)
Check interval : XXX => Durée maximale entre 2 vérifications (en secondes), (0 désactive l'option)
Pour modifier ces valeurs, avec par exemple :
- 1 vérification tous les 50 montages :
Code BASH :
tune2fs -c 50 /dev/XXXX
- 1 vérification tous les 30 jours :
Code BASH :
tune2fs -i 30d /dev/XXXX
XFS
XFS Création
Pour créer le système de fichiers :
Code BASH :
mkfs.xfs /dev/XXX
On peut utiliser les arguments -L pour préciser un LABEL et -U pour spécifier un UUID.
XFS Informations
Pour voir les infos sur le système de fichiers, on va utiliser :
Code BASH :
xfs_info /dev/XXX
XFS Vérifier et réparer
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On peut procéder ainsi :
Code BASH :
xfs_repair /dev/XXX
XFS Agrandir et réduire
Pour agrandir le système de fichiers, on va utiliser :
Code BASH :
xfs_growfs -D TAILLE /dev/XXX
La TAILLE c'est en nombre de blocs (généralement 4ko, cf xfs_info)
Exemple pour agrandir à 15G :
Code BASH :
resize2fs -D 3662109 /dev/datavg/adrienlv
Si on ne précise pas la taille, la place maximum sera prise. Ces opérations se font à à chaud (système de fichiers monté).
La réduction est impossible.
XFS Défragmenter
Il peut être utile sur de grosses partitions de défragmenter ses partitions, notamment sur les disques durs mécaniques.
Cela se fait via la commande xfs_fsr.
Code BASH :
xfs_fsr -v /dev/XXX
XFS Modifier le système de fichiers
XFS Changer le label
Pour changer le label du système de fichiers :
Code BASH :
xfs_admin -L NEWLABEL /dev/XXX
XFS Changer le UUID
Pour changer le UUID du système de fichiers, il faut qu'il soit démonté et il faut un UUID valide.
Il est possible de générer un UUID aléatoire avec :
Code BASH :
uuidgen
Ensuite :
Code BASH :
xfs_admin -U UUU-UUUU-UUUU.... /dev/XXX
BTRFS
Attention, dans cette partie, BTRFS est utilisé comme simple partition (usage stable depuis le noyau 4.14) et non ses fonctionnalités avancées (RAID, ...) qui ne sont pas encore notées comme stables.
BTRFS Création
Pour créer le système de fichiers :
Code BASH :
mkfs.btrfs /dev/XXX
On peut utiliser les arguments -L pour préciser un LABEL et -U pour spécifier un UUID.
BTRFS Informations
Pour voir les infos sur le système de fichiers, on va utiliser :
Code BASH :
btrfs filesystem show /dev/XXX
Pour vérifier la taille occupée sur le système de fichiers, il est préférable d'utiliser :
Code BASH :
btrfs filesystem df /point/de/montage
ou de manière plus verbeuse :
Code BASH :
btrfs filesystem usage /point/de/montage
BTRFS Vérifier et réparer
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On peut procéder de deux façons :
Code BASH :
btrfs check --repair /dev/XXX
BTRFS permet de vérifier le système de fichiers monté grâce à
Code BASH :
btrfs scrub start /dev/XXX
Il est alors impossible de démonter le système de fichiers pendant le "scrub". Il est possible de voir où en est l'opération avec
Code BASH :
btrfs scrub status /dev/XXX
BTRFS Agrandir et réduire
Avec BTRFS, l'agrandissement et la réduction peut se faire à chaud.
Pour agrandir ou réduire le système de fichiers, on va utiliser :
Code BASH :
btrfs filesystem resize TAILLE /point/de/montage
La TAILLE c'est en Mega (M) ou Giga (G)
Exemple pour agrandir à 15G :
Code BASH :
btrfs filesystem resize 15G /datavg/adrienlv
Une taille est nécessaire. Elle peut être précédée de + ou - (ainsi c'est une taille ajoutée ou retirée). Exemple pour agrandir de 1G de plus :
Code BASH :
btrfs filesystem resize +1G /datavg/adrienlv
Pour agrandir à la taille maximale on utilise max :
Code BASH :
btrfs filesystem resize max /datavg/adrienlv
BTRFS Défragmenter
Il peut être utile sur de grosses partitions de défragmenter ses partitions, notamment sur les disques durs mécaniques.
Cela se fait via la commande btrfs filesystem defragment.
Code BASH :
btrfs filesystem defragment -rv /point/de/montage
BTRFS Compresser
Il est possible de compresser les données pour gagner de l'espace sur le disque. On utilise l'option -c à btrfs filesystem defragment suivi de l'algorithme de compression. Exemple :
Code BASH :
btrfs filesystem defragment -rv -clzo /point/de/montage
Pour compresser de manière automatique on ajoutera compress=lzo ou compress=zstd aux options dans le fichier fstab.
Dans le cas de zstd, on peut spécifier la "puissance" de compresson de 1 (faible) à 15 (forte). Dans fstab, exemple pour 15 : compress=zstd:15
BTRFS Modifier le système de fichiers
BTRFS Changer le label
Pour changer le label du système de fichiers on utilise :
Code BASH :
btrfs filesystem label /point/de/montage LABEL
Si le système de fichiers est démonté, on utilise le nom du device :
Code BASH :
btrfs filesystem label /dev/XXX LABEL
BTRFS Changer le UUID
Pour changer le UUID du système de fichiers, il faut qu'il soit démonté et il faut un UUID valide.
Il est possible de générer un UUID aléatoire avec :
Code BASH :
uuidgen
Ensuite :
Code BASH :
btrfstune -U UUU-UUUU-UUUU.... /dev/XXX
Infos diverses sur les systèmes de fichiers
Vérifier le système de fichiers au démarrage du système
Le système de fichiers racine ( / ) ne peut être démonté, donc comment le vérifier au démarrage du système ?
Cette manipulation ne fonctionne pas que pour la partition racine, mais en fonction du dernier chiffre de la ligne correspondant à la partition dans le fichier fstab. Seule la partition dont ce dernier chiffre vaut 1 est vérifiée en premier, suivi de celles qui ont le chiffre 2.
Pour un système d'initialisation autre que systemd
Il suffit de créer le fichier forcefsck à la racine :
Code BASH :
touch /forcefsck
Puis de redémarrer.
Code BASH :
reboot
On peut vérifier que cela a bien fonctionné avec
Code BASH :
tune2fs -l /dev/XXX | grep "Last checked"
Le fichier /forcefsck est détruit automatiquement après le reboot.
Pour un système d'initialisation systemd
Il existe un service [email protected] que l'on va stimuler via un paramètre passé au noyau.
Ainsi, au démarrage, il faut éditer la ligne de démarrage de GRUB, qui commence par linux en ajoutant à la fin (attention au clavier qwerty) :
Code BASH :
fsck.mode=force fsck.repair=yes
Attention au clavier en qwerty, si vous avez un clavier AZERTY, taper :
Code :
fsck:,ode=force fsck:repqir=yes
On continue le démarrage et les systèmes de fichiers sont vérifiés.
Comment démonter un système de fichiers occupé ?
Parfois lors du démontage du système de fichiers, on a une erreur :
Code BASH :
umount /home
Code TEXT :
démontage : /home : périphérique occupé. (Dans certains cas, des infos sur les processus l'utilisant sont récupérables par lsof(8) ou fuser(1))
Pour diagnostiquer, on va utiliser la commande fuser en spécifiant le point de montage concerné :
Code BASH :
fuser -m /home /home: 3614
Le processus en cause est le 3614.
On recherche le processus concerné :
Code BASH :
ps -ef | grep 3614
La réponse de la console :
Code TEXT :
proxy 3614 1 0 11:20 ? 00:00:00 /usr/sbin/squid3 -N -YC -f /etc/squid3/squid.conf proxy 3615 3614 0 11:20 ? 00:00:00 (unlinkd) root 3621 1963 0 11:21 pts/1 00:00:00 grep --color=auto 3614
Ici c'est squid qui est en cause, mais dans votre cas adaptez.
Moi j'ai donc arrêté squid3 :
Code BASH :
/etc/init.d/squid3 stop
Puis démonté ma partition home avec succès
Code BASH :
umount /home
Puis faire ma vérification de système de fichiers.
Code BASH :
fsck -f /dev/sda1
Les systèmes de fichiers FUSE
Filesystem in UserSpacE (en français : « système de fichiers en espace utilisateur »), souvent abrégé FUSE, est un logiciel libre permettant à un utilisateur sans privilèges particuliers d'accéder à un système de fichiers sans qu'il soit nécessaire de modifier les sources du noyau.
De nombreux systèmes de fichiers "spéciaux" utilisent le concept comme NTFS.
NTFS
Pour pouvoir gérer en lecture/écriture les partitions NTFS, il est nécessaire d'installer le paquet ntfs-3g (ou ntfs3g). Il est souvent installé par défaut.
NTFS Création
Pour créer le système de fichiers :
Code BASH :
mkfs.ntfs /dev/XXX
On peut utiliser les arguments -Q pour faire un formatage rapide et -L pour préciser un LABEL.
NTFS Infos
On peut avoir des infos sur la partition NTFS avec
Code BASH :
ntfsinfo -m /dev/XXX
NTFS Vérifier et réparer
Pour vérifier le système de fichiers et le réparer, il faut qu'il soit démonté.
On procède à la vérification et réparation via :
Code BASH :
ntfsfix /dev/XXX
NTFS Agrandir et réduire
Pour agrandir ou réduire le système de fichiers, on va utiliser :
Code BASH :
ntfsresize --size TAILLE /dev/XXXXX
La TAILLE c'est en octets (ou suivi de l'unité)
Exemple pour agrandir à 40G :
Code BASH :
ntfsresize --size 40G /dev/sdc1
NTFS Défragmenter
Sous Linux, il n'est pas possible de défragmenter une partition NTFS.
NTFS Changer le label
Pour changer le label du système de fichiers :
Code BASH :
ntfslabel /dev/XXX LABEL