Redimensionar uma partição btrfs dentro de um volume LVM lógico

13

Seguindo o truque do derobert para redimensionar o sistema de arquivos subjacente ao redimensionar um volume LVM:

lvm> lvextend -r -l +100%FREE /dev/VolGroup00/lvolhome
fsck from util-linux 2.25.2
/sbin/fsck.btrfs: BTRFS file system.
  Size of logical volume VolGroup00/lvolhome changed from 3.04 GiB (777 extents) to 14.94 GiB (3824 extents).
  Logical volume lvolhome successfully resized
fsadm: Filesystem "btrfs" on device "/dev/mapper/VolGroup00-lvolhome" is not supported by this tool
  fsadm failed: 1

O "problema" é que a ferramenta fsadm não suporta o redimensionamento de btrfs. Desanimado, decidi fazê-lo da maneira mais difícil (aka manualmente):

sudo btrfs filesystem resize max /dev/mapper/VolGroup00-lvolhome
ERROR: can't access '/dev/mapper/VolGroup00-lvolhome'

Bem, o btrfs não pode "acessar" o dispositivo, mas pode detectá-lo:

> sudo btrfs filesystem show 
Label: none  uuid: 53330630-9670-4110-8f04-5a39bfa86478
    Total devices 1 FS bytes used 2.75GiB
    devid    1 size 3.04GiB used 3.03GiB path /dev/mapper/VolGroup00-lvolhome

Então, o que dá? Como redimensionar minha partição btrfs dentro do volume lógico?

Braiam
fonte
1
funciona com o ponto de montagem em vez do nome do dispositivo?
Frostschutz
1
sim, é suposto ser o caminho para a montagem btrfs (não o caminho para um dispositivo de bloco). Além disso, pode ser necessário especificar um devid (from btrfs fi show) se você tiver mais de um dispositivo no fs.
Derobert
@frostschutz sim, faz. Curioso.
Braiam

Respostas:

14

Bem, isso foi embaraçoso. O BTRFS precisa ser montado para poder redimensionar a partição.

Como redimensiono uma partição? (encolher / crescer)

Para demonstrar e testar as referências anteriores, a equipe de desenvolvimento do Btrfs adicionou um redimensionador online, que pode aumentar e diminuir o sistema de arquivos através dos comandos btrfs.

Primeiro, verifique se o seu sistema de arquivos está montado.

Portanto, não importa se eu estava usando um volume LVM, desde que ele estivesse montado.

Braiam
fonte
7

O BTRFS considera o ponto de montagem do sistema de arquivos como um argumento, não como um caminho do dispositivo.

Em outras palavras, em vez disso:

btrfs filesystem resize max /dev/vg/lvhome

Você deve usar o caminho real onde o volume mencionado foi montado:

btrfs filesystem resize max /home
sanmai
fonte