Table of Contents

Booting the Installation Environment from HDD

This article shows how to boot the Slackware installation environment from a hard drive instead of the usual installation media.

The Slackware installation environment is a small live Linux system with busybox, partitioning and some other useful utilities, and the setup program. It starts automatically when you boot your system from Slackware install media: CD, DVD, USB stick or PXE.

In order to boot the Slackware installation environment without creating install media you need an image of this boot environment, a suitable Linux kernel, and a boot loader.

With grub2 you can also boot from the iso file by adding it to the grub menu.

Image of the Environment

All software that you can use after booting the Slackware installation media resides in an initial ramdisk image. You can find it as /isolinux/initrd.img on any installation media or at the same location on any of the Slackware mirrors.

Linux Kernel

Slackware uses (at least now) one of its huge kernels to run the installation environment. You can find the kernel's bzImage files in sub-directories of the /kernel directory on the installation media or at the same location on any Slackware mirror.

Getting The Files

If you already have an ISO image of the Slackware install media you can mount this image with the loop option and copy the files, for example to a /boot/swsetup directory which you create yourself first.

You can also download the kernel and initrd image from one of the Slackware mirrors. There are some examples below.

Boot Loader

There are many boot loaders around. Slackware uses SYSLINUX to boot from the install media, installs LILO to boot the installed system, and provides a GRUB-legacy package in /extra (32 bit only). Many distributions use GRUB (renamed from GRUB2) as their main boot loader. If you use a Linux system you probably already have a suitable one. You need to put the bzImage and initrd.img files in a suitable place and instruct the boot loader to boot them.
Note that some parameters are passed to the kernel in /isolinux/isolinux.cfg; you need them to configure your boot loader properly.

LILO

Add to /etc/lilo.conf something like:

image = /boot/swsetup/bzImage
  initrd = /boot/swsetup/initrd.img
  addappend = "load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s"
  label = SwSetup

and run

# lilo

GRUB

Add to /boot/grub/grub.cfg something like:

menuentry 'SwSetup' {
  set root='(hd0,2)'
  linux /boot/swsetup/bzImage  load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s
  initrd /boot/swsetup/initrd.img
}
(hd0,2) means “the second partition on the first drive” (i.e. /dev/sda2). You can find the right value in the “set root” command of the menu entry used to boot your system, or else consult with GRUB manual.
If you use a separate partition for /boot, then you must remove “/boot” from any pathnames.

GRUB-legacy

Add to /boot/grub/menu.lst something like:

title SwSetup
  root (hd0,1)
  kernel /boot/swsetup/bzImage  load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s
  initrd /boot/swsetup/initrd.img
(hd0,1) means the second partition (this is not a typo, GRUB-legacy numbers partitions from 0) on the first drive (i.e. /dev/sda2). You can find the right value in the “root” command in the section used to boot your system; or else consult with GRUB-legacy manual.
If you use a separate partition for /boot, then you must remove “/boot” from any pathnames.

Boot ISO with GRUB2

Add to /etc/grub.d/40_custom:

menuentry "Slackware 14 install (DVD)" {
 insmod loopback
 insmod iso9660
 set isofile="/slackware64-14.0-install-dvd.iso"
 loopback loop (hd0,2)$isofile
 linux (loop)/kernels/huge.s/bzImage  load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s
 initrd (loop)/isolinux/initrd.img
}
(hd0,2) means “the second partition on the first drive” (i.e. /dev/sda2). You can find the right value in the “set root” command of the menu entry used to boot your system, or else consult with GRUB manual.

Then update grub with:

 grub-mkconfig -o /boot/grub/grub.cfg
On Slackware before running grub-mkconfig you have to run ln -s /dev/sda2 /dev/root where for sda2 you have to enter your root device.

Test It

Reboot your system and select SwSetup at boot prompt.

If you have an unused partition you can install Slackware on it right now.

Using an ISO Image as Source

If you downloaded the Slackware DVD ISO image you can use it as package source.

Then continue as usual.

Slackware setup (starting with version 13.0) automatically finds an ISO image if it is named as slackwar*-install-dvd.iso.

You can also mount your image manually.

Then continue with the installation as usual.

Sources