Comando Linux btrfs

Linux 命令大全Referencia completa de comandos Linux


Btrfs (B-tree File System) es un sistema de archivos Linux avanzado, desarrollado por Oracle y lanzado por primera vez en 2007. Su objetivo de diseño es resolver las limitaciones de los sistemas de archivos tradicionales, proporcionando mejor escalabilidad, fiabilidad y funciones de gestión.

Características principales

  • Copiar al escribir (CoW): todas las operaciones de escritura no sobrescriben los datos originales, sino que crean una nueva copia.
  • Función de instantánea: puede crear rápidamente instantáneas inmediatas del sistema de archivos, que apenas ocupan espacio adicional.
  • Gestión de subvolúmenes: admite dividir el sistema de archivos en múltiples subvolúmenes independientes.
  • Sumas de verificación de datos: detecta automáticamente la corrupción de datos.
  • Compresión transparente: admite compresión y descompresión en tiempo real de los datos de archivos.
  • Compatibilidad con RAID: compatibilidad integrada con múltiples niveles de RAID.

Sintaxis básica del comando btrfs

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

Opciones comunes

Opción Descripción
-v Modo de salida detallada
--help Muestra información de ayuda
--version Muestra información de versión

Explicación detallada de los subcomandos principales

Creación y gestión del sistema de archivos

Crear un sistema de archivos btrfs

Ejemplo

# Crear un sistema de archivos btrfs en el dispositivo
sudo mkfs.btrfs /dev/sdX

# Crear un sistema de archivos con etiqueta
sudo mkfs.btrfs -L mylabel /dev/sdX

# Crear RAID1 usando múltiples dispositivos
sudo mkfs.btrfs -m raid1 -d raid1 /dev/sdX /dev/sdY

Montar el sistema de archivos btrfs

Ejemplo

# Montaje básico
sudo mount /dev/sdX /mnt/btrfs

# Habilitar compresión (se recomienda lzo o zstd)
sudo mount -o compress=lzo /dev/sdX /mnt/btrfs

# Mostrar opciones de montaje
mount | grep btrfs

Operaciones de subvolumen

Crear subvolumen

Ejemplo

# Crear subvolumen
sudo btrfs subvolume create /mnt/btrfs/subvol1

# Listar subvolúmenes
sudo btrfs subvolume list /mnt/btrfs

# Eliminar subvolumen
sudo btrfs subvolume delete /mnt/btrfs/subvol1

Gestión de instantáneas

Ejemplo

# Crear instantánea
sudo btrfs subvolume snapshot /mnt/btrfs /mnt/btrfs/snapshot_$(date +%Y%m%d)

# Instantánea de solo lectura
sudo btrfs subvolume snapshot -r /mnt/btrfs /mnt/btrfs/readonly_snap

# Eliminar instantánea
sudo btrfs subvolume delete /mnt/btrfs/snapshot_20230101

Gestión de espacio

Ver el uso del sistema de archivos

Ejemplo

# Mostrar información detallada del espacio
sudo btrfs filesystem usage /mnt/btrfs

# Mostrar uso del disco
sudo btrfs filesystem df /mnt/btrfs

# Equilibrar la distribución de datos (usar con precaución, puede llevar tiempo)
sudo btrfs balance start /mnt/btrfs

Ajustar el tamaño del sistema de archivos

Ejemplo

# Ampliar el sistema de archivos
sudo btrfs filesystem resize +10G /mnt/btrfs

# Reducir el sistema de archivos
sudo btrfs filesystem resize -5G /mnt/btrfs

Verificación de integridad de datos

Comprobar el sistema de archivos

Ejemplo

# Verificación de solo lectura
sudo btrfs check /dev/sdX

# Intentar reparar (usar con precaución)
sudo btrfs check --repair /dev/sdX

Limpieza y reparación

Ejemplo

# Limpiar el espacio libre
sudo btrfs filesystem defrag /mnt/btrfs

# Verificar y reparar el sistema de archivos
sudo btrfs scrub start /mnt/btrfs

# Ver el estado de la reparación
sudo btrfs scrub status /mnt/btrfs

Ejemplos de aplicación práctica

Ejemplo 1: Configurar un directorio principal btrfs con compresión

Ejemplo

# Crear partición
sudo mkfs.btrfs -L home /dev/sdX

# Montar y habilitar compresión
sudo mount -o compress=zstd /dev/sdX /mnt/newhome

# Copiar datos existentes
sudo rsync -avx /home/ /mnt/newhome/

# Actualizar fstab para montaje automático
echo "UUID=$(blkid -s UUID -o value /dev/sdX) /home btrfs defaults,compress=zstd 0 2" | sudo tee -a /etc/fstab

# Volver a montar
sudo umount /mnt/newhome
sudo mount -a

Ejemplo 2: Instantáneas periódicas y limpieza

Ejemplo

#!/bin/bash
# Crear instantánea diaria
SNAP_DIR="/mnt/btrfs/.snapshots"
mkdir -p "$SNAP_DIR"
sudo btrfs subvolume snapshot -r /mnt/btrfs "$SNAP_DIR/$(date +%Y%m%d)"

# Conservar las instantáneas de los últimos 7 días
find "$SNAP_DIR" -mindepth 1 -maxdepth 1 -type d -name "2*" | sort -r | tail -n +8 | xargs -r sudo btrfs subvolume delete

Solución de problemas comunes

Problema 1: Espacio insuficiente pero df muestra espacio disponible

Ejemplo

# Verificar el espacio ocupado por instantáneas no eliminadas
sudo btrfs subvolume list -s /mnt/btrfs

# Limpiar instantáneas innecesarias
sudo btrfs subvolume delete /mnt/btrfs/old_snapshot

Problema 2: La operación de balance se queda bloqueada

Ejemplo

# Ver el estado del balance
sudo btrfs balance status /mnt/btrfs

# Pausar la operación de balance
sudo btrfs balance pause /mnt/btrfs

# Reanudar la operación de balance
sudo btrfs balance resume /mnt/btrfs

Problema 3: Fallo al montar

Ejemplo

# Verificar el sistema de archivos
sudo btrfs check /dev/sdX

# Intentar reparar
sudo btrfs rescue zero-log /dev/sdX
sudo mount /dev/sdX /mnt/btrfs

Recomendaciones de mejores prácticas

  1. Habilitar compresión: especialmente para datos comprimibles como texto, registros, etc.

    # 推荐使用 zstd 压缩算法
    mount -o compress=zstd /dev/sdX /mnt/btrfs
  2. Crear instantáneas periódicamente: crear instantáneas manualmente antes de operaciones importantes.

  3. Monitorear el uso del espacio: el informe de espacio de btrfs difiere de los sistemas de archivos tradicionales.

  4. Evitar llegar al 100% de capacidad: mantener al menos un 5-10% de espacio disponible.

  5. Usar balance con precaución: ejecutar solo cuando sea necesario, puede llevar mucho tiempo.

  6. Considerar la configuración RAID: usar RAID1 o RAID10 para datos importantes.

  7. Ejecutar scrub periódicamente: verificar la integridad de los datos.

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

A través de este artículo, debería haber dominado las operaciones básicas y los métodos de gestión del sistema de archivos btrfs. Las potentes funciones de btrfs lo convierten en una opción ideal para los sistemas Linux modernos, especialmente adecuado para escenarios que requieren funciones avanzadas de almacenamiento.


Linux 命令大全Referencia completa de comandos Linux

Otras extensiones