From 01f74c75f5bf32374539df34d29364f180b81f53 Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Fri, 3 Mar 2023 07:31:20 +0000 Subject: [PATCH] zipl/dump: add dasd device to ngdump parmline For dasd devices, we need to enable the device before we can use it. Add the required dasd device to the kernel commandline when installing ngdump to a dasd device. Signed-off-by: Sven Schnelle Acked-by: Stefan Haberland Signed-off-by: Steffen Eiden --- zipl/dracut/zipl_helper.prepare-ngdump | 15 ++++++++++++++- zipl/initramfs-tools/zipl_helper.prepare-ngdump | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/zipl/dracut/zipl_helper.prepare-ngdump b/zipl/dracut/zipl_helper.prepare-ngdump index a69da1e6..728bd167 100755 --- a/zipl/dracut/zipl_helper.prepare-ngdump +++ b/zipl/dracut/zipl_helper.prepare-ngdump @@ -78,11 +78,24 @@ function create_initrd() [ $# -gt 1 ] || { echo "Usage: $0 " >&2; exit 1; } +dasd= device=$(readlink -f $1) dryrun=$2 type=$(lsblk -dno type "$device") [ "$type" != "part" ] && { echo "$device with type $type is not a partition." >&2; exit 1; } +case "${device##*/}" in + dasd*) + dasd=$(dasdview -i "$1"|sed -n 's/busid\s*:\s*\([0-9a-fA-F.]\)/dasd=\1/p') + ;; + nvme*) + ;; + *) + echo "Unsupported device $device." >&2 + exit 1 + ;; +esac + disk_path=$(create_dumpfs $device) kernel_version=$(get_kernel_version) kernel=$(get_kernel_image "$kernel_version") @@ -103,6 +116,6 @@ create_initrd "$disk_path" "$kernel_version" "$initrd" echo "kernel=$kernel" echo "initrd=$initrd" -echo "cmdline=reset_devices cgroup_disable=memory nokaslr numa=off irqpoll nr_cpus=1" +echo "cmdline=reset_devices cgroup_disable=memory nokaslr numa=off irqpoll nr_cpus=1 $dasd" exit 0 diff --git a/zipl/initramfs-tools/zipl_helper.prepare-ngdump b/zipl/initramfs-tools/zipl_helper.prepare-ngdump index cbcd2228..7d9a8570 100755 --- a/zipl/initramfs-tools/zipl_helper.prepare-ngdump +++ b/zipl/initramfs-tools/zipl_helper.prepare-ngdump @@ -55,10 +55,23 @@ function create_initrd() device=$(readlink -f $1) dryrun=$2 +dasd= type=$(lsblk -dno type "$device") [ "$type" != "part" ] && { echo "$device with type $type is not a partition." >&2; exit 1; } +case "${device##*/}" in + dasd*) + dasd=$(dasdview -i "$1"|sed -n 's/busid\s*:\s*\([0-9a-fA-F.]\)/dasd=\1/p') + ;; + nvme*) + ;; + *) + echo "Unsupported device $device." >&2 + exit 1 + ;; +esac + disk_path=$(create_dumpfs $device) kernel_version=$(get_kernel_version) kernel=$(get_kernel_image "$kernel_version") @@ -79,6 +92,6 @@ create_initrd "$disk_path" "$kernel_version" "$initrd" echo "kernel=$kernel" echo "initrd=$initrd" -echo "cmdline=reset_devices cgroup_disable=memory nokaslr numa=off irqpoll nr_cpus=1" +echo "cmdline=reset_devices cgroup_disable=memory nokaslr numa=off irqpoll nr_cpus=1 $dasd" exit 0