summaryrefslogtreecommitdiff
path: root/source/a/lilo/liloconfig
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/lilo/liloconfig')
-rw-r--r--source/a/lilo/liloconfig236
1 files changed, 76 insertions, 160 deletions
diff --git a/source/a/lilo/liloconfig b/source/a/lilo/liloconfig
index f498da72..81ad2ca0 100644
--- a/source/a/lilo/liloconfig
+++ b/source/a/lilo/liloconfig
@@ -1,8 +1,8 @@
#!/bin/sh
#
-# Copyright 1994, 1998, 1999 Patrick Volkerding, Moorhead, Minnesota USA
+# Copyright 1994, 1998, 1999 Patrick Volkerding, Moorhead, Minnesota USA
# Copyright 2002, 2003 Slackware Linux, Inc, Concord, CA
-# Copyright 2007, 2008, 2011, 2013 Patrick Volkerding, Sebeka, Minnesota, USA
+# Copyright 2007, 2008, 2011, 2013, 2018 Patrick Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,9 +27,9 @@ CONSOLETYPE=standard
unset UTFVT
# Most of the time LILO is not used on UEFI machines (in fact, it is useless
-# unless the machine is running in legacy BIOS mode). So, we'll detect if
+# unless the machine is running in legacy BIOS mode). So, we'll detect if
# this is a machine running UEFI and suggest skipping LILO installation.
-# We'll still allow it if the user wants it, though. It won't hurt anything,
+# We'll still allow it if the user wants it, though. It won't hurt anything,
# and might be useful for booting in Legacy BIOS mode later.
if [ -d /sys/firmware/efi ]; then
dialog --title "UEFI FIRMWARE DETECTED" \
@@ -37,7 +37,7 @@ if [ -d /sys/firmware/efi ]; then
--menu \
"Since LILO (the traditional Linux Loader) does not work with machines \
running UEFI firmware (except in Legacy BIOS mode), you probably do not \
-need to install it. Instead, you'll need ELILO, which is a version of \
+need to install it. Instead, you'll need ELILO, which is a version of \
LILO designed to work with EFI/UEFI systems." \
12 70 2 \
"skip" "Skip installing LILO and proceed to ELILO installation" \
@@ -54,7 +54,7 @@ fi
# Set the OS root directory (called T_PX for some unknown reason).
# If an argument is given to this script and it is a directory, it
-# is taken to be the root directory. First though, we check for a
+# is taken to be the root directory. First though, we check for a
# directory named $T_PX, and that gets the first priority.
if [ ! -d "$T_PX" ]; then
if [ ! "$1" = "" ]; then
@@ -79,7 +79,7 @@ if [ ! -d "$T_PX" ]; then
fi
# If os-prober is availible, we will use it to filter out unbootable
-# FAT/NTFS partitions. If it is not availble, we'll use /bin/true
+# FAT/NTFS partitions. If it is not availble, we'll use /bin/true
# instead to avoid filtering.
if which os-prober > /dev/null ; then
OSPROBER=os-prober
@@ -100,7 +100,7 @@ if [ ! -r $T_PX/boot/boot_message.txt ]; then
Welcome to the LILO Boot Loader!
Please enter the name of the partition you would like to boot
-at the prompt below. The choices are:
+at the prompt below. The choices are:
EOF
fi
@@ -111,29 +111,8 @@ DEFAULT=" --default-item MBR "
# This is a different 'probe' than the function below.
PROBE() {
if [ -x /sbin/probe ]; then
- /sbin/probe -l
- elif fdisk -l | grep "Disk /dev/ide" 1> /dev/null 2> /dev/null ; then # no devfs yet
- for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \
- /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \
- /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \
- /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do
- fdisk -l $devs 2> /dev/null
- done
- elif fdisk -l | grep "Disk /dev/scsi" 1> /dev/null 2> /dev/null ; then # no devfs yet
- for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \
- /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \
- /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \
- /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do
- fdisk -l $devs 2> /dev/null
- done
- elif [ -z "`fdisk -l`" ]; then
- for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \
- /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \
- /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \
- /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do
- fdisk -l $devs 2> /dev/null
- done
- else # We got output without /dev/ide or /dev/scsi, so it can probably be trusted:
+ /sbin/probe -c
+ else # use fdisk directly:
fdisk -l 2> /dev/null | sed -e "s/Linux filesystem/Linux/g"
fi
}
@@ -143,7 +122,7 @@ ask_boot_splash() {
dialog --title "OPTIONAL SLACKWARE LOGO BOOT SCREEN" \
--yesno \
"Would you like to use a boot screen with the Slackware logo \
-against a black background? If you answer no here, the standard \
+against a black background? If you answer no here, the standard \
LILO menu will be used.\n\
" 7 65 2> $TMP/reply
RETVAL=$?
@@ -161,7 +140,7 @@ boot_bmp() {
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
-# be used. We don't specify it here, as there's just one column.
+# be used. We don't specify it here, as there's just one column.
bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
@@ -175,12 +154,12 @@ if cat /proc/devices | grep "29 fb" 1> /dev/null ; then
dialog --title "CONFIGURE LILO TO USE FRAME BUFFER CONSOLE?" \
--default-item standard \
--menu "Looking at /proc/devices, it seems your kernel has support for \
-the VESA frame buffer console. If we enable this in /etc/lilo.conf, it \
+the VESA frame buffer console. If we enable this in /etc/lilo.conf, it \
will allow more rows and columns of text on the screen and give you a cool \
-penguin logo at boot time. However, the frame buffer text console is \
-slower than a standard text console. In addition, not every video card \
+penguin logo at boot time. However, the frame buffer text console is \
+slower than a standard text console. In addition, not every video card \
or monitor supports all of these video modes, and some X drivers could be \
-confused by them. Would you like to use the frame buffer console, \
+confused by them. Would you like to use the frame buffer console, \
or the standard Linux console?" 0 0 0 \
"standard" "Use the standard Linux console (the safe choice)" \
"ask" "Ask about using VESA modes at boot; time out to standard" \
@@ -198,7 +177,7 @@ or the standard Linux console?" 0 0 0 \
exit
fi
# Frame buffer modes above 1024x768 look terrible except
-# on LCD panels, and 32 bit color is slow. Since we don't
+# on LCD panels, and 32 bit color is slow. Since we don't
# even need to run a framebuffer console to run framebuffer
# X anymore, these modes aren't of much real use.
# "1280x1024x256" "Frame buffer console, 1280x1024x256" \
@@ -262,23 +241,14 @@ ask_append() {
dialog --title "OPTIONAL LILO append=\"<kernel parameters>\" LINE" --inputbox \
"Some systems might require extra parameters to be passed to the kernel. \
If you needed to pass parameters to the kernel when you booted the Slackware \
-bootdisk, you'll probably want to enter the same ones here. Most \
-systems won't require any extra parameters. If you don't need any, just \
+bootdisk, you'll probably want to enter the same ones here. Most \
+systems won't require any extra parameters. If you don't need any, just \
hit ENTER to continue.\n\
" 12 72 2> $TMP/reply
RETVAL=$?
return $RETVAL
}
-ask_utf() {
- dialog --defaultno --title "USE UTF-8 TEXT CONSOLE?" --yesno \
-"Beginning with the 2.6.24 kernel, the text consoles default to UTF-8 mode. \
-Unless you are using a UTF-8 locale (\$LANG setting), using the old default \
-of a non-UTF text console is safer until some issues with various console \
-programs are addressed. This option has no effect on the use of UTF-8 with X. \
-\"No\" is the safe choice here." 10 70
-}
-
# This function scans for bootable partitions (making some assumptions along
# the way which may or may not be correct, but usually work), and sets up
# LILO in either the superblock, or the MBR.
@@ -292,87 +262,12 @@ simplelilo()
fi
APPEND="`cat $TMP/reply`"
- ask_utf;
- if [ $? = 1 -o $? = 255 ]; then
- UTFVT="vt.default_utf8=0"
- else
- UTFVT="vt.default_utf8=1"
- fi
-
- if PROBE -l | grep 'OS/2 Boot Manager' 1> /dev/null 2> /dev/null ; then
- dialog --title "OS/2 BOOT MANAGER FOUND" --yesno \
- "Your system appears to have Boot Manager, a boot menu system provided \
-with OS/2 and Partition Magic. If you like, we can install a very simple \
-LILO boot block at the start of your Linux partition. Then, you can \
-add the partition to the Boot Manager menu, and you'll be able to use \
-Boot Manager to boot Linux. Would you like to install LILO in a Boot \
-Manager compatible way?" 11 65
- FLAG=$?
- if [ ! $FLAG = 0 -a ! $FLAG = 1 ]; then
- exit 1
- fi
- if [ $FLAG = 0 ]; then # yes, use BM
- if [ -r $T_PX/etc/lilo.conf ]; then
- mv $T_PX/etc/lilo.conf $T_PX/etc/lilo.conf.orig
- fi
- cat << EOF > $T_PX/etc/lilo.conf
-# LILO configuration file
-# generated by 'liloconfig'
-#
-# Start LILO global section
-#
-EOF
- if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
- echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf
- echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf
- fi
- cat << EOF >> $T_PX/etc/lilo.conf
-boot = $ROOT_DEVICE
-#delay = 5
-#compact # faster, but won't work on all systems.
-EOF
- if [ $CONSOLETYPE = standard ]; then
- cat << EOF >> $T_PX/etc/lilo.conf
-# Normal VGA console
-vga = normal
-# Ask for video mode at boot (time out to normal in 30s)
-#vga = ask
-EOF
- elif [ $CONSOLETYPE = ask ]; then
- cat << EOF >> $T_PX/etc/lilo.conf
-# Ask for video mode at boot (time out to normal in 30s)
-vga = ask
-# Normal VGA console
-#vga = normal
-EOF
- else
- cat << EOF >> $T_PX/etc/lilo.conf
-# VESA framebuffer at $CONSOLETYPE
-vga = $CONSOLENUM
-# Ask for video mode at boot (time out to normal in 30s)
-#vga = ask
-# Normal VGA console
-#vga = normal
-EOF
- fi
- cat << EOF >> $T_PX/etc/lilo.conf
-# End LILO global section
-# Linux root partition section
-image = $KERNEL
- root = $ROOT_DEVICE
- label = Linux
- read-only
-# End root Linux partition section
-EOF
- installcolor;
- return
- fi # Use Boot Manager
- fi # Boot Manager detected
# If we got here, we either don't have boot manager or don't want to use it
+ # Note 3/2018: or OS/2 Boot Manager cruft was removed ;-)
dialog --title "SELECT LILO DESTINATION" $DEFAULT --menu \
"LILO can be installed to a variety of places:\n\
\n\
- 1. The superblock of your root Linux partition. (which could\n\
+ 1. The superblock of your root Linux partition. (which could\n\
be made the bootable partition with Windows or Linux fdisk, or\n\
booted with a program like OS/2 Boot Manager)\n\
2. A formatted floppy disk.\n\
@@ -391,6 +286,8 @@ Which option would you like?" \
fi
TG="`cat $TMP/reply`"
rm -r $TMP/reply
+ dialog --infobox "\nScanning partitions and generating /etc/lilo.conf..." 5 57
+ sleep 1
if [ "$TG" = "MBR" ]; then
MBR_TARGET=/dev/sda
echo $MBR_TARGET > $TMP/LILOMBR
@@ -410,6 +307,17 @@ Which option would you like?" \
elif [ "$MAJOR" = "34" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" ]; then
MBR_TARGET=/dev/hdg
echo $MBR_TARGET > $TMP/LILOMBR
+ elif [ "$MAJOR" = "259" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" -a ! "$MBR_TARGET" = "/dev/hdg" ]; then
+ if [ "$(echo $LINE | cut -f 4 -d ' ' | cut -b 1-4)" = "nvme" ]; then
+ MBR_TARGET="/dev/$(echo $LINE | cut -f 4 -d ' ' | cut -f 1 -d p)"
+ echo $MBR_TARGET > $TMP/LILOMBR
+ fi
+ fi
+ if dmidecode 2> /dev/null | grep -q QEMU 2> /dev/null ; then
+ if [ -r /dev/vda ]; then
+ MBR_TARGET=/dev/vda
+ echo $MBR_TARGET > $TMP/LILOMBR
+ fi
fi
fi
done
@@ -425,13 +333,17 @@ Which option would you like?" \
#
# Start LILO global section
EOF
- if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
+ #if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf
echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf
+ echo >> $T_PX/etc/lilo.conf
+ #fi
+
+ if echo $LILO_TARGET | grep -q vda 2>/dev/null ; then
+ echo "disk = /dev/vda bios=0x80 max-partitions=7" >> $T_PX/etc/lilo.conf
fi
cat << EOF >> $T_PX/etc/lilo.conf
boot = $LILO_TARGET
-
#compact # faster, but won't work on all systems.
# Boot BMP Image.
@@ -443,7 +355,7 @@ boot = $LILO_TARGET
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
-# be used. We don't specify it here, as there's just one column.
+# be used. We don't specify it here, as there's just one column.
bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
@@ -514,7 +426,7 @@ EOF
# OK, now let's look for Windows partitions:
# If we have os-prober, use the Windows partition list from that:
if which os-prober > /dev/null ; then
- DOSP="$(os-prober 2> /dev/null | grep Windows | cut -f 1 -d :)"
+ DOSP="$(os-prober 2> /dev/null | grep :Windows: | cut -f 1 -d :)"
else # use PROBE output:
DOSP="$(PROBE -l | grep "DOS
Win
@@ -636,7 +548,7 @@ checkbootsplash()
installcolor()
{
checkbootsplash;
- dialog --infobox "\nInstalling the Linux Loader..." 5 40
+ dialog --infobox "\nInstalling the Linux Loader..." 5 35
if [ "$T_PX" = "/" ]; then
lilo 1> /dev/null 2> /etc/lilo-error.$$
SUCCESS=$?
@@ -665,11 +577,11 @@ installcolor()
echo >> /etc/lilo-error.$$
cat << EOF >> /etc/lilo-error.$$
Sorry, but the attempt to install LILO has returned an error, so LILO \
-has not been correctly installed. You'll have to use a bootdisk \
+has not been correctly installed. You'll have to use a bootdisk \
to start your \
-machine instead. It should still be possible to get LILO working by \
-editing the /etc/lilo.conf and reinstalling LILO manually. See the \
-LILO man page and documentation in $LILODOCDIR for more help. \
+machine instead. It should still be possible to get LILO working by \
+editing the /etc/lilo.conf and reinstalling LILO manually. See the \
+LILO man page and documentation in $LILODOCDIR for more help. \
The error message may be seen above.
EOF
dialog --msgbox "$(cat /etc/lilo-error.$$)" 0 0
@@ -710,8 +622,8 @@ installtext()
LILO INSTALL ERROR # $SUCCESS
Sorry, but the attempt to install LILO has returned an error, so LILO
-has not been correctly installed. You'll have to use a bootdisk to
-start your machine instead. It should still be possible to get LILO
+has not been correctly installed. You'll have to use a bootdisk to
+start your machine instead. It should still be possible to get LILO
working by editing the /etc/lilo.conf and reinstalling LILO manually.
See the LILO man page and documentation in $LILODOCDIR for more
help.
@@ -770,8 +682,8 @@ fi
if mount | grep " on /mnt " | grep umsdos 1> /dev/null 2> /dev/null ; then
dialog --title "SKIP LILO CONFIGURATION? (RECOMMENDED)" --yesno "Since \
you are installing to a FAT partition, it's suggested that you do not \
-configure LILO at this time. (Instead, use your bootdisk. For booting \
-off the hard drive from MS-DOS, you can use Loadlin. You'll find \
+configure LILO at this time. (Instead, use your bootdisk. For booting \
+off the hard drive from MS-DOS, you can use Loadlin. You'll find \
Loadlin on your hard drive in \LINUX\ROOT) Skip LILO configuration \
(highly recommended)?" 10 70
if [ $? = 0 ]; then
@@ -781,13 +693,13 @@ Loadlin on your hard drive in \LINUX\ROOT) Skip LILO configuration \
fi
# OK, now let's see if we should automate things:
dialog --title "INSTALL LILO" --menu "LILO (Linux Loader) is a generic \
-boot loader. There's a simple installation which tries to automatically \
-set up LILO to boot Linux (also Windows if found). For \
+boot loader. There's a simple installation which tries to automatically \
+set up LILO to boot Linux (also Windows if found). For \
more advanced users, the expert option offers more control over the \
-installation process. Since LILO does not work in all cases (and can \
+installation process. Since LILO does not work in all cases (and can \
damage partitions if incorrectly installed), there's the third (safe) \
-option, which is to skip installing LILO for now. You can always install \
-it later with the 'liloconfig' command. Which option would you like?" \
+option, which is to skip installing LILO for now. You can always install \
+it later with the 'liloconfig' command. Which option would you like?" \
18 67 3 \
"simple" "Try to install LILO automatically" \
"expert" "Use expert lilo.conf setup menu" \
@@ -837,20 +749,20 @@ Which option would you like?" 21 73 8 \
else
APPEND="`cat $TMP/reply`"
fi
- ask_utf;
- if [ $? = 1 -o $? = 255 ]; then
- UTFVT="vt.default_utf8=0"
- else
- UTFVT="vt.default_utf8=1"
- fi
+ #ask_utf;
+ #if [ $? = 1 -o $? = 255 ]; then
+ # UTFVT="vt.default_utf8=0"
+ #else
+ # UTFVT="vt.default_utf8=1"
+ #fi
use_framebuffer;
dialog --title "SELECT LILO TARGET LOCATION" $DEFAULT --menu "LILO can be installed \
to a variety of places: \
the superblock of your root Linux partition (which could then be made the \
bootable partition with fdisk), a formatted floppy disk, \
-or the master boot record of your first hard drive. If you're using \
+or the master boot record of your first hard drive. If you're using \
a boot system such as Boot Manager, you should use the "Root" \
-selection. Please pick a target location:" 15 65 3 \
+selection. Please pick a target location:" 15 65 3 \
"Root" "Install to superblock (not for use with XFS)" \
"Floppy" "Use a formatted floppy disk in the boot drive" \
"MBR" "Use the Master Boot Record (possibly unsafe)" \
@@ -887,8 +799,8 @@ selection. Please pick a target location:" 15 65 3 \
done
LILO_TARGET=`cat $TMP/LILOMBR`
dialog --title "CONFIRM LOCATION TO INSTALL LILO" --inputbox \
-"The auto-detected location to install the LILO boot block is shown below. \
-If you need to make any changes, you can make them below. Otherwise, hit \
+"The auto-detected location to install the LILO boot block is shown below. \
+If you need to make any changes, you can make them below. Otherwise, hit \
ENTER to accept the target location shown." 11 60 $LILO_TARGET 2> $TMP/reply
if [ $? = 0 ]; then
LILO_TARGET="`cat $TMP/reply`"
@@ -903,7 +815,7 @@ ENTER to accept the target location shown." 11 60 $LILO_TARGET 2> $TMP/reply
continue;
fi
dialog --title "CHOOSE LILO TIMEOUT" --menu "At boot time, how long would \
-you like LILO to wait for you to select an operating system? If you \
+you like LILO to wait for you to select an operating system? If you \
let LILO time out, it will boot the first OS in the configuration file by \
default." 13 74 4 \
"None" "Don't wait at all - boot straight into the first OS" \
@@ -962,10 +874,10 @@ message = /boot/boot_message.txt
EOF
fi
- if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
+ #if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
echo "# Append any additional kernel parameters:" >> $TMP/lilo.conf
echo "append=\"$APPEND $UTFVT\"" >> $TMP/lilo.conf
- fi
+ #fi
cat << EOF >> $TMP/lilo.conf
$PROMPT
$TIMEOUT
@@ -1020,6 +932,8 @@ EOF
EOF
HDR="yes"
elif [ "$REPLY" = "Linux" ]; then
+ dialog --infobox "\nScanning for Linux partitions..." 5 37
+ sleep 1
if [ "$HDR" = "yes" ]; then
if [ "$ROOT_DEVICE" != "" ]; then
DEFROOT="--default-item $ROOT_DEVICE"
@@ -1131,9 +1045,11 @@ partitions unless you start over with a new LILO header." 6 60
fi
LNX="yes"
elif [ "$REPLY" = "Windows" ]; then
+ dialog --infobox "\nScanning for Windows partitions..." 5 39
+ sleep 1
if [ "$HDR" = "yes" ]; then
- echo "These are possibly Windows or DOS partitions. They will be treated" > $TMP/tmpmsg
- echo "as such if you install them using this menu." >> $TMP/tmpmsg
+ echo "These are possibly Windows partitions. They will be treated as" > $TMP/tmpmsg
+ echo "such if you install them using this menu." >> $TMP/tmpmsg
echo >> $TMP/tmpmsg
echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg
PROBE -l | grep "DOS
@@ -1141,7 +1057,7 @@ Win
W95
FAT12
FAT16
-HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort | grep "$($OSPROBER 2> /dev/null | grep Windows | cut -f 1 -d :)" >> $TMP/tmpmsg
+HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort | grep "$($OSPROBER 2> /dev/null | grep :Windows: | cut -f 1 -d :)" >> $TMP/tmpmsg
echo >> $TMP/tmpmsg
echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg
dialog --title "SELECT WINDOWS PARTITION" --no-collapse --inputbox \