Puede iniciar una verificación de todo el sistema de archivos activando un trabajo de limpieza del sistema de archivos. El trabajo de limpieza se ejecuta en segundo plano de forma predeterminada y analiza la integridad del sistema de archivos completo. Automáticamente intenta informar y reparar cualquier bloque defectuoso que encuentre en el camino. En lugar de pasar por toda la unidad de disco, el trabajo de limpieza trata solo con los datos que realmente están asignados. Según el espacio de disco asignado, esto es mucho más rápido que realizar un análisis de superficie completo del disco.
La limpieza implica leer todos los datos de todos los discos y verificar las sumas de verificación. Si algún valor no es correcto, los datos se pueden corregir leyendo una buena copia del bloque de otra unidad. El código de depuración también escanea al leer automáticamente. Se recomienda limpiar los sistemas de archivos de alto uso una vez a la semana y todos los demás sistemas de archivos una vez al mes.
La siguiente es una lista de los comandos de limpieza btrfs disponibles:
# btrfs scrub usage: btrfs scrub [command] [options] [path]|[device] btrfs scrub start [-BdqrRf] [-c ioprio_class -n ioprio_classdata] [path]|[device] Start a new scrub. If a scrub is already running, the new one fails. btrfs scrub cancel [path]|[device] Cancel a running scrub btrfs scrub resume [-BdqrR] [-c ioprio_class -n ioprio_classdata] [path]|[device] Resume previously canceled or interrupted scrub btrfs scrub status [-dR] [path]|[device] Show status of running or finished scrub verify checksums of data and metadata
Utilidad btrfs scrub:Ejemplos
Utilice el comando de inicio de limpieza btrfs para iniciar una limpieza en todos los dispositivos de un sistema de archivos o en un solo dispositivo. La sintaxis es la siguiente:
# btrfs scrub start [-BdqrR] [-c ioprio_class ...
Descripción de opciones:
Opción | Descripción |
---|---|
-B | No ejecute en segundo plano e imprima estadísticas cuando termine. |
-d | Imprime estadísticas separadas para cada dispositivo del sistema de archivos. Esta opción se usa junto con la opción -B. |
-q | Ejecutar en modo silencioso, omitiendo mensajes de error y estadísticas. |
-r | Ejecutar en modo de solo lectura, sin corregir ningún error. |
-R | Modo de impresión sin formato. Imprimir datos completos en lugar de resumen. |
-c clase_ioprio | Establecer la clase de prioridad de E/S (consulte la página del manual de ionice). |
-n ioprio_classdata | Establecer datos de clase de prioridad de E/S (consulte la página del manual de ionice). |
Iniciando limpieza btrfs
El siguiente ejemplo inicia una limpieza en el sistema de archivos Btrfs que está montado en /btrfs.
# btrfs scrub start /btrfs scrub started on /btrfs, fsid ba60ac96-1628-4656-b68b-c7327ff49179 (pid=11164)
Utilice el comando de estado de limpieza btrfs para obtener el estado de un trabajo de limpieza. Hay una opción disponible:
- -d – Imprimir estadísticas separadas para cada dispositivo del sistema de archivos.
A continuación se muestra un ejemplo de comando de estado de limpieza btrfs en un sistema de archivos saludable. En el caso de un sistema de archivos dañado, verá los errores corregidos en la salida.
# btrfs scrub status /btrfs scrub status for ba60ac96-1628-4656-b68b-c7327ff49179 scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02 total bytes scrubbed: 325.29MiB with 0 errors
Con la opción "-d" en el comando anterior, puede obtener un estado de nivel por dispositivo como se muestra en el siguiente ejemplo.
# btrfs scrub status /btrfs -d scrub status for ba60ac96-1628-4656-b68b-c7327ff49179 scrub device /dev/sda (id 1) history scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02 total bytes scrubbed: 325.29MiB with 0 errors
Cancelar/reanudar un trabajo de limpieza btrfs
También puede cancelar un trabajo de limpieza en ejecución. El progreso se guarda en el archivo de progreso de limpieza y puede reanudar la limpieza más tarde. Para cancelar una limpieza:
# btrfs scrub cancel /btrfs
Para reanudar un trabajo de limpieza cancelado o interrumpido:
# btrfs scrub resume /btrfs
El comando de reanudación de limpieza tiene las mismas opciones que el comando de inicio de limpieza. Btrfs almacena los últimos dos minutos, a intervalos de 30 segundos, de las generaciones de ID de raíz. Btrfs continúa rodando estas generaciones, incluso si no hay cambios en el sistema de archivos.
Si una limpieza no corrige los errores, puede usar la siguiente opción de montaje para retroceder a un árbol B bueno conocido, dado que el resto del árbol está disponible debido a la copia en escritura:
# mount –o recovery /dev/sda /btrfs