From aadf694f946ca4821fe2d9aa47eea67dcb270af9 Mon Sep 17 00:00:00 2001 From: Matej Matuska Date: Wed, 7 Dec 2022 21:50:48 +0100 Subject: [PATCH 52/63] Add leapp debug tools to initramfs Install a script with debug utilities to the Leapp upgrade dracut module. --- .../dracut/90sys-upgrade/leapp_debug_tools.sh | 38 +++++++++++++++++++ .../dracut/90sys-upgrade/module-setup.sh | 2 + 2 files changed, 40 insertions(+) create mode 100644 repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/leapp_debug_tools.sh diff --git a/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/leapp_debug_tools.sh b/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/leapp_debug_tools.sh new file mode 100644 index 00000000..91c228ce --- /dev/null +++ b/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/leapp_debug_tools.sh @@ -0,0 +1,38 @@ +# library containing some useful functions for debugging in initramfs + +# mounts the sysroot +leapp_dbg_mount() { + systemctl start sysroot.mount + mount -o remount,rw /sysroot +} + +# source programs from $NEWROOT, mount if not mounted +leapp_dbg_source() { + systemctl is-active sysroot.mount --quiet || { + echo "sysroot not mounted, mounting..."; + leapp_dbg_mount || return 1 + } + + for dir in /bin /sbin; do + export PATH="$PATH:${NEWROOT}$dir" + done + + export LD_LIBRARY_PATH=/sysroot/lib64 +} + +# chroot into $NEWROOT +leapp_dbg_chroot() { + systemctl is-active sysroot.mount --quiet || { + echo "sysroot not mounted, mounting..."; + leapp_dbg_mount || return 1 + } + + for dir in /sys /run /proc /dev /dev/pts; do + mount --bind $dir "$NEWROOT$dir" + done || { echo "Failed to mount some directories" || return 1 } + + chroot $NEWROOT sh -c "mount -a; /bin/bash" + for dir in /sys /run /proc /dev/pts /dev; do + umount $NEWROOT$dir + done +} diff --git a/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/module-setup.sh b/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/module-setup.sh index d38617db..a9cfffb4 100755 --- a/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/module-setup.sh +++ b/repos/system_upgrade/common/actors/commonleappdracutmodules/files/dracut/90sys-upgrade/module-setup.sh @@ -72,6 +72,8 @@ install() { inst_script "${_moddir}/initrd-system-upgrade-generator" \ "${generatordir}/initrd-system-upgrade-generator" + inst_script "${_moddir}/leapp_debug_tools.sh" "/bin/leapp_debug_tools.sh" + ## upgrade shell service #sysinit_wantsdir="${_initdir}${unitdir}/sysinit.target.wants" #mkdir -p "$sysinit_wantsdir" -- 2.39.0