Commande Linux btrfs

Linux 命令大全Référence des commandes Linux


Btrfs (B-tree File System) est un système de fichiers Linux avancé développé par Oracle et publié pour la première fois en 2007. Son objectif de conception est de résoudre les limitations des systèmes de fichiers traditionnels, en offrant une meilleure évolutivité, une meilleure fiabilité et de meilleures fonctionnalités de gestion.

Fonctionnalités principales

  • Copy-on-Write (CoW): toutes les opérations d'écriture n'écrasent pas les données existantes, mais créent de nouvelles copies
  • Fonctionnalité de snapshot: peut créer rapidement des instantanés du système de fichiers, tout en n'occupant presque aucun espace supplémentaire.
  • Gestion des sous-volumes: prend en charge la division du système de fichiers en plusieurs sous-volumes indépendants
  • Sommes de contrôle des données: détecte automatiquement la corruption des données
  • Compression transparente: prend en charge la compression et la décompression des données de fichiers en temps réel
  • Prise en charge RAID: prise en charge intégrée de plusieurs niveaux RAID

Syntaxe de base des commandes btrfs

btrfs [选项]  [子命令选项] [参数]

Options courantes

Option Description
-v Mode de sortie verbeux
--help Afficher les informations d'aide
--version Afficher les informations de version

Explication des principales sous-commandes

Création et gestion du système de fichiers

Créer un système de fichiers btrfs

Exemple

# Créer un système de fichiers btrfs sur un périphérique
sudo mkfs.btrfs /dev/sdX

# Créer un système de fichiers avec une étiquette
sudo mkfs.btrfs -L mylabel /dev/sdX

# Créer un RAID1 à l'aide de plusieurs périphériques
sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdX /dev/sdY

Monter un système de fichiers btrfs

Exemple

# Montage de base
sudo mount /dev/sdX /mnt/btrfs

# Activer la compression (lzo ou zstd recommandés)
sudo mount -o compress=lzo /dev/sdX /mnt/btrfs

# Afficher les options de montage
mount | grep btrfs

Opérations sur les sous-volumes

Créer un sous-volume

Exemple

# Créer un sous-volume
sudo btrfs subvolume create /mnt/btrfs/subvol1

# Lister les sous-volumes
sudo btrfs subvolume list /mnt/btrfs

# Supprimer un sous-volume
sudo btrfs subvolume delete /mnt/btrfs/subvol1

Gestion des instantanés

Exemple

# Créer un instantané
sudo btrfs subvolume snapshot /mnt/btrfs /mnt/btrfs/snapshot_$(date +%Y%m%d)

# Instantané en lecture seule
sudo btrfs subvolume snapshot -r /mnt/btrfs /mnt/btrfs/readonly_snap

# Supprimer un instantané
sudo btrfs subvolume delete /mnt/btrfs/snapshot_20230101

Gestion de l'espace

Afficher l'utilisation du système de fichiers

Exemple

# Afficher les informations détaillées sur l'espace
sudo btrfs filesystem usage /mnt/btrfs

# Afficher l'utilisation du disque
sudo btrfs filesystem df /mnt/btrfs

# Équilibrer la répartition des données (à utiliser avec prudence, peut être long)
sudo btrfs balance start /mnt/btrfs

Redimensionner le système de fichiers

Exemple

# Étendre le système de fichiers
sudo btrfs filesystem resize +10G /mnt/btrfs

# Réduire le système de fichiers
sudo btrfs filesystem resize -5G /mnt/btrfs

Vérification de l'intégrité des données

Vérifier le système de fichiers

Exemple

# Vérification en lecture seule
sudo btrfs check /dev/sdX

# Tentative de réparation (à utiliser avec prudence)
sudo btrfs check --repair /dev/sdX

Nettoyage et réparation

Exemple

# Nettoyer l'espace libre
sudo btrfs filesystem defrag /mnt/btrfs

# Vérifier et réparer le système de fichiers
sudo btrfs scrub start /mnt/btrfs

# Afficher l'état de la réparation
sudo btrfs scrub status /mnt/btrfs

Exemples d'applications pratiques

Exemple 1 : Configuration d'un répertoire personnel btrfs avec compression

Exemple

# Créer une partition
sudo mkfs.btrfs -L home /dev/sdX

# Monter et activer la compression
sudo mount -o compress=zstd /dev/sdX /mnt/newhome

# Copier les données existantes
sudo rsync -avx /home/ /mnt/newhome/

# Mettre à jour fstab pour activer le montage automatique
echo "UUID=$(blkid -s UUID -o value /dev/sdX) /home btrfs defaults,compress=zstd 0 2" | sudo tee -a /etc/fstab

# Remonter
sudo umount /mnt/newhome
sudo mount -a

Exemple 2 : Instantanés réguliers et nettoyage

Exemple

#!/bin/bash
# Créer des instantanés quotidiens
SNAP_DIR="/mnt/btrfs/.snapshots"
mkdir -p "$SNAP_DIR"
sudo btrfs subvolume snapshot -r /mnt/btrfs "$SNAP_DIR/$(date +%Y%m%d)"

# Conserver les 7 derniers jours d'instantanés
find "$SNAP_DIR" -mindepth 1 -maxdepth 1 -type d -name "2*" | sort -r | tail -n +8 | xargs -r sudo btrfs subvolume delete

Résolution de problèmes courants

Problème 1 : Espace insuffisant mais df affiche de l'espace disponible

Exemple

# Vérifier l'espace occupé par les instantanés non supprimés
sudo btrfs subvolume list -s /mnt/btrfs

# Nettoyer les instantanés inutiles
sudo btrfs subvolume delete /mnt/btrfs/old_snapshot

Problème 2 : Opération d'équilibrage bloquée

Exemple

# Vérifier l'état de l'équilibrage
sudo btrfs balance status /mnt/btrfs

# Mettre en pause l'opération d'équilibrage
sudo btrfs balance pause /mnt/btrfs

# Reprendre l'opération d'équilibrage
sudo btrfs balance resume /mnt/btrfs

Problème 3 : Échec du montage

Exemple

# Vérifier le système de fichiers
sudo btrfs check /dev/sdX

# Tenter une réparation
sudo btrfs rescue zero-log /dev/sdX
sudo mount /dev/sdX /mnt/btrfs

Recommandations de bonnes pratiques

  1. Activer la compression: en particulier pour les données compressibles telles que le texte et les journaux

    # 推荐使用 zstd 压缩算法
    mount -o compress=zstd /dev/sdX /mnt/btrfs
  2. Créez régulièrement des instantanés: Créez manuellement des instantanés avant les opérations importantes

  3. Surveillez l'utilisation de l'espace: L'espace rapporté par btrfs diffère de celui des systèmes de fichiers traditionnels

  4. Évitez le remplissage à 100%: Conservez au moins 5-10% d'espace libre

  5. Utilisez balance avec prudence: Ne l'exécutez que lorsque c'est nécessaire, car cela peut être très chronophage

  6. Envisagez une configuration RAID: Utilisez RAID1 ou RAID10 pour les données importantes

  7. Effectuez régulièrement un scrub: Vérifiez l'intégrité des données

    # 每月执行一次数据检查
    sudo btrfs scrub start /mnt/btrfs

Grâce à cet article, vous devriez avoir maîtrisé les opérations de base et les méthodes de gestion du système de fichiers btrfs. Les fonctionnalités puissantes de btrfs en font un choix idéal pour les systèmes Linux modernes, particulièrement adapté aux scénarios nécessitant des fonctionnalités de stockage avancées.


Linux 命令大全Référence des commandes Linux

Autres extensions