Skip to content

Linux 7.3 corrige IDs de sistema de arquivos do Btrfs e a inicialização com grub2

Uma mudança do Btrfs no Linux 7.2-rc1 deixou os IDs de sistema de arquivos instáveis e quebrou a derivação de chaves do OpenConnect. A correção toca 10 arquivos.

Por Tech AI Wire Team

3 min de leitura

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

Em números

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 incorporou um conjunto de correções do Btrfs ao núcleo Linux 7.3. Duas delas desfazem mudanças que quebraram máquinas em funcionamento. Uma tornou instável o identificador que o Btrfs informa sobre si mesmo. A outra impediu que alguns computadores terminassem de iniciar.

O Btrfs é um sistema de arquivos embutido no Linux. É a escolha padrão no Fedora e no openSUSE. Uma regressão nele alcança, portanto, computadores comuns, e não apenas servidores. O pedido de incorporação veio do mantenedor do Btrfs, David Sterba, e leva a etiqueta for-7.3-rc3-tag. O Phoronix relata que as correções entram na versão candidata 7.3-rc4.

Por que o ID do sistema de arquivos deixou de ser estável

Todo sistema de arquivos montado informa um FSID, abreviação de identificador de sistema de arquivos. Os programas o leem para distinguir um sistema de arquivos de outro. O pedido de Sterba descreve o primeiro problema como "filesystem id stability on default configurations".

O Phoronix relata que a regressão chegou no Linux 7.2-rc1. A partir daí, o ID informado pelo Btrfs em uma instalação padrão podia mudar. O software que havia guardado o valor anterior passava a ler outro.

O pedido nomeia a vítima de forma direta: "openconnect key derivation". O OpenConnect é um cliente de código aberto para VPNs corporativas, e o NetworkManager traz o suporte a ele. O Phoronix liga a falha a esse suporte de VPN. Quando uma chave é derivada em parte de um valor que muda de repente, a chave deixa de corresponder.

Por que algumas máquinas pararam de iniciar

A segunda correção restaura a "/dev/root detection for initramfs-less boot systems with grub2", nas palavras de Sterba.

Um initramfs é um pequeno sistema de arquivos temporário. O núcleo o carrega no início da inicialização e o usa para encontrar o sistema de arquivos raiz real. A maioria das distribuições traz um. Algumas instalações dispensam esse passo para iniciar mais rápido ou manter a configuração simples.

Sem um initramfs, o núcleo precisa descobrir sozinho qual dispositivo contém a raiz. O Phoronix relata que essa detecção falhava em sistemas de arquivos raiz Btrfs iniciados pelo GRUB2. Uma máquina que não consegue identificar seu sistema de arquivos raiz não termina de ligar.

O que mais há no pedido

A mesclagem altera 10 arquivos, adiciona 96 linhas e remove 13. A mensagem de Sterba descreve o restante como correções comuns. Elas estão listadas abaixo, com uma nota em linguagem simples sobre a área que cada uma toca.

Área citada no pedidoO que essa parte do Btrfs faz
Extents comprimidos em linhaGuarda arquivos muito pequenos comprimidos dentro dos metadados
Ativação de zona no modo zonedDá suporte a discos que precisam ser escritos em zonas fixas
Validação de espaço dos chunk itemsConfere os registros que mapeiam os chunks de armazenamento
Remoção de itens verityLimpa os dados do fs-verity, que verificam o conteúdo dos arquivos
Reconstrução da árvore de espaço livreTrata erros durante a reconstrução do mapa de espaço livre
Reflink e perfuração de buracosCopia blocos por referência e libera faixas dentro de arquivos
Percurso de grupos de blocosProtege o percurso sobre grupos de blocos alocados
Mensagens de erroCorrige o texto da saída do registro do núcleo

Entre os arquivos alterados estão super.c, volumes.c, disk-io.c, inode.c, tree-checker.c, zoned.c e verity.c.

O que isso significa para os desenvolvedores

Trate um FSID como um valor que pode mudar. Se o seu código guarda um e espera que ele sobreviva a uma atualização do núcleo, essa suposição acabou de falhar em produção para usuários de VPN. Leia o identificador de novo a cada vez. Tenha um caminho pronto para o caso de ele diferir do que você salvou.

Se você cuida de máquinas com raiz Btrfs e sem initramfs sob o GRUB2, não implante o Linux 7.2 nelas. Espere um núcleo 7.3 que carregue este pedido, ou mantenha um initramfs como alternativa. O Ubuntu 26.10 traz um núcleo Linux 7.3 em pré-lançamento. Confira, por isso, qual versão candidata a sua imagem contém antes de confiar nela.

O primeiro erro traz uma lição mais ampla. Qualquer valor que o espaço de usuário possa ler é uma interface, mesmo que nenhum documento diga isso. Uma mudança do núcleo que desloque um desses valores vai quebrar software que ninguém pensou em testar.

Fontes

  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

Artigos relacionados