[UBUNTU 20.04] KVM guest fails to find zipl boot menu index
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu on IBM z Systems |
Fix Released
|
Medium
|
Skipper Bug Screeners | ||
qemu (Ubuntu) |
Fix Released
|
Medium
|
Canonical Server | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* When reading boot and boot-menu information from a block device (like a
passed through dasd) the bootloader can stumble over some data
structures due to mistakes in the code.
* The fix is to improve the bootloader code to no more fail in those
situations. The fixes are upstream for a while, small and well
reviewable
[Test Plan]
* The bad-case triggers when boot menu entries are in a given form. There
is this fix applied here to be able to handle those, but there are also
fixes to src:s390-tools to have zipl not write those hard-to-handle
entries. Due to that only zipl versions 2.12/2.13 (in the KVM guest)
should cause issues, and also then only in some combinations of
zipl.conf entries - finally it also could depend on the build toolchain
of the guest.
The best known case to reliable trigger it can feel a bit cubersome for
a Ubuntu user as it includes usage of a suse installation media
SLE-
bring the combinatino triggering this.
Based on the guest code, focal guests would be affected as well, but we
haven't found (nor searched) which zipl.conf we'd need to recreate it
there.
IBM will do the tests as they have doen when finding this issues as
they have the suse ISOs triggering this reliably.
See below for a ste by step test from the initial report.
[Where problems could occur]
* Issues would be s390x only and bootup-only which already is a very
narrow field one can easily look for in coming bug reports.
In that area the thing one can think of is e.g. special bootloader
configs (many entries, long entries, ...) that might now fail to be
handled correctly.
[Other Info]
* Suse iso can be downloaded (behind license - free trial - wall) from
https:/
----
---Problem Description---
A KVM guest fails to find the zipl boot menu index if the "zIPL" magic value is listed at the end of a disk block.
---System Hang---
System sits in disabled wait, last console display
LOADPARM=[ ]
Using virtio-blk.
Using ECKD scheme (block size 4096), CDL
VOLSER=[0X0067]
---Steps to Reproduce---
1. Install Distro KVM guest from ISO on a DASD, e.g. using virt-install, my invocation was
$ virt-install --name secguest2 --memory 2048 --disk path=/dev/
2. Select DHCP networking and ASCII console, and accept all defaults of the installer
3. Let the installer reboot after the installation completes
It is possible to recover by editing the domain XML with an explicit loadparm to select a boot menu entry. E.g. I changed the disk definition to
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/
<target dev='vda' bus='virtio'/>
<boot order='1' loadparm='1'/>
<address type='ccw' cssid='0xfe' ssid='0x0' devno='0xaf6a'/>
</disk>
The patches are now upstream:
5f97ba0c74cc ("pc-bios/s390-ccw: fix off-by-one error")
468184ec9024 ("pc-bios/s390-ccw: break loop if a null block number is reached")
Current versions of qemu within Ubuntu
focal (20.04LTS) 1:4.2-3ubuntu6 [ports]: arm64 armhf ppc64el s390x
focal-updates (metapackages): 1:4.2-3ubuntu6.14: amd64 arm64 armhf ppc64el s390x
groovy (20.10) (metapackages): 1:5.0-5ubuntu9 [ports]: arm64 armhf ppc64el s390x
groovy-updates (metapackages): 1:5.0-5ubuntu9.6: amd64 arm64 armhf ppc64el s390x
hirsute (metapackages): 1:5.2+dfsg-
git-commits will apply seamlessley for the requested levels if not already integrated
Related branches
- Utkarsh Gupta (community): Approve
- Sergio Durigan Junior (community): Needs Information
- Canonical Server: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 587 lines (+530/-0)8 files modifieddebian/changelog (+14/-0)
debian/patches/series (+5/-0)
debian/patches/ubuntu/lp-1887535-configure-replace-enable-disable-git-update-with-wit.patch (+277/-0)
debian/patches/ubuntu/lp-1921468-pc-bios-s390-ccw-break-loop-if-a-null-block-number-i.patch (+40/-0)
debian/patches/ubuntu/lp-1921468-pc-bios-s390-ccw-fix-off-by-one-error.patch (+41/-0)
debian/patches/ubuntu/lp-1921665-1-block-Require-aligned-image-size-to-avoid-assert.patch (+66/-0)
debian/patches/ubuntu/lp-1921665-2-file-posix-Allow-byte-aligned-O_DIRECT-with-NFS.patch (+86/-0)
debian/rules (+1/-0)
- Utkarsh Gupta (community): Approve
- Canonical Server: Pending requested
- Canonical Server packageset reviewers: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 586 lines (+529/-0)8 files modifieddebian/changelog (+14/-0)
debian/patches/series (+5/-0)
debian/patches/ubuntu/lp-1887535-configure-replace-enable-disable-git-update-with-wit.patch (+276/-0)
debian/patches/ubuntu/lp-1921468-pc-bios-s390-ccw-break-loop-if-a-null-block-number-i.patch (+40/-0)
debian/patches/ubuntu/lp-1921468-pc-bios-s390-ccw-fix-off-by-one-error.patch (+41/-0)
debian/patches/ubuntu/lp-1921665-1-block-Require-aligned-image-size-to-avoid-assert.patch (+66/-0)
debian/patches/ubuntu/lp-1921665-2-file-posix-Allow-byte-aligned-O_DIRECT-with-NFS.patch (+86/-0)
debian/rules (+1/-0)
tags: | added: architecture-s39064 bugnameltc-192200 severity-medium targetmilestone-inin20042 |
Changed in ubuntu: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
affects: | ubuntu → qemu (Ubuntu) |
no longer affects: | qemu |
Changed in ubuntu-z-systems: | |
assignee: | nobody → Skipper Bug Screeners (skipper-screen-team) |
Changed in qemu (Ubuntu): | |
assignee: | Skipper Bug Screeners (skipper-screen-team) → Canonical Server Team (canonical-server) |
Changed in ubuntu-z-systems: | |
importance: | Undecided → Medium |
Changed in qemu (Ubuntu): | |
importance: | Undecided → Medium |
description: | updated |
Changed in ubuntu-z-systems: | |
status: | New → Triaged |
description: | updated |
description: | updated |
Changed in ubuntu-z-systems: | |
status: | Triaged → Fix Committed |
Changed in ubuntu-z-systems: | |
status: | Fix Committed → Fix Released |
------- Comment From <email address hidden> 2021-03-26 04:38 EDT-------
Just to avoid any bad surprise, these patches require a rebuild of the bios image so the binary must also be updated.