curtin discovers HP /dev/cciss/c0d0 incorrectly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
curtin |
Fix Released
|
Medium
|
Unassigned | ||
curtin (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Trusty |
Fix Released
|
Medium
|
Unassigned | ||
Vivid |
Fix Released
|
Medium
|
Unassigned |
Bug Description
=== Begin SRU Template ===
[Description]
Installing to an HP DL385, or any other system that has drives in a "HP Smart Array" will fail, showing:
lsblk: /dev/cciss!c0d0: not a block device
This is due to curtin's fairly innocent understanding of device name paths.
The fix is both
- better parsing of /sys to get information on device names and partitions that are on them.
- specific handling of the very odd named '!ccis' devices.
[Impact]
Installation via curtin can not be done on these systems.
[Test Case]
Positive test case:
Install via maas and curtin onto a system with a HP Smart Array.
Successful installation and boot is success anything else is failure.
Negative test case:
Install on a sytem without these devices and expect it to boot.
[Regression Potential]
Curtin's understanding of /dev/ and /sys generally improved. However, there are possibly still corner cases.
It seems unlikely that anything that worked before would fail with these changes.
[Other]
Related bugs:
* bug 1401190 : curtin makes assumptions about partition names on all devices
=== End SRU Template ===
Trying the MaaS fast-installer against an HP DL385, it fails to run one of the scripts with:
lsblk: /dev/cciss!c0d0: not a block device
This looks to be due to the way the device is reported to lsblk:
lsblk --noheadings --bytes --pairs --out=ALIGNMENT
ALIGNMENT="0" DISC-ALN="0" DISC-GRAN="0" DISC-MAX="0" DISC-ZERO="0" FSTYPE="" GROUP="root" KNAME="cciss!c0d0" LABEL="" LOG-SEC="512" MAJ:MIN="104:0" MIN-IO="512" MODE="" MODEL="LOGICAL VOLUME " MOUNTPOINT="" NAME="cciss!c0d0" OPT-IO="0" OWNER="root" PHY-SEC="512" RM="0" RO="0" ROTA="1" RQ-SIZE="128" SIZE="440432713728" STATE="" TYPE="disk" UUID=""
ALIGNMENT="0" DISC-ALN="0" DISC-GRAN="0" DISC-MAX="0" DISC-ZERO="0" FSTYPE="" GROUP="cdrom" KNAME="sr0" LABEL="" LOG-SEC="512" MAJ:MIN="11:0" MIN-IO="512" MODE="brw-rw----" MODEL="CD-ROM TS-L162C" MOUNTPOINT="" NAME="sr0" OPT-IO="0" OWNER="root" PHY-SEC="512" RM="1" RO="0" ROTA="1" RQ-SIZE="128" SIZE="1073741312" STATE="running" TYPE="rom" UUID=""
ALIGNMENT="0" DISC-ALN="0" DISC-GRAN="0" DISC-MAX="0" DISC-ZERO="0" FSTYPE="ext4" GROUP="disk" KNAME="sda" LABEL="
The device name should be /dev/cciss/c0d0 so I guess the device name parsing needs special treatment for HP cciss devices.
Related bugs:
* bug 1401190 : curtin makes assumptions about partition names on all devices
Related branches
- Ubuntu branches: Pending requested
-
Diff: 91 lines (+17/-8)3 files modifiedcurtin/block/__init__.py (+8/-2)
curtin/commands/block_meta.py (+3/-0)
helpers/common (+6/-6)
tags: | added: canonical-bootstack |
tags: | added: cts |
description: | updated |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
After attempting to hack around the cciss!c0d0 problem I discovered another issue: The partition command/function appears to assume that a device, sda has partitions called sda1, sda2, etc. For HP cciss devices this isn't the case, c0d0's partitions are c0d0p1, c0d0p2, etc. (note the extra "p")