summaryrefslogtreecommitdiff
path: root/configs/baseline/grub/loopback.cfg
blob: 149c87969ef67008d25ca0614ff87fcc3b8077f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# https://www.supergrubdisk.org/wiki/Loopback.cfg

# Search for the ISO volume
search --no-floppy --set=parabolaiso_img_dev --file "${iso_path}"
probe --set parabolaiso_img_dev_uuid --fs-uuid "${parabolaiso_img_dev}"

# Get a human readable platform identifier
if [ "${grub_platform}" == 'efi' ]; then
    parabolaiso_platform='UEFI'
    if [ "${grub_cpu}" == 'x86_64' ]; then
        parabolaiso_platform="x64 ${parabolaiso_platform}"
    elif [ "${grub_cpu}" == 'i386' ]; then
        parabolaiso_platform="IA32 ${parabolaiso_platform}"
    else
        parabolaiso_platform="${grub_cpu} ${parabolaiso_platform}"
    fi
elif [ "${grub_platform}" == 'pc' ]; then
    parabolaiso_platform='BIOS'
else
    parabolaiso_platform="${grub_cpu} ${grub_platform}"
fi

# Set default menu entry
default=parabola
timeout=15
timeout_style=menu


# Menu entries

menuentry "Parabola GNU/Linux-libre (%ARCH%, ${parabolaiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'parabola' {
    set gfxpayload=keep
    linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% img_dev=UUID=${parabolaiso_img_dev_uuid} img_loop="${iso_path}"
    initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img
}

if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
    menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
        set gfxpayload=800x600,1024x768
        linux /boot/memtest86+/memtest.efi
    }
fi
if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then
    menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
        set gfxpayload=800x600,1024x768
        linux /boot/memtest86+/memtest
    }
fi
if [ "${grub_platform}" == 'efi' ]; then
    if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then
        menuentry 'UEFI Shell' {
            chainloader /shellx64.efi
        }
    elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then
        menuentry 'UEFI Shell' {
            chainloader /shellia32.efi
        }
    fi

    menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
        fwsetup
    }
fi

menuentry 'System shutdown' --class shutdown --class poweroff {
    echo 'System shutting down...'
    halt
}

menuentry 'System restart' --class reboot --class restart {
    echo 'System rebooting...'
    reboot
}