Files
ps5-linux-tools/m2_exec.sh
2026-05-02 20:09:25 +02:00

48 lines
984 B
Bash
Executable File

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
NVME_PART="/dev/nvme0n1p1"
MNT="/tmp/kexec_mnt"
ROOT_LABEL=$(blkid -s LABEL -o value "$NVME_PART")
if [ -z "$ROOT_LABEL" ]; then
echo "Error: Could not find label for $NVME_PART. Ensure the install script ran successfully."
exit 1
fi
echo "Mounting $NVME_PART ($ROOT_LABEL)..."
mkdir -p "$MNT"
mount -o ro "$NVME_PART" "$MNT"
VMLINUZ="$MNT/boot/vmlinuz"
INITRD="$MNT/boot/initrd.img"
if [[ ! -f "$VMLINUZ" ]]; then
VMLINUZ=$(ls -v $MNT/boot/vmlinuz* | tail -n 1)
INITRD=$(ls -v $MNT/boot/initrd.img* | tail -n 1)
fi
echo "kernel: $VMLINUZ"
echo "initrd: $INITRD"
CMDLINE=$(cat /proc/cmdline | \
sed -e 's/video=[^ ]*//g' \
-e "s|root=[^ ]*|root=LABEL=$ROOT_LABEL|g" | \
xargs)
echo "cmdline: $CMDLINE"
kexec -l "$VMLINUZ" \
--initrd="$INITRD" \
--append="$CMDLINE"
echo "Unmounting and executing..."
umount "$MNT"
systemctl kexec -i