Skip to content

Linux 7.3 arregla los ID de sistema de archivos de Btrfs y el arranque con grub2

Un cambio de Btrfs en Linux 7.2-rc1 volvió inestables los ID de sistema de archivos y rompió la derivación de claves de OpenConnect. El arreglo toca 10 archivos.

Por Tech AI Wire Team

3 min de lectura

XLinkedIn
A terminal window on a Linux desktop showing btrfs filesystem show output, with a volume label, a UUID and three member devices.

En cifras

Btrfs files changed in the merged pull
10
lines added, against 13 removed
96
kernel where the ID regression appeared
7.2-rc1

Linus Torvalds ha incorporado un conjunto de arreglos de Btrfs al núcleo Linux 7.3. Dos de ellos deshacen cambios que rompieron máquinas en funcionamiento. Uno volvió inestable el identificador que Btrfs declara sobre sí mismo. El otro impidió que algunos equipos terminaran de arrancar.

Btrfs es un sistema de archivos integrado en Linux. Es la opción predeterminada en Fedora y en openSUSE. Una regresión aquí llega, por tanto, a equipos de escritorio corrientes y no solo a servidores. La solicitud de incorporación vino del responsable de Btrfs, David Sterba, y lleva la etiqueta for-7.3-rc3-tag. Phoronix informa de que los arreglos llegan en la versión candidata 7.3-rc4.

Por qué el ID del sistema de archivos dejó de ser estable

Todo sistema de archivos montado declara un FSID, abreviatura de identificador de sistema de archivos. Los programas lo leen para distinguir un sistema de archivos de otro. La solicitud de Sterba describe el primer problema como "filesystem id stability on default configurations".

Phoronix informa de que la regresión llegó en Linux 7.2-rc1. Desde ese punto, el ID que Btrfs declaraba en una instalación predeterminada podía cambiar. El software que había guardado el valor anterior leía después uno distinto.

La solicitud nombra a la víctima de forma directa: "openconnect key derivation". OpenConnect es un cliente de código abierto para VPN de empresa, y NetworkManager incluye su compatibilidad. Phoronix vincula la avería a esa compatibilidad con VPN. Cuando una clave se deriva en parte de un valor que cambia de repente, la clave ya no coincide.

Por qué algunas máquinas dejaron de arrancar

El segundo arreglo restaura la "/dev/root detection for initramfs-less boot systems with grub2", en palabras de Sterba.

Un initramfs es un pequeño sistema de archivos temporal. El núcleo lo carga al principio del arranque y lo usa para encontrar el sistema de archivos raíz real. La mayoría de las distribuciones incluyen uno. Algunas instalaciones prescinden de él para arrancar más rápido o mantener la configuración sencilla.

Sin initramfs, el núcleo debe averiguar por su cuenta qué dispositivo contiene la raíz. Phoronix informa de que esa detección fallaba en sistemas de archivos raíz Btrfs arrancados con GRUB2. Una máquina que no puede identificar su sistema de archivos raíz no termina de encenderse.

Qué más hay en la solicitud

La fusión cambia 10 archivos, añade 96 líneas y quita 13. El mensaje de Sterba describe el resto como arreglos habituales. Se enumeran abajo, con una nota en lenguaje llano sobre el área que toca cada uno.

Área citada en la solicitudQué hace esa parte de Btrfs
Extents comprimidos en líneaGuarda archivos muy pequeños comprimidos dentro de los metadatos
Activación de zona en modo zonedDa soporte a discos que deben escribirse en zonas fijas
Validación del espacio de chunk itemsComprueba los registros que mapean los chunks de almacenamiento
Eliminación de items verityLimpia los datos de fs-verity, que verifican el contenido de archivos
Reconstrucción del árbol de espacio libreGestiona errores mientras se rehace el mapa de espacio libre
Reflink y perforado de huecosCopia bloques por referencia y libera rangos dentro de archivos
Recorrido de grupos de bloquesProtege el recorrido sobre grupos de bloques asignados
Mensajes de errorCorrige la redacción de la salida del registro del núcleo

Entre los archivos modificados están super.c, volumes.c, disk-io.c, inode.c, tree-checker.c, zoned.c y verity.c.

Qué significa esto para los desarrolladores

Trate un FSID como un valor que puede cambiar. Si su código guarda uno y espera que sobreviva a una actualización del núcleo, esa suposición acaba de fallar en producción para usuarios de VPN. Lea el identificador de nuevo cada vez. Prepare una salida para el caso en que difiera del que guardó.

Si mantiene máquinas con raíz Btrfs y sin initramfs bajo GRUB2, no despliegue Linux 7.2 en ellas. Espere a un núcleo 7.3 que lleve esta solicitud, o conserve un initramfs como respaldo. Ubuntu 26.10 incluye un núcleo Linux 7.3 en preversión. Compruebe por eso qué versión candidata contiene su imagen antes de confiar en ella.

El primer fallo deja una lección más amplia. Cualquier valor que el espacio de usuario pueda leer es una interfaz, aunque ningún documento lo diga. Un cambio del núcleo que mueva uno de esos valores romperá software que nadie pensó en probar.

Fuentes

  1. Linux 7.3-rc4 To Address Two Unfortunate Bugs With Btrfs - Phoronix
  2. Merge tag 'for-7.3-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux - GitHub

Artículos relacionados