rss logo

Mon pense bêtes sur le système de fichiers Btrfs

Tux logo

Btrfs est un système de fichiers relativement récent qui offre un certain nombre de fonctionnalités parmis lesquelles la compression, les clichés instantanés, l'extension et la réduction des partitions à la volée et autres… Il est de plus en plus utilisé dans les distributions GNU/Linux. Je vais présenter ici les principales commandes à connaître ou que je juge utile lorsque l'on utilise ce système de fichiers.

Étendre une Partition

⚠️Afin d'éviter toute perte de données, veillez à sauvegarder vos données avant de commencer toute tâche de redimensionnement. Et assurez-vous de bien comprendre les commandes avant de les saisir.⚠️

  • Disons que l'on se trouve avec un disque configuré de la sorte :
Schéma de partition d'un disque BTRFS avec de l'espace libre
  • D'abord nous devons reconfigurer les frontières du disque, par exemple avec l'outil gdisk :
root@host:~# gdisk /dev/sda Command (? for help): d Partition number (1-3): 3 Command (? for help): n Partition number (3-128, default 3): 3 First sector (34-125829086, default = 3147776) or {+-}size{KMGTP}: 3147776 Last sector (3147776-125829086, default = 167772126) or {+-}size{KMGTP}: Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' 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/sda. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) The operation has completed successfully. root@host:~# partprobe
  • Étendre la taille du système de fichiers avec la taille maximum disponible :
root@host:~# btrfs filesystem resize max /
  • On peut aussi réduire ou étendre la parition avec une taille spécifique :
root@host:~# btrfs filesystem resize -1G /data/

Commandes

Scrub

  • Lancer une vérification du système de fichiers :
root@host:~# btrfs scrub start /
  • Afficher l'état ou le résultat de la vérification :
root@host:~# btrfs scrub status /

Subvolumes

  • Les sous-volumes permettent :
    • Isolation: Les sous-volumes peuvent être utilisés pour isoler différentes parties du système de fichiers
    • Snapshots: Les sous-volumes peuvent faire l'objet de clichés instantanés indépendant
    • Separate mount point: Les sous-volumes peuvent être montés indépendamment à différents points du système de fichiers
    • Quotas: Btrfs permet de définir des quotas sur les sous-volumes
  • Vue graphique des sous-volumes Btrfs :
Schéma de partition du disque montrant un cas d'utilisation des sous-volumes Btrfs
  • Créer un subvolume :
root@host:~# btrfs subvolume create /home/SUBV
  • Lister les sous-volumes :
root@host:~# btrfs subvolume list /
  • Monter un subvolume:
root@host:~# mount /dev/sda3 -o subvol=SUBV /home/SUBV/

Autres

  • Formater une partition avec le système de fichiers Btrfs :
root@host:~# mkfs.btrfs /dev/sdb1
  • Lancer une dégragmentation en ligne :
root@host:~# btrfs filesystem defragment -r -v /
  • Afficher des informations détaillées sur l'utilisation du système de fichiers :
root@host:~# btrfs filesystem usage /
  • Résumer de l'utilisation des fichiers sur le disque :
root@host:~# btrfs filesystem du /home/user/file
  • Afficher les informations sur l'espace utilisé pour un point de montage :
root@host:~# btrfs filesystem df /
  • Afficher les statistiques d'erreurs IO du périphérique :
root@host:~# btrfs dev stats /
  • Afficher les informations du disque (uuid, espace occupé etc…):
root@host:~# btrfs filesystem show /

Les clichés instantanés

  • Lister les instantanés présents dans le noeud root :
root@host:~# btrfs subvolume list /
  • Créer un cliché instantané en lecture seule dans le noeud root :
root@host:~# mkdir /.snapshots root@host:~# btrfs subvolume snapshot -r / /.snapshots/\@$(date +%Y.%m.%d)
  • Supprimer un cliché instantané :
root@host:~# btrfs subvolume delete /.snapshots/@2024.05.04/

Compression

  • Modifier le fichier /etc/fstab pour que chaque nouveau fichier d'une partition soit automatiquement pris en compte pour la compression :
UUID=4e39e49c-6934-41f5-97fd-cb7c699a78a5 / btrfs defaults,compress=zstd,subvol=@rootfs 0 0
  • Compresser les fichiers d'un dossier spécifique :
root@host:~# btrfs filesystem defragment -r -v -czstd /home/user/

Références

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

contact mail address