aboutsummaryrefslogblamecommitdiffstats
path: root/patches/liloconfig.patch
blob: d82a824aabd7de22c390d4077748bc61ea68dbf1 (plain) (tree)
1
2

                                                                   

































































































                                                                                                                                                                    








                                                                           


















                                               
                   






                                                                      
                   







                                                                            
                    





















                                                                                                                                     





                                                                   





                                                                             
                    


















                                                                   
                   






                                                                         
--- testing/liloconfig.20201223	2020-12-23 22:01:43.268714126 +0100
+++ testing/liloconfig.20201226	2020-12-26 22:31:01.070803743 +0100
@@ -22,6 +22,11 @@
 #  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
@@ -249,6 +254,45 @@
  return $RETVAL
 }
 
+# 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
 # the way which may or may not be correct, but usually work), and sets up
 # LILO in either the superblock, or the MBR.
@@ -289,38 +333,7 @@
  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
-    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
+  find_mbr
   LILO_TARGET=$(cat $TMP/LILOMBR)
  elif [ "$TG" = "Root" ]; then
   LILO_TARGET=$(echo $ROOT_DEVICE)
@@ -338,7 +351,6 @@
   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
@@ -452,7 +464,18 @@
  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
@@ -460,6 +483,7 @@
   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!
@@ -668,6 +692,8 @@
 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
@@ -763,33 +789,7 @@
    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
-      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
+    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. \
@@ -965,7 +965,18 @@
      continue
     fi
     LABEL="$(cat $TMP/reply)"
-    cat << EOF >> $TMP/lilo.conf
+    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
@@ -973,6 +984,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