Dear Maintainer,

I encountered this bug when I upgraded my system from buster to
bullseye, causing my system to be unable to boot without manual
intervention.  I also reproduced the bug in a fresh bullseye install.

When I originally installed buster I used guided partitioning with LVM,
which resulted in the lvm2 package being installed but not its
recommended thin-provisioning-tools.  While on buster I configured a
volume (/home) to have a cache pool following the steps in lvmcache(7).
The system booted with the cached volume available without
/usr/sbin/cache_check from thin-provisioning-tools.

After upgrading my system to bullseye and rebooting, my cached volume
could not be mounted at home and I was asked to enter the root password
for the emergency mode maintenance shell.  "lvconvert --splitcache
vg/cached_lv" would allow me to reboot with the now uncached volume
once again activated on boot.  Alternatively I could "lvchange -ay
vg/cached_lv" at the emergency mode root shell, which would produce the
error:

  /usr/sbin/cache_check: execvp failed: No such file or directory
  WARNING: Check is skipped, please install recommended missing binary
/usr/sbin/cache_check!

After manually activating the volume "systemctl default" would continue
booting normally.

I also encountered this bug on a fresh install of bullseye in a virtual
machine.

Steps to reproduce (demonstrated using two virtio drives):


* Requires two drives
* Install bullseye from debian-testing-amd64-netinst.iso from 2021-04-
12
* Guided partitioning with LVM, separate /home
* SSH and standard tasks


root@lvmtest:~# fdisk /dev/vdb # Create GPT partition table and
/dev/vdb1 as type Linux LVM

root@lvmtest:~# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created.
  
root@lvmtest:~# vgextend lvmtest-vg /dev/vdb1
  Volume group "lvmtest-vg" successfully extended

root@lvmtest:~# lvcreate -n cachehome -L 32g lvmtest-vg
  Logical volume "cachehome" created.

root@lvmtest:~# lvconvert --type cache --cachepool cachehome lvmtest-
vg/home
  WARNING: Converting lvmtest-vg/cachehome to cache pool's data volume
with metadata wiping.
  THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)
Do you really want to convert lvmtest-vg/cachehome? [y/n]: y
  Converted lvmtest-vg/cachehome to cache pool.
  Logical volume lvmtest-vg/home is now cached.

* Reboot will bring system into emergency mode because /home cannot be
mounted.

The lvm2 package was again installed by the bullseye debian-installer
because of the guided partitioning choice, but without its recommended
thin-provisioning-tools which contains /usr/sbin/cache_check.

I think that activating cached volumes on boot was working during
buster is related to this line from /usr/share/doc/lvm2/changelog.gz:
Version 2.02.178-rc1 - 24th May 2018
…
  Allow activation of pools when thin/cache_check tool is missing.

However this seems to be no longer the case on bullseye, at least
automatically at boot.

This may warrant a warning in the bullseye release notes as systems
using lvmcache on buster without thin-provisioning-tools installed will
not boot properly after upgrading to bullseye.


Thanks,

Jeremy McNaughton

Reply via email to