slackware-current/EFI/BOOT/osdetect.cfg
Patrick J Volkerding 76fc4757ac Slackware 14.1
Mon Nov  4 17:08:47 UTC 2013
Slackware 14.1 x86_64 stable is released!

It's been another interesting release cycle here at Slackware bringing
new features like support for UEFI machines, updated compilers and
development tools, the switch from MySQL to MariaDB, and many more
improvements throughout the system.  Thanks to the team, the upstream
developers, the dedicated Slackware community, and everyone else who
pitched in to help make this release a reality.

The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD.  Please consider supporting the Slackware
project by picking up a copy from store.slackware.com.  We're taking
pre-orders now, and offer a discount if you sign up for a subscription.

Have fun!  :-)
2018-05-31 22:57:36 +02:00

390 lines
10 KiB
INI

# Sample GRUB script to autodetect operating systems
#
# Copyright (C) 2010 Free Software Foundation, Inc.
# Copyright (C) 2011, 2012 Jordan Uggla
# Copyright (C) 2011, 2012 Adrian Gibanel
# Copyright (C) 2013 Niall Walsh
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
source "${prefix}/tools.cfg"
set saved_root=$root
function freebsd_ufs_variants {
set device=$1
set fstype=$2
set uuid=$3
menuentry "FreeBSD ($fstype $device)" $device $uuid {
set root=$2
set uuid=$3
kfreebsd /boot/kernel/kernel
set kFreeBSD.acpi_load=YES
set kFreeBSD.hint.acpi.0.disabled=0
set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
kfreebsd_loadenv /boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (single)" $device $uuid {
set root=$2
set uuid=$3
kfreebsd /boot/kernel/kernel -s
set kFreeBSD.acpi_load=YES
set kFreeBSD.hint.acpi.0.disabled=0
set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
kfreebsd_loadenv /boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (verbose)" $device $uuid {
set root=$2
set uuid=$3
kfreebsd /boot/kernel/kernel -v
set kFreeBSD.acpi_load=YES
set kFreeBSD.hint.acpi.0.disabled=0
set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
kfreebsd_loadenv /boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (no ACPI)" $device $uuid {
set root=$2
set uuid=$3
kfreebsd /boot/kernel/kernel -v
unset kFreeBSD.acpi_load
set kFreeBSD.hint.acpi.0.disabled=1
set kFreeBSD.loader.acpi_disabled_by_user=1
set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
kfreebsd_loadenv /boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (safe mode)" $device $uuid {
set root=$2
set uuid=$3
kfreebsd /boot/kernel/kernel -v
unset kFreeBSD.acpi_load
set kFreeBSD.hint.acpi.0.disabled=1
set kFreeBSD.loader.acpi_disabled_by_user=1
set kFreeBSD.hint.apic.0.disabled=1
set kFreeBSD.hw.ata.ata_dma=0
set kFreeBSD.hw.ata.atapi_dma=0
set kFreeBSD.hw.ata.wc=0
set kFreeBSD.hw.eisa_slots=0
set kFreeBSD.hint.kbdmux.0.disabled=1
set kFreeBSD.vfs.root.mountfrom=ufs:ufsid/$uuid
kfreebsd_loadenv /boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (Default boot loader)" $device $uuid {
set root=$2
kfreebsd /boot/loader
}
}
function freebsd_zfs_variants {
set device=$1
set fstype=zfs
menuentry "FreeBSD ($fstype $device)" $device {
set root=$2
kfreebsd /@/boot/kernel/kernel
set kFreeBSD.acpi_load=YES
set kFreeBSD.hint.acpi.0.disabled=0
kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /@/boot/kernel/zfs.ko
kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
probe -l -s name $root
set kFreeBSD.vfs.root.mountfrom=zfs:$name
kfreebsd_loadenv /@/boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (single)" $device {
set root=$2
kfreebsd /@/boot/kernel/kernel -s
set kFreeBSD.acpi_load=YES
set kFreeBSD.hint.acpi.0.disabled=0
kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /@/boot/kernel/zfs.ko
kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
probe -l -s name $root
set kFreeBSD.vfs.root.mountfrom=zfs:$name
kfreebsd_loadenv /@/boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (verbose)" $device {
set root=$2
kfreebsd /@/boot/kernel/kernel -v
set kFreeBSD.acpi_load=YES
set kFreeBSD.hint.acpi.0.disabled=0
kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /@/boot/kernel/zfs.ko
kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
probe -l -s name $root
set kFreeBSD.vfs.root.mountfrom=zfs:$name
kfreebsd_loadenv /@/boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (no ACPI)" $device {
set root=$2
kfreebsd /@/boot/kernel/kernel -v
unset kFreeBSD.acpi_load
set kFreeBSD.hint.acpi.0.disabled=1
set kFreeBSD.loader.acpi_disabled_by_user=1
kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /@/boot/kernel/zfs.ko
kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
probe -l -s name $root
set kFreeBSD.vfs.root.mountfrom=zfs:$name
kfreebsd_loadenv /@/boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (safe mode)" $device {
set root=$2
kfreebsd /@/boot/kernel/kernel -v
unset kFreeBSD.acpi_load
set kFreeBSD.hint.acpi.0.disabled=1
set kFreeBSD.loader.acpi_disabled_by_user=1
set kFreeBSD.hint.apic.0.disabled=1
set kFreeBSD.hw.ata.ata_dma=0
set kFreeBSD.hw.ata.atapi_dma=0
set kFreeBSD.hw.ata.wc=0
set kFreeBSD.hw.eisa_slots=0
set kFreeBSD.hint.kbdmux.0.disabled=1
kfreebsd_module_elf /@/boot/kernel/opensolaris.ko
kfreebsd_module_elf /@/boot/kernel/zfs.ko
kfreebsd_module /@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache
probe -l -s name $root
set kFreeBSD.vfs.root.mountfrom=zfs:$name
kfreebsd_loadenv /@/boot/device.hints
}
menuentry "FreeBSD ($fstype $device) (Default boot loader)" $device $uuid {
set root=$2
kfreebsd /@/boot/loader
}
}
function get_efis {
blockdev="$1"
blockfs="$2"
efis=""
if [ "$blockfs" = "fat" ]; then
for efi in ($blockdev)/efi/*/*.efi ($blockdev)/efi/*/*/*.efi \
($blockdev)/*.efi ($blockdev)/*/*.efi ; do
if [ -f "$efi" ] ; then
efis="$efis $efi"
fi
done
if [ -n "$efis" ]; then
return 0
fi
fi
return 1
}
insmod regexp
for dev in (*); do
# $device: parenthesis removed from $dev
regexp -s device '\((.*)\)' $dev
# Discard floppy and cdrom devices in search
# But search them if their search has been inforced
if searchindevice "$device" ; then
# $fstype: filesystem type identified
probe -s fstype -f $dev
# uuid: filesystem UUID
probe -s uuid -u $dev
if test -f ($device)/bootmgr -a -f ($device)/boot/bcd; then
menuentry "Windows Vista ($device)" $device {
set root=$2
chainloader +1
}
elif test -f ($device)/ntldr -a \
-e ($device)/ntdetect.com -a -f ($device)/boot.ini; then
menuentry "Windows NT/2000/XP ($device)" $device {
set root=$2
regexp -s devnum 'hd([0-9]+)' $root
if test "$devnum" != "0"; then
drivemap -s hd0 $root
fi
chainloader +1
}
elif test -f ($device)/windows/win.com; then
menuentry "Windows 98/ME ($device)" $device {
set root=$2
regexp -s devnum 'hd([0-9]+)' $root
if test "$devnum" != "0"; then
drivemap -s hd0 $root
fi
chainloader +1
}
elif test -f ($device)/io.sys -a -f ($device)/command.com; then
menuentry "MS-DOS ($device)" $device {
set root=$2
regexp -s devnum 'hd([0-9]+)' $root
if test "$devnum" != "0"; then
drivemap -s hd0 $root
fi
chainloader +1
}
elif test -f ($device)/kernel.sys; then
menuentry "FreeDOS ($device)" $device {
set root=$2
regexp -s type '([fh])d[0-9]+' $root
regexp -s devnum '[fh]d([0-9]+)' $root
if test $type = 'h' -a "$devnum" != "0"; then
drivemap -s hd0 $root
fi
chainloader +1
}
elif test "$fstype" = ufs1 -o "$fstype" = ufs2 -a \
-e ($device)/boot/kernel/kernel -a \
-e ($device)/boot/device.hints; then
freebsd_ufs_variants $device $fstype $uuid
elif test "$fstype" = zfs -a \
-e ($device)/@/boot/kernel/kernel -a \
-e ($device)/@/boot/device.hints; then
freebsd_zfs_variants $device
elif test "$fstype" = hfsplus -a -f ($device)/mach_kernel; then
menuentry "Mac OS X/Darwin" $device $uuid {
set root=$2
set uuid=$3
insmod vbe
do_resume=0
if [ /var/vm/sleepimage -nt10 / ]; then
if xnu_resume /var/vm/sleepimage; then
do_resume=1
fi
fi
if [ $do_resume = 1 ]; then
xnu_uuid $uuid uuid
if [ -f /Extra/DSDT.aml ]; then
acpi -e /Extra/DSDT.aml
fi
xnu_kernel /mach_kernel boot-uuid=${uuid} rd=*uuid
if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
xnu_mkext /System/Library/Extensions.mkext
else
xnu_mkext /System/Library/Extensions
fi
if [ -f /Extra/Extensions.mkext ]; then
xnu_mkext /Extra/Extensions.mkext
fi
if [ -d /Extra/Extensions ]; then
xnu_kextdir /Extra/Extensions
fi
if [ -f /Extra/devtree.txt ]; then
xnu_devtree /Extra/devtree.txt
fi
if [ -f /Extra/splash.jpg ]; then
insmod jpeg
xnu_splash /Extra/splash.jpg
fi
if [ -f /Extra/splash.png ]; then
insmod png
xnu_splash /Extra/splash.png
fi
if [ -f /Extra/splash.tga ]; then
insmod tga
xnu_splash /Extra/splash.tga
fi
fi
}
elif get_efis $device $fstype; then
for efi in $efis; do
menuentry "$efi" "$device" {
efi_device="$2"
efi="$1"
if [ "$grub_platform" = "efi" ]; then
root="$efi_device"
chainloader "$efi"
else
echo $"Sorry, but we are booted via BIOS and can not load this OS."
echo $"Please try booting SG2D via UEFI."
echo $"Press escape to return to the menu"
sleep --interruptible 9999
fi
}
done
else
set root=$device
for file in /boot/vmlinuz-* /boot/linux-*; do
if test -f $file; then
regexp -s version '/boot/vmlinuz-(.*)' $file
regexp -s version '/boot/linux-(.*)' $file
menuentry "Linux $file" $device $uuid $file $version {
set root=$2
set uuid=$3
set kernel=$4
set version=$5
linux $kernel root=UUID=$uuid ro
if test -f /boot/initrd-$version.img; then
initrd /boot/initrd-$version.img
elif test -f /boot/initrd.img-$version; then
initrd /boot/initrd.img-$version
elif test -f /boot/initrd-$version; then
initrd /boot/initrd-$version
elif test -f /boot/initrd.gz; then
initrd /boot/initrd.gz
fi
}
menuentry "Linux $file (single)" $device $uuid $file $version {
set root=$2
set uuid=$3
set kernel=$4
set version=$5
linux $kernel root=UUID=$uuid ro single
if test -f /boot/initrd-$version.img; then
initrd /boot/initrd-$version.img
elif test -f /boot/initrd.img-$version; then
initrd /boot/initrd.img-$version
elif test -f /boot/initrd-$version; then
initrd /boot/initrd-$version
elif test -f /boot/initrd.gz; then
initrd /boot/initrd.gz
fi
}
fi
done
fi
fi
done
set root=$saved_root