summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2020-12-06 13:15:54 +0100
committer Eric Hameleers <alien@slackware.com>2020-12-06 13:15:54 +0100
commita0848dc314746f2751eabcd5ae8778cde21d41ed (patch)
treee33564ab69f4a694a27acacd5958dd11981383c4
parented440d406d7b700aa079a09a28797f12030ae392 (diff)
downloadliveslak-a0848dc314746f2751eabcd5ae8778cde21d41ed.tar.gz
liveslak-a0848dc314746f2751eabcd5ae8778cde21d41ed.tar.xz
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.
-rw-r--r--patches/liloconfig_14.2.patch819
1 files changed, 819 insertions, 0 deletions
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=\"<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 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