(Slackware as 1st option in my multiboot USB)

This tutorial explains the configuration files for Slackware 14.1 DVD 64-bit to work in LiveUSB multiboot mode with GLIM. This way you can have one flash drive containing multiple GNU/Linux OS installers including Slackware64 among them. This is my first time to ship Slackware USB ever and I am happy finally I could make it with GLIM. This is the result of my shipment to Sulawesi, Indonesia at December 2019. Happy hacking!

Subscribe to UbuntuBuzz Telegram Channel to get article updates directly.



Get Slackware


Slackware is the oldest GNU/Linux distro. I use version 14.1 for this shipment despite 14.2 is already available. Anyway, you can get Slackware at https://slackware.com.

ISO Name


The filename is slackware64-14.1-install-dvd.iso with 2.3GiB size.



ISO Internal Structure


Once again, I open that ISO image with Ark Archive Manager to find out 2 things: kernel and initrd files. By this, it is clear that their exact locations inside ISO are:
  • - for kernel: /kernels/huge.s/bzImage
  • - for initrd: /isolinux/initrd.img


grub.cfg

for isofile in ${isopath}/slackware/slackware*.iso; do
  if [ -e "$isofile" ]; then
    menuentry "Slackware >" --class slackware {
      configfile "${prefix}/inc-slackware.cfg"
    }
    break
  fi
done

Explanation: this code finds out the ISO file name no matter it is 32-bit or 64-bit. This code also calls the slackware.png logo by issuing the code "--class slackware". The most important thing is the call to inc-slackware.cfg file.

inc-slackware.cfg

# Slackware GNU/Linux
for isofile in $isopath/slackware/slackware*.iso; do
  if [ ! -e "$isofile" ]; then break; fi
  regexp \
    --set 1:isoname \
    --set 2:version \
    --set 3:arch \
    --set 4:variant \
    "^${isopath}/slackware/(slackware([^-]+)-([^-]+)-([^-]+)\.iso)\$" "${isofile}"
  menuentry "Slackware Live ${version} ${arch} ${variant}" "${isofile}" "${isoname}" --class slackware {
    set isofile=$2
    set isoname=$3
    bootoptions="livemedia=/dev/disk/by-uuid/$rootuuid:$isofile load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 kbd=us tz=localtime locale=us_EN.utf8"
    loopback loop $isofile
    linux (loop)/kernels/huge.s/bzImage  $bootoptions
    initrd (loop)/isolinux/initrd.img
  }
done

Example: this is the file you must create. This configuration is represented on bootloader screen as the second page after you choose to enter Slackware from the first page. This code is called from grub.cfg section Slackware. The important thing is that this code sets a special boot options line and then call the kernel with that boot options line along with initrd. This code runs Slackware DVD in loopback mode as shown by the use of "loopback loop $isofile" code and then "linux (loop)/bla/bla/bla" and "initrd (loop)/bla/bla/bla".

Icon


You must provide a 16x16 pixels icon of Slackware. Take icon below and put it in /boot/grub/themes/invader/icons/ along with other icons.



Code Screenshot


This is how those 2 codes appear when I edit them using a text editor.


Bootloader

Picture below is the bootloader in action. Notice that Slackware is the 1st choice there.


Result 


This photo depicts Slackware 14.1 shell prompt. Notice the "slackware login:" question on the last line.

 


This article is licensed under CC BY-SA 3.0.


, , , , ,