GNU/Linux >> Tutoriales Linux >  >> Linux

Linux BTRFS:convertir a sencillo con unidad fallida

Muy bien, lo descubrí con la ayuda de este enlace de Trello. En caso de que alguien más quiera hacer esto, este es el procedimiento.

Procedimiento

De una matriz RAID1 de dos discos, uno /dev/sda que está defectuoso y otro /dev/sdc bien conocido:

  1. Deshabilitar el montaje automático de esta matriz en /etc/fstab , reiniciar . Básicamente, queremos que btrfs olvide que esta matriz existe, ya que hay un error en el que aún intentará usar una de las unidades si está desconectada.
  2. Ahora que su matriz está desmontada, ejecute:

    echo 1 | sudo tee /sys/block/sda/device/delete

    reemplazando sda con el nombre del dispositivo defectuoso. Esto hace que el disco deje de girar (debe verificar esto en dmesg) y se vuelve inaccesible para el kernel.

    Alternativamente :¡simplemente saque la unidad de la computadora antes de arrancar! Elegí no optar por este método, ya que el anterior funciona bien para mí.

  3. Monta tu arreglo, con -o degraded modo.
  4. Comience una operación de reequilibrio con sudo btrfs balance start -f -mconvert=single -dconvert=single /mountpoint . Esto reorganizará las extensiones en el disco en buen estado, convirtiéndolas a single (no RAID). Esto tardará casi un día en completarse, según la velocidad de su unidad y el tamaño de su matriz. (el mío tenía ~700 GiB y se reequilibró a una velocidad de 1 fragmento de 1 GiB por minuto) Afortunadamente, esta operación se puede pausar y mantendrá la matriz en línea mientras ocurre.
  5. Una vez hecho esto, puede emitir sudo btrfs device remove missing /mountpoint para eliminar el dispositivo defectuoso 'faltante'.
  6. Comience un segundo reequilibrio con sudo btrfs balance start -mconvert=dup /mountpoint para restaurar la redundancia de metadatos. Esto toma unos minutos en mi sistema.
  7. ¡Has terminado! Su matriz ahora es single modo, con toda la redundancia eliminada.
  8. Lleva tu disco defectuoso afuera y golpéalo con un martillo.

Resolución de problemas

  • Ayuda, btrfs intentó escribir en mi disco defectuoso, se equivocó y lo forzó a solo lectura.
    • ¿Seguiste el paso 1 y reiniciaste antes de continuar? Es probable que btrfs todavía piense que la unidad que desactivaste está presente. Reiniciar hará que btrfs olvide cualquier error y le permitirá continuar.

Gracias por tu publicación. Tuve la idea de que podía probar la incursión, sacar la unidad de mi bahía de intercambio en caliente, usar otra unidad y luego volver a colocar la unidad de incursión. En retrospectiva, fue una mala idea y ahora necesito mi bahía de intercambio en caliente.

Esto es lo que encontré. Como root:

# sudo btrfs fi show
Label: 'disk'  uuid: 12817aeb-d303-4815-8bba-a3440e36c62c
Total devices 2 FS bytes used 803.10GiB
    devid    1 size 931.51GiB used 805.03GiB path /dev/sda1
    devid    2 size 931.51GiB used 805.03GiB path /dev/sdb1

Tenga en cuenta el devid enumerado para cada unidad. Man for brtrfs balance me llevó a la opción devid, tomó un par de intentos para descubrir cómo funcionaban los filtros (inicialmente intenté con devid=/dev/sdb1). Así que tu primer intento se verá así.

# btrfs balance start -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Lo que me dio un error.

ERROR: error during balancing '/media/.media': Invalid argument
There may be more info in syslog - try dmesg | tail    

Aquí está el error de dmesg:

BTRFS error (device sdb1): balance will reduce metadata integrity, use force if you want this

Así que esta es la final que funcionó:

# btrfs balance start -f -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Esperemos que esto ayude a alguien más.


Linux
  1. Convierta archivos de audio con este versátil comando de Linux

  2. Recupere su sistema con el modo de usuario único en Linux Mint / Linux Mint 12

  3. Cómo actualizar Kali Linux con un solo comando

  4. Swapon falló:argumento no válido en un sistema Linux con sistema de archivos Btrfs

  5. Arranque dual Windows + Linux con encriptación

Cree una unidad USB de arranque con Ventoy WebUI en Linux

Cómo convertir paquetes de Linux con Alien

Restablecer el escritorio de Linux a la configuración predeterminada con un solo comando

Cómo convertir un directorio en una partición en Linux

¿Pasar a Linux? Lleva tu Google Drive contigo

Convierta pestañas en espacios en la terminal de Linux con el comando Expandir