Redimensionner une partition btrfs dans un volume LVM logique

13

Suivant l'astuce de derobert pour redimensionner le système de fichiers sous-jacent lors du redimensionnement d'un 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

Le "problème" est que l'outil fsadm ne prend pas en charge le redimensionnement de btrfs. Désireux, j'ai décidé de le faire à la dure (alias manuellement):

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

Eh bien, btrfs ne peut pas "accéder" à l'appareil, mais il peut le détecter:

> 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

Alors, qu'est-ce qui donne? Comment redimensionner ma partition btrfs à l'intérieur du volume logique?

Braiam
la source
1
fonctionne-t-il avec le point de montage au lieu du nom du périphérique?
frostschutz
1
oui, c'est censé être le chemin vers le montage btrfs (pas le chemin vers un périphérique bloc). En outre, vous devrez peut-être spécifier un devid (de btrfs fi show) si vous avez plus d'un périphérique dans le fs.
derobert
@frostschutz oui, c'est le cas. Curieuse.
Braiam

Réponses:

14

Eh bien, c'était gênant. BTRFS doit être monté pour pouvoir redimensionner la partition.

Comment redimensionner une partition? (rétrécir / grandir)

Afin de démontrer et de tester les références arrières, l'équipe de développement de Btrfs a ajouté un resizer en ligne, qui peut à la fois agrandir et réduire le système de fichiers via les commandes btrfs.

Tout d'abord, assurez-vous que votre système de fichiers est monté.

Donc, peu importe que j'utilise un volume LVM, tant qu'il est monté.

Braiam
la source
8

BTRFS prend le point de montage du système de fichiers en argument, pas un chemin de périphérique.

En d'autres termes, au lieu de cela:

btrfs filesystem resize max /dev/vg/lvhome

Vous devez utiliser le chemin réel où ledit volume a été monté:

btrfs filesystem resize max /home
sanmai
la source