[Bug 2142196] [NEW] VG with missing PV will prevent installing
Olivier Gayot
2142196 at bugs.launchpad.net
Thu Feb 19 08:05:17 UTC 2026
Public bug reported:
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.
Furthermore, debugging showed that curtin will try to wipe "[unknown]"
volumes and fail if instructed to delete a VG that has missing PVs.
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]"
** Affects: curtin
Importance: Medium
Assignee: Olivier Gayot (ogayot)
Status: In Progress
** Affects: probert
Importance: Medium
Assignee: Olivier Gayot (ogayot)
Status: In Progress
** Affects: subiquity
Importance: Undecided
Status: New
** Also affects: probert
Importance: Undecided
Status: New
** Also affects: curtin
Importance: Undecided
Status: New
** Changed in: probert
Assignee: (unassigned) => Olivier Gayot (ogayot)
** Changed in: probert
Importance: Undecided => Medium
** Changed in: probert
Status: New => In Progress
** Changed in: curtin
Status: New => In Progress
** Changed in: curtin
Importance: Undecided => Medium
** Changed in: curtin
Assignee: (unassigned) => Olivier Gayot (ogayot)
--
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:
In Progress
Status in probert:
In Progress
Status in subiquity:
New
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.
Furthermore, debugging showed that curtin will try to wipe "[unknown]"
volumes and fail if instructed to delete a VG that has missing PVs.
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]"
To manage notifications about this bug go to:
https://bugs.launchpad.net/curtin/+bug/2142196/+subscriptions
More information about the foundations-bugs
mailing list