init-premount/sysconfig_hardware does not online all DASDs in primary VG - drops to busybox initramfs prompt

Bug #1673992 reported by Andrew McLeod
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
initramfs-tools
New
Undecided
Unassigned
s390-dasd (Ubuntu)
New
Undecided
Unassigned

Bug Description

Unsure if this is an initfs-tools issue, or s390-tools, or other?

Linux s4lpb 4.4.0-67-generic #88-Ubuntu SMP Wed Mar 8 16:39:07 UTC 2017 s390x s390x s390x GNU/Linux

Distributor ID: Ubuntu
Description: Ubuntu 16.04.2 LTS
Release: 16.04
Codename: xenial

ii busybox-initramfs 1:1.22.0-15ubuntu1
ii initramfs-tools 0.122ubuntu8.8
ii initramfs-tools-bin 0.122ubuntu8.8
ii initramfs-tools-core 0.122ubuntu8.8
ii libklibc 2.0.4-8ubuntu1.16.04.3
ii s390-tools 1.34.0-0ubuntu8.3

Brief description:

I have an s390x LPAR with multiple DASD disks in the 'system' VG - kernel param specifies root=/dev/mapper/system-root. After preseeding, and rebooting once, the system drops to BusyBox initramfs prompt, after errors:

Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... lvm
etad is not active yet, using direct activation during sysinit
Couldn't find device with uuid VudDPr-jSTm-ekaq-bWf7-xnVX-uFAd-lHUlfU.
Couldn't find device with uuid ySbAlW-I9M5-UV60-oHF3-uwAu-iXkH-H7zwPB.
Refusing activation of partial LV system/root. Use '--activationmode partial'
to override.
lvmetad is not active yet, using direct activation during sysinit
Couldn't find device with uuid VudDPr-jSTm-ekaq-bWf7-xnVX-uFAd-lHUlfU.
Couldn't find device with uuid ySbAlW-I9M5-UV60-oHF3-uwAu-iXkH-H7zwPB.
done.
Begin: Running /scripts/local-premount ... done.
Begin: Waiting for root file system ...
Begin: Running /scripts/local-block ... lvmetad is not active yet, using direc
t activation during sysinit
Couldn't find device with uuid VudDPr-jSTm-ekaq-bWf7-xnVX-uFAd-lHUlfU.
Couldn't find device with uuid ySbAlW-I9M5-UV60-oHF3-uwAu-iXkH-H7zwPB.

Running vgchange -ay at this point just causes the same error - the DASD disks still have not been brought online.

To replicate:

Create a volume group with 2 DASDS, e.g. /dev/dasda and /dev/dasdb.
Create a logical volume which you will mount as root, using slightly less space than is available on the first drive - then attempt to reboot a few times.

init-premount/sysconfig_hardware script brings the first disk in the VG online - then /scripts/local-top/lvm2 tries to online the LV/VG. This fails and causes the above error, as the DASD's have not been brought online by init-premount. If the VG only contains one root disk then the other/extra DASDS are brought online later which is fine, but in this situation to boot the system I need all the PVs in the root VG to be brought online by init-premount (or something else before the initfs lvm2 scripts).

The preseed uses d-i partman to create LVM on the primary disk. Other DASDs are added manually by a script using dasdfmt, fdasd, chzdev.

Validated workaround:

Create a script, e.g.

  /usr/share/initramfs-tools/scripts/init-premout/online_all_dasds

containing:

  echo 1 > /sys/bus/ccw/devices/${DASD_ID}/online

and then:

  update-initramfs -u

All DASDS in the system VG are brought online by initramfs, allowing the lvm2 scripts in initramfs to work - I can then reboot the LPAR successfully.

Tags: s390x uosci
Andrew McLeod (admcleod)
affects: initramfs-tools (Ubuntu) → s390-dasd (Ubuntu)
tags: added: s390x uosci
Andrew McLeod (admcleod)
description: updated
Andrew McLeod (admcleod)
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.