Package: gparted Version: 0.30.0-3 Severity: normal Tags: patch upstream Dear Maintainer,
== GParted fails to shrink an LVM2 PV reporting this # lvm pvresize -v --setphysicalvolumesize 786432K '/dev/sda9' 0 physical volume(s) resized / 1 physical volume(s) not resized Wiping internal VG cache Wiping cache of LVM-capable devices /dev/sda9: Requested size 712.00 MiB is less than real size 1.00 GiB. Proceed? [y/n]:[n] Physical Volume /dev/sda9 not resized. == Confirmed on Debian 10 Buster with these packages $ dpkg -l lvm2 gparted Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-================================= ii gparted 0.30.0-3 amd64 GNOME partition editor ii lvm2 2.02.176-4.1 amd64 Linux Logical Volume Manager == Relevant bug references Issue #1 - Can't shrink LVM partition due to pvresize prompt https://gitlab.gnome.org/GNOME/gparted/issues/1 Bug 1460577 - regression: lvm2 pvresize command suddenly became interactive, breaking automated usage https://bugzilla.redhat.com/show_bug.cgi?id=1460577 == Attached patch Attached is the upstream patch to workaround the change in pvresize. Patch applies to gparted >= 0.14.0. -- System Information: Debian Release: buster/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 4.16.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages gparted depends on: ii libatkmm-1.6-1v5 2.24.2-3 ii libc6 2.27-3 ii libgcc1 1:8.1.0-8 ii libglib2.0-0 2.56.1-2 ii libglibmm-2.4-1v5 2.56.0-2 ii libgtk2.0-0 2.24.32-1 ii libgtkmm-2.4-1v5 1:2.24.5-2 ii libpangomm-1.4-1v5 2.40.1-4 ii libparted-fs-resize0 3.2-21+b1 ii libparted2 3.2-21+b1 ii libsigc++-2.0-0v5 2.10.0-2 ii libstdc++6 8.1.0-8 ii libuuid1 2.32-0.1 gparted recommends no packages. Versions of packages gparted suggests: pn dmraid <none> ii dmsetup 2:1.02.145-4.1 ii dosfstools 4.1-2 pn gpart <none> ii jfsutils 1.1.15-3 pn kpartx <none> ii mtools 4.0.18-2+b1 ii ntfs-3g 1:2017.3.23-2 ii reiser4progs 1.2.0-2 ii reiserfsprogs 1:3.6.27-2 ii xfsprogs 4.15.1-1 ii yelp 3.28.1-1 -- no debconf information
>From 2f090b4a2b649c30c649d36b9919e1d4a4f65c07 Mon Sep 17 00:00:00 2001 From: Mike Fleetwood <mike.fleetw...@googlemail.com> Date: Mon, 11 Jun 2018 12:57:52 +0100 Subject: [PATCH] Fix LVM2 PV shrinking with lvm2 2.02.171 and later (#1) Shrinking an LVM2 Physical Volume on CentOS 7 with the latest lvm2 2.02.177 fails like this: Shrink /dev/sda9 from 1.00 GiB to 768.00 MiB * calibrate /dev/sda9 * check file system on /dev/sda9 for errors and (if possib...(SUCCESS) * shrink file system (ERROR) * lvm pvresize -v --setphysicalvolumesize 786432K '/dev/...(ERROR) 0 physical volume(s) resized / 1 physical volume(s) not resized Wiping internal VG cache Wiping cache of LVM-capable devices /dev/sda9: Requested size 712.00 MiB is less than real size 1.00 GiB. Proceed? [y/n]:[n] Physical Volume /dev/sda9 not resized. This upstream change to lvm2 [1] makes pvresize prompt for confirmation whenever the --setphysicalvolumesize option is used. (The change was included in lvm2 2.02.171 and later, which is used in recent distributions. The reporter found the issue on Ubuntu 18.04 LTS and I reproduced the issue on RHEL/CentOS 7.5). The set size option has to be used when shrinking the PV before shrinking the partition therefore fix this issue by adding lvm common option --yes when using the set size option. [1] https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=cbc69f8c693edf0d1307c9447e2e66d07a04bfe9 pvresize: Prompt when non-default size supplied. Closes #1 - Can't shrink LVM partition due to pvresize prompt --- src/lvm2_pv.cc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/lvm2_pv.cc b/src/lvm2_pv.cc index 15af3eb..5f7c7bb 100644 --- a/src/lvm2_pv.cc +++ b/src/lvm2_pv.cc @@ -102,7 +102,7 @@ bool lvm2_pv::resize( const Partition & partition_new, OperationDetail & operati { Glib::ustring size = "" ; if ( ! fill_partition ) - size = " --setphysicalvolumesize " + + size = " --yes --setphysicalvolumesize " + Utils::num_to_str( floor( Utils::sector_to_unit( partition_new .get_sector_length(), partition_new .sector_size, UNIT_KIB ) ) ) + "K " ; return ! execute_command( "lvm pvresize -v " + size + Glib::shell_quote( partition_new.get_path() ), -- 1.7.1