From a0848dc314746f2751eabcd5ae8778cde21d41ed Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sun, 6 Dec 2020 13:15:54 +0100 Subject: Add a patch for liloconfig in Slackware 14.2 The make_slackware_live.sh script would abort on a failure to apply the current liloconfig patch to the older version found in Slackware 14.2. I still want to be able to support Slackware 14.2 with liveslak and this fixes it. --- patches/liloconfig_14.2.patch | 819 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 819 insertions(+) create mode 100644 patches/liloconfig_14.2.patch diff --git a/patches/liloconfig_14.2.patch b/patches/liloconfig_14.2.patch new file mode 100644 index 0000000..47cae65 --- /dev/null +++ b/patches/liloconfig_14.2.patch @@ -0,0 +1,819 @@ +--- liloconfig.orig 2015-02-20 02:48:51.000000000 +0100 ++++ liloconfig 2020-12-05 12:48:42.535216766 +0100 +@@ -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, 2020 Patrick Volkerding, Sebeka, Minnesota, USA + # All rights reserved. + # + # Redistribution and use of this script, with or without modification, is +@@ -22,14 +22,19 @@ + # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # ++# This script installs the lilo boot loader. ++# The kernel used will be whatever the symlink /boot/vmlinuz points to, ++# and if /boot/initrd.gz exists, that will be installed as the initrd. ++# ++ + TMP=/var/log/setup/tmp + 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 +42,7 @@ + --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" \ +@@ -45,7 +50,7 @@ + if [ $? = 1 -o $? = 255 ]; then + exit + fi +- REPLY="`cat $TMP/reply`" ++ REPLY="$(cat $TMP/reply)" + rm -f $TMP/reply + if [ "$REPLY" = "skip" ]; then + exit +@@ -54,7 +59,7 @@ + + # 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 +84,7 @@ + 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 +105,7 @@ + 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 +@@ -143,7 +127,7 @@ + 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 +145,7 @@ + # 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 +159,12 @@ + 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 +182,7 @@ + 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" \ +@@ -212,7 +196,7 @@ + # "1024x768x16m" "Frame buffer console, 1024x768x16.8m" \ + # "1280x1024x16m" "Frame buffer console, 1280x1024x16.8m" \ + # "1600x1200x16m" "Frame buffer console, 1600x1200x16.8m" +- CONSOLETYPE="`cat $TMP/reply`" ++ CONSOLETYPE="$(cat $TMP/reply)" + if [ "$CONSOLETYPE" = "1600x1200x16m" ]; then + CONSOLENUM=799 + elif [ "$CONSOLETYPE" = "1600x1200x64k" ]; then +@@ -262,21 +246,51 @@ + dialog --title "OPTIONAL LILO append=\"\" 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 the Master Boot Record, ++# if we are going to install lilo to the MBR. ++# The output will be a file "$TMP/LILOMBR" with the device name written to it. ++find_mbr() ++{ ++ MBR_TARGET=/dev/sda ++ echo $MBR_TARGET > $TMP/LILOMBR ++ cat /proc/partitions | while read LINE ; do ++ MAJOR="$(echo $LINE | cut -f 1 -d ' ')" ++ MINOR="$(echo $LINE | cut -f 2 -d ' ')" ++ if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives ++ if [ "$MAJOR" = "3" ]; then ++ MBR_TARGET=/dev/hda ++ echo $MBR_TARGET > $TMP/LILOMBR ++ elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then ++ MBR_TARGET=/dev/hdc ++ echo $MBR_TARGET > $TMP/LILOMBR ++ elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then ++ MBR_TARGET=/dev/hde ++ echo $MBR_TARGET > $TMP/LILOMBR ++ 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 + } + + # This function scans for bootable partitions (making some assumptions along +@@ -290,89 +304,14 @@ + if [ $? = 1 -o $? = 255 ]; then + APPEND="" + fi +- APPEND="`cat $TMP/reply`" +- +- ask_utf; +- if [ $? = 1 -o $? = 255 ]; then +- UTFVT="vt.default_utf8=0" +- else +- UTFVT="vt.default_utf8=1" +- fi ++ APPEND="$(cat $TMP/reply)" + +- 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\ +@@ -389,33 +328,15 @@ + if [ $? = 1 -o $? = 255 ]; then + exit + fi +- TG="`cat $TMP/reply`" ++ 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 +- cat /proc/partitions | while read LINE ; do +- MAJOR="`echo $LINE | cut -f 1 -d ' '`" +- MINOR="`echo $LINE | cut -f 2 -d ' '`" +- if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives +- if [ "$MAJOR" = "3" ]; then +- MBR_TARGET=/dev/hda +- echo $MBR_TARGET > $TMP/LILOMBR +- elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then +- MBR_TARGET=/dev/hdc +- echo $MBR_TARGET > $TMP/LILOMBR +- elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then +- MBR_TARGET=/dev/hde +- echo $MBR_TARGET > $TMP/LILOMBR +- 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 +- fi +- fi +- done +- LILO_TARGET=`cat $TMP/LILOMBR` ++ find_mbr ++ LILO_TARGET=$(cat $TMP/LILOMBR) + elif [ "$TG" = "Root" ]; then +- LILO_TARGET=`echo $ROOT_DEVICE` ++ LILO_TARGET=$(echo $ROOT_DEVICE) + elif [ "$TG" = "Floppy" ]; then + LILO_TARGET="/dev/fd0" + fi +@@ -425,14 +346,19 @@ + # + # 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. ++# This option loads the kernel and initrd much faster: ++compact + + # Boot BMP Image. + # Bitmap in BMP format: 640x480x8 +@@ -443,7 +369,7 @@ + # 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 +440,7 @@ + # 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 +@@ -522,10 +448,10 @@ + FAT12 + FAT16 + HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort )" +- DOSP="`echo $DOSP | cut -f 1 -d ' '`" ++ DOSP="$(echo $DOSP | cut -f 1 -d ' ')" + fi + if [ ! "$DOSP" = "" ]; then +- TABLE="`echo $DOSP | cut -b1-8`" ++ TABLE="$(echo $DOSP | cut -b1-8)" + cat << EOF >> $T_PX/etc/lilo.conf + # Windows bootable partition config begins + other = $DOSP +@@ -536,10 +462,21 @@ + echo "Windows - (Windows FAT/NTFS partition)" >> $T_PX/boot/boot_message.txt + fi + # Next, we search for Linux partitions: +- LNXP="`PROBE -l | grep "Linux$"`" +- LNXP="`echo $LNXP | cut -f 1 -d ' ' | sort`" ++ LNXP="$(PROBE -l | grep "Linux$")" ++ LNXP="$(echo $LNXP | cut -f 1 -d ' ' | sort)" + if [ ! "$LNXP" = "" ]; then +- cat << EOF >> $T_PX/etc/lilo.conf ++ if [ -r $T_PX/boot/initrd.gz ]; then ++ cat << EOF >> $T_PX/etc/lilo.conf ++# Linux bootable partition config begins ++image = $KERNEL ++ initrd = /boot/initrd.gz ++ #root = $ROOT_DEVICE ++ label = Linux ++ read-only ++# Linux bootable partition config ends ++EOF ++ else ++ cat << EOF >> $T_PX/etc/lilo.conf + # Linux bootable partition config begins + image = $KERNEL + root = $ROOT_DEVICE +@@ -547,14 +484,15 @@ + read-only + # Linux bootable partition config ends + EOF ++ fi + echo "Linux - (Linux partition)" >> $T_PX/boot/boot_message.txt + fi + # DEAD CODE, BUT IN CASE OS/2 MAKES A COMEBACK! + # # OK, hopefully we can remember how to deal with OS/2 :^) +-# OS2P="`PROBE -l | grep "HPFS"`" +-# OS2P="`echo $OS2P | cut -f 1 -d ' ' | sort`" ++# OS2P="$(PROBE -l | grep "HPFS")" ++# OS2P="$(echo $OS2P | cut -f 1 -d ' ' | sort)" + # if [ ! "$OS2P" = "" ]; then +-# TABLE="`echo $OS2P | cut -b1-8`" ++# TABLE="$(echo $OS2P | cut -b1-8)" + # if [ "$TABLE" = "/dev/hda" ]; then + # cat << EOF >> $T_PX/etc/lilo.conf + ## OS/2 bootable partition config begins +@@ -636,7 +574,7 @@ + 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 +603,11 @@ + 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 +648,8 @@ + 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. +@@ -723,13 +661,13 @@ + # 'probe()' borrowed from LILO QuickInst. + probe() + { +- [ ! -z "`dd if=$1 bs=1 count=1 2>/dev/null | tr '\0' x`" ] ++ [ ! -z "$(dd if=$1 bs=1 count=1 2>/dev/null | tr '\0' x)" ] + return + } + + # Figure out if we're installing from the hard drive + if [ -r $TMP/SeTT_PX ]; then +- T_PX="`cat $TMP/SeTT_PX`" ++ T_PX="$(cat $TMP/SeTT_PX)" + else + if [ "$T_PX" = "" -a ! "$1" = "" ]; then + T_PX=$1 +@@ -746,15 +684,17 @@ + ROOT_DEVICE=$2 + if [ "$ROOT_DEVICE" = "" ]; then + if [ -r $TMP/SeTrootdev ]; then +- ROOT_DEVICE="`cat $TMP/SeTrootdev`" ++ ROOT_DEVICE="$(cat $TMP/SeTrootdev)" + else +- ROOT_DEVICE="`mount | cut -f 1 -d " " | sed -n "1 p"`" ++ ROOT_DEVICE="$(mount | grep " on $T_PX " | cut -f 1 -d " " | head -n 1)" + fi + fi + # Figure out where the kernel is: + ARCHTYPE=i386 + if [ -r $T_PX/vmlinuz ]; then + KERNEL=/vmlinuz ++elif [ -r $T_PX/boot/vmlinuz-generic ] && [ -r $T_PX/boot/initrd.gz ]; then ++ KERNEL=/boot/vmlinuz-generic + elif [ -r $T_PX/boot/vmlinuz ]; then + KERNEL=/boot/vmlinuz + elif [ -r $T_PX/usr/src/linux/arch/$ARCHTYPE/boot/bzImage ]; then +@@ -767,11 +707,11 @@ + + # If we're installing from the umsdos.gz rootdisk, suggest skipping LILO: + if [ ! "$T_PX" = "/" ]; then +- if mount | grep " on /mnt " | grep umsdos 1> /dev/null 2> /dev/null ; then ++ if mount | grep " on $T_PX " | 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 +721,13 @@ + 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" \ +@@ -795,7 +735,7 @@ + if [ $? = 1 -o $? = 255 ]; then + exit + fi +- REPLY="`cat $TMP/reply`" ++ REPLY="$(cat $TMP/reply)" + rm -f $TMP/reply + if [ "$REPLY" = "skip" ]; then + exit +@@ -825,7 +765,7 @@ + if [ $? = 1 -o $? = 255 ]; then + REPLY="Skip" + else +- REPLY="`cat $TMP/reply`" ++ REPLY="$(cat $TMP/reply)" + fi + rm -r $TMP/reply + if [ "$REPLY" = "Begin" ]; then +@@ -835,22 +775,22 @@ + HDR="no" + continue; + else +- APPEND="`cat $TMP/reply`" +- fi +- ask_utf; +- if [ $? = 1 -o $? = 255 ]; then +- UTFVT="vt.default_utf8=0" +- else +- UTFVT="vt.default_utf8=1" ++ APPEND="$(cat $TMP/reply)" + 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)" \ +@@ -860,42 +800,22 @@ + continue; + else + LNX="no" +- TG="`cat $TMP/reply`" ++ TG="$(cat $TMP/reply)" + fi + rm -r $TMP/reply + if [ "$TG" = "MBR" ]; then +- MBR_TARGET=/dev/sda +- echo $MBR_TARGET > $TMP/LILOMBR +- cat /proc/partitions | while read LINE ; do +- MAJOR="`echo $LINE | cut -f 1 -d ' '`" +- MINOR="`echo $LINE | cut -f 2 -d ' '`" +- if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives +- if [ "$MAJOR" = "3" ]; then +- MBR_TARGET=/dev/hda +- echo $MBR_TARGET > $TMP/LILOMBR +- elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then +- MBR_TARGET=/dev/hdc +- echo $MBR_TARGET > $TMP/LILOMBR +- elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then +- MBR_TARGET=/dev/hde +- echo $MBR_TARGET > $TMP/LILOMBR +- 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 +- fi +- fi +- done +- LILO_TARGET=`cat $TMP/LILOMBR` ++ find_mbr ++ 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`" ++ LILO_TARGET="$(cat $TMP/reply)" + fi + rm -f $TMP/reply + elif [ "$TG" = "Root" ]; then +- LILO_TARGET=`echo $ROOT_DEVICE` ++ LILO_TARGET=$(echo $ROOT_DEVICE) + elif [ "$TG" = "Floppy" ]; then + LILO_TARGET="/dev/fd0" + else +@@ -903,7 +823,7 @@ + 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" \ +@@ -914,7 +834,7 @@ + HDR="no" + continue; + else +- TIMEOUT="`cat $TMP/reply`" ++ TIMEOUT="$(cat $TMP/reply)" + fi + rm -r $TMP/reply + if [ "$TIMEOUT" = "None" ]; then +@@ -939,8 +859,13 @@ + # + # Start LILO global section + boot = $LILO_TARGET +- +-#compact # faster, but won't work on all systems. ++EOF ++ if echo $LILO_TARGET | grep -q vda 2>/dev/null ; then ++ echo "disk = /dev/vda bios=0x80 max-partitions=7" >> $TMP/lilo.conf ++ fi ++ cat << EOF >> $TMP/lilo.conf ++# This option loads the kernel and initrd much faster: ++compact + + EOF + # Boot splash +@@ -962,10 +887,10 @@ + + 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 +945,8 @@ + 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" +@@ -1040,7 +967,7 @@ + continue + fi + rm $TMP/tmpmsg +- LINUX_PART="`cat $TMP/reply`" ++ LINUX_PART="$(cat $TMP/reply)" + checkp_dialog $LINUX_PART + if [ ! $? = 0 ]; then + continue; +@@ -1053,8 +980,19 @@ + if [ $? = 1 -o $? = 255 ]; then + continue + fi +- LABEL="`cat $TMP/reply`" +- cat << EOF >> $TMP/lilo.conf ++ LABEL="$(cat $TMP/reply)" ++ if [ -r $T_PX/boot/initrd.gz ]; then ++ cat << EOF >> $TMP/lilo.conf ++# Linux bootable partition config begins ++image = $KERNEL ++ initrd = /boot/initrd.gz ++ #root = $LINUX_PART ++ label = $LABEL ++ read-only # Partitions should be mounted read-only for checking ++# Linux bootable partition config ends ++EOF ++ else ++ cat << EOF >> $TMP/lilo.conf + # Linux bootable partition config begins + image = $KERNEL + root = $LINUX_PART +@@ -1062,6 +1000,7 @@ + read-only # Partitions should be mounted read-only for checking + # Linux bootable partition config ends + EOF ++ fi + else + dialog --title "CAN'T ADD LINUX PARTITION" --msgbox "You can't add \ + partitions unless you start over with a new LILO header." 6 60 +@@ -1081,13 +1020,13 @@ + echo >> $TMP/tmpmsg + echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg + dialog --title "SELECT OS/2 PARTITION" --no-collapse --inputbox \ +-"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply ++"$(cat $TMP/tmpmsg)" 20 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg +- OS_2_PART="`cat $TMP/reply`" ++ OS_2_PART="$(cat $TMP/reply)" + checkp_dialog $OS_2_PART + if [ ! $? = 0 ]; then + continue; +@@ -1100,9 +1039,9 @@ + if [ $? = 1 -o $? = 255 ]; then + continue + fi +- LABEL="`cat $TMP/reply`" +- TABLE="`echo $OS_2_PART | cut -b1-8`" +- if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then ++ LABEL="$(cat $TMP/reply)" ++ TABLE="$(echo $OS_2_PART | cut -b1-8)" ++ if [ "$(echo $TABLE | cut -b6-8)" = "hda" ]; then + cat << EOF >> $TMP/lilo.conf + # OS/2 bootable partition config begins + other = $OS_2_PART +@@ -1131,9 +1070,11 @@ + 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,17 +1082,17 @@ + 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 \ +-"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply ++"$(cat $TMP/tmpmsg)" 20 74 2> $TMP/reply + if [ $? = 1 -o $? = 255 ]; then + rm $TMP/tmpmsg + continue + fi + rm $TMP/tmpmsg +- DOSPART="`cat $TMP/reply`" ++ DOSPART="$(cat $TMP/reply)" + checkp_dialog $DOSPART + if [ ! $? = 0 ]; then + continue; +@@ -1164,13 +1105,13 @@ + if [ $? = 1 -o $? = 255 ]; then + continue + fi +- LABEL="`cat $TMP/reply`" ++ LABEL="$(cat $TMP/reply)" + unset USE_LOADER +- TABLE="`echo $DOSPART | cut -b1-8`" +- if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then ++ TABLE="$(echo $DOSPART | cut -b1-8)" ++ if [ "$(echo $TABLE | cut -b6-8)" = "hda" ]; then + USE_LOADER="no" + fi +- if [ "`echo $TABLE | cut -b6-8`" = "sda" ]; then ++ if [ "$(echo $TABLE | cut -b6-8)" = "sda" ]; then + if probe /dev/hda; then + USE_LOADER="yes" + else +@@ -1236,8 +1177,8 @@ + if [ -r $TMP/lilo.conf ]; then + dialog --title "YOUR NEW /etc/lilo.conf" --textbox "$TMP/lilo.conf" 22 70 + else +- if [ -r /mnt/etc/lilo.conf ]; then +- dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/mnt/etc/lilo.conf" 22 70 ++ if [ -r $T_PX/etc/lilo.conf ]; then ++ dialog --title "YOUR OLD /etc/lilo.conf" --textbox "$T_PX/etc/lilo.conf" 22 70 + elif [ "$T_PX" = "/" -a -r /etc/lilo.conf ]; then + dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/etc/lilo.conf" 22 70 + else -- cgit v1.2.3