#!/bin/sh set -eu RECOVERY_DIR="/boot/bastionguard-recovery" LIVE_DIR="$RECOVERY_DIR/live" SQUASHFS="$LIVE_DIR/filesystem.squashfs" VMLINUZ="$RECOVERY_DIR/vmlinuz" INITRD="$RECOVERY_DIR/initrd.img" # Non generare nulla se i file recovery non esistono [ -f "$SQUASHFS" ] || exit 0 [ -f "$VMLINUZ" ] || exit 0 [ -f "$INITRD" ] || exit 0 find_uuid() { findmnt -n -o UUID "$1" 2>/dev/null || true } # Determina dove si trova davvero bastionguard-recovery if mountpoint -q /boot 2>/dev/null; then BOOT_UUID="$(find_uuid /boot)" ROOT_UUID="" VMLINUZ_REL="/bastionguard-recovery/vmlinuz" INITRD_REL="/bastionguard-recovery/initrd.img" LIVE_MEDIA_PATH="/bastionguard-recovery/live" else BOOT_UUID="" ROOT_UUID="$(find_uuid /)" VMLINUZ_REL="/boot/bastionguard-recovery/vmlinuz" INITRD_REL="/boot/bastionguard-recovery/initrd.img" LIVE_MEDIA_PATH="/boot/bastionguard-recovery/live" fi # Se non riusciamo a trovare nessun UUID, meglio non generare una entry rotta if [ -z "${BOOT_UUID}" ] && [ -z "${ROOT_UUID}" ]; then exit 0 fi if [ -n "${BOOT_UUID}" ]; then SEARCH_CMD="search --no-floppy --fs-uuid --set=root ${BOOT_UUID}" else SEARCH_CMD="search --no-floppy --fs-uuid --set=root ${ROOT_UUID}" fi COMMON_PARAMS="boot=live live-media-path=${LIVE_MEDIA_PATH} hostname=bastionguard-recovery username=root noeject noswap bastionguard.recovery=1 console=tty1" cat <