[Bug 2142196] Re: VG with missing PV will prevent installing
Olivier Gayot
2142196 at bugs.launchpad.net
Fri Apr 24 14:32:50 UTC 2026
** Changed in: subiquity
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to curtin.
https://bugs.launchpad.net/bugs/2142196
Title:
VG with missing PV will prevent installing
Status in curtin:
Fix Committed
Status in probert:
Fix Committed
Status in subiquity:
Fix Released
Bug description:
As seen in private reports, the installation of Ubuntu can fail if the
installer sees a VG with missing PVs. This can happen for multiple
reasons, but is most likely to happen in a SAN environment.
In such a situation, probert will add a PV called "[unknown]" for each
missing PV. We need to make sure that probert consumers exclude PVs
called '[unknown]" as they do not map to a valid block device.
```
Traceback (most recent call last):
File "subiquity/models/filesystem.py", line 1512, in process_probe_data
self._orig_config = storage_config.extract_storage_config(self._probe_data)[
File "curtin/storage_config.py", line 1372, in extract_storage_config
found_cfgs, found_errs = parser.parse()
File "curtin/storage_config.py", line 969, in parse
entry = self.lvm_volgroup_asdict(vg_name, vg_config)
File "curtin/storage_config.py", line 1040, in lvm_volgroup_asdict
blockdev_data = self.blockdev_data[pvol_bdev]
KeyError: None
```
Furthermore, debugging showed that curtin would also try to wipe
"[unknown]" volumes and fail if instructed to delete a VG that has
missing PVs.
```
Traceback (most recent call last):
File "curtin/block/clear_holders.py", line 148, in shutdown_lvm
block.quick_zero(pv, partitions=False)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "curtin/block/__init__.py", line 1194, in quick_zero
raise ValueError("%s: not an existing file or block device" % path)
ValueError: [unknown]: not an existing file or block device
```
How to reproduce
----------------
1. Spawn a VM with two disks, and create a VG out of them
$ kvm-test --install --iso /srv/iso/resolute-live-server-amd64.iso
--disk-count 2
Once possible, spawn a shell and run:
$ vgcreate test-vg /dev/vda /dev/vdb
$ lvcreate -L 5G -n test-lv test-vg
$ poweroff
2. Now boot the VM again with only one disk:
$ kvm-test --install --iso /srv/iso/resolute-live-server-amd64.iso
--disk-count 1 --reuse-target
Navigate to the storage screen (there will be no error dialog) but
the logs will show that the non-restricted block probing operation
failed:
block-discover:2030 block probing failed restricted=False
Traceback (most recent call last):
[...]
File "/snap/subiquity/7028/lib/python3.12/site-packages/curtin/storage_config.py", line 1040, in lvm_volgroup_asdict
blockdev_data = self.blockdev_data[pvol_bdev]
KeyError: None
The logs are not showing it but pvol_bdev was assigned to None
because of
pvol_bdev = self.lookup_devname(pvol) where pvol =
"[unknown]"
Workaround
----------
* Run $ vgdelete "${vg_with_missing_pvs}"
* Restart the installation
To manage notifications about this bug go to:
https://bugs.launchpad.net/curtin/+bug/2142196/+subscriptions
More information about the foundations-bugs
mailing list