Failure to install 25.10 on multipath disk
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
curtin |
Fix Committed
|
High
|
Olivier Gayot | ||
subiquity |
Fix Released
|
High
|
Olivier Gayot |
Bug Description
I'm attempting to install Ubuntu server 25.10 on a multipath disk.
ProblemType: Bug
DistroRelease: Ubuntu 25.10
ProcVersionSign
Uname: Linux 6.15.0-4-generic x86_64
NonfreeKernelMo
ApportVersion: 2.33.1-0ubuntu1
Architecture: amd64
CasperMD5CheckR
CasperVersion: 25.04.1
CloudArchitecture: x86_64
CloudID: nocloud
CloudName: unknown
CloudPlatform: nocloud
CloudSubPlatform: seed-dir (/var/lib/
Date: Mon Aug 4 08:17:05 2025
LiveMediaBuild: Ubuntu-Server 25.10 "Questing Quokka" - Daily amd64 (20250728)
Lsusb: Error: command ['lsusb'] failed with exit code 1:
Lsusb-t:
Lsusb-v: Error: command ['lsusb', '-v'] failed with exit code 1:
MachineType: QEMU Ubuntu 25.04 PC (i440FX + PIIX, 1996)
ProcEnviron:
LANG=C.UTF-8
PATH=(custom, no user)
TERM=linux
ProcKernelCmdLine: BOOT_IMAGE=
Snap: subiquity 25.10-devel+
SnapChanges: no changes found
SnapConnections:
SnapSource: subiquity
SnapUpdated: False
SnapVersion: 6802 of snap /snap/subiquity
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/04/2025
dmi.bios.release: 0.0
dmi.bios.vendor: Ubuntu distribution of EDK II
dmi.bios.version: 2025.02-3ubuntu2
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.
dmi.modalias: dmi:bvnUbuntudi
dmi.product.name: Ubuntu 25.04 PC (i440FX + PIIX, 1996)
dmi.product.
dmi.sys.vendor: QEMU
Related branches
- Server Team CI bot: Needs Fixing (continuous-integration)
- Dan Bungert: Approve
-
Diff: 147 lines (+55/-30)2 files modifiedcurtin/block/__init__.py (+8/-8)
tests/unittests/test_block.py (+47/-22)
information type: | Private → Public |
Changed in subiquity: | |
assignee: | nobody → Olivier Gayot (ogayot) |
status: | New → In Progress |
importance: | Undecided → High |
Changed in curtin: | |
status: | New → In Progress |
Changed in subiquity: | |
status: | In Progress → New |
Changed in curtin: | |
assignee: | nobody → Olivier Gayot (ogayot) |
Changed in curtin: | |
importance: | Undecided → High |
Changed in subiquity: | |
status: | In Progress → Fix Committed |
Changed in subiquity: | |
status: | Fix Committed → Fix Released |
error from curtin.log ------- ------- kname=27- part1 block/27- part1'
-------
[...]
partition_
An error occured handling 'partition-1': OSError - devname '27-part1' did not have existing syspath '/sys/class/
[...]
Obviously, the "27-part1" identifier is wrong. mapper_ links(" /dev/dm- 0", first=True).
Looking at the code, it was generated in the partition_kname function by adding "-part1" to the return value of get_device_
Specifying the first=True argument instructs get_device_ mapper_ links(. ..) to return the first devlink found (after lexical sorting).
get_device_ mapper_ links(" /dev/dm- 0") returns
["/dev/ disk/by- diskseq/ 27", disk/by- id/dm-name- mpatha" , disk/by- id/dm-uuid- mpath-0QEMU_ QEMU_HARDDISK_ MPIO0", disk/by- id/scsi- 0QEMU_QEMU_ HARDSISK_ MPIO0", disk/by- id/wwn- 0xQEMU_ QEMU_HARDDISK_ MPIO0", mapper/ mpatha" ]
"/dev/
"/dev/
"/dev/
"/dev/
"/dev/
and out of these, only the following have a -part1 counterpart:
["/dev/ disk/by- id/dm-name- mpatha" , disk/by- id/scsi- 0QEMU_QEMU_ HARDSISK_ MPIO0", disk/by- id/wwn- 0xQEMU_ QEMU_HARDDISK_ MPIO0", mapper/ mpatha" ]
"/dev/
"/dev/
"/dev/
but with first=True, we get the first one (i.e., /dev/disk/ by-diskseq/ 27) which does not have a -part1 counterpart.
https:/ /github. com/canonical/ curtin/ blob/5fd4993b45 cda829b41b11732 37e36a8b405ba8d /curtin/ block/_ _init__ .py#L123- L135 /github. com/canonical/ curtin/ blob/5fd4993b45 cda829b41b11732 37e36a8b405ba8d /curtin/ commands/ block_meta. py#L1055- L1060
https:/