Cambiar el tamaño de una partición btrfs dentro de un volumen LVM lógico

13

Siguiendo el truco de derobert para cambiar el tamaño del sistema de archivos subyacente al redimensionar un volumen 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

El "problema" es que la herramienta fsadm no admite el cambio de tamaño de btrfs. Desanimado, decidí hacerlo de la manera difícil (también conocido como manualmente):

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

Bueno, btrfs no puede "acceder" al dispositivo, pero puede detectarlo:

> 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

Entonces, ¿qué da? ¿Cómo cambiar el tamaño de mi partición btrfs dentro del volumen lógico?

Braiam
fuente
1
¿Funciona con el punto de montaje en lugar del nombre del dispositivo?
frostschutz
1
sí, se supone que es la ruta al montaje btrfs (no la ruta a un dispositivo de bloque). Además, es posible que deba especificar un devid (from btrfs fi show) si tiene más de un dispositivo en el fs.
derobert
@frostschutz sí, lo hace. Curioso.
Braiam

Respuestas:

14

Bueno, eso fue vergonzoso. BTRFS necesita ser montado para poder cambiar el tamaño de la partición.

¿Cómo cambio el tamaño de una partición? (reducir / crecer)

Para demostrar y probar las referencias posteriores, el equipo de desarrollo de Btrfs ha agregado un redimensionador en línea, que puede aumentar y reducir el sistema de archivos a través de los comandos btrfs.

Primero, asegúrese de que su sistema de archivos esté montado.

Por lo tanto, no importa que estuviera usando un volumen LVM, siempre que estuviera montado.

Braiam
fuente
8

BTRFS toma el punto de montaje del sistema de archivos como argumento, no como una ruta de dispositivo.

En otras palabras, intead de esto:

btrfs filesystem resize max /dev/vg/lvhome

Debe usar la ruta real donde se montó dicho volumen:

btrfs filesystem resize max /home
sanmai
fuente