[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Action disabled: register

Welcome to the Slackware Documentation Project

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.

  • This is how that looks for a Slackware 14.0 64-bit ISO image:
    # mkdir -p /mnt/tmp /boot/swsetup
    # mount -o loop /tmp/slackware64-14.0-install-dvd.iso /mnt/tmp
    # cp /mnt/tmp/isolinux/initrd.img /mnt/tmp/kernel/huge.s/bzImage /boot/swsetup/
    # umount /mnt/tmp
  • And for Slackware 14.0 32-bit:
    # mkdir -p /mnt/tmp /boot/swsetup
    # mount -o loop /tmp/slackware-14.0-install-dvd.iso /mnt/tmp
    # cp /mnt/tmp/isolinux/initrd.img /mnt/tmp/kernel/hugesmp.s/bzImage /boot/swsetup/
    # umount /mnt/tmp

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.

  • In the “SOURCE MEDIA SELECTION” step select “2 Install from hard drive partition”,
  • enter the name of the disk partition containing the ISO image file, for example /dev/sda2,
  • then type in the full path on that partition's filesystem to the directory with the DVD ISO image, for example /tmp/,
  • and agree with the prompt to use the ISO image as package source:
    ┌──────────────────────SOURCE MEDIA SELECTION────────────────────────┐
    │ Please select the media from which to install Slackware Linux:     │
    │ ┌────────────────────────────────────────────────────────────────┐ │
    │ │           1  Install from a Slackware CD or DVD                │ │
    │ │           2  Install from a hard drive partition               │ │
    │ │           3  Install from NFS (Network File System)            │ │
    │ │           4  Install from FTP/HTTP server                      │ │
    │ │           5  Install from Samba share                          │ │
    │ │           6  Install from a pre-mounted directory              │ │
    │ └────────────────────────────────────────────────────────────────┘ │
    ├────────────────────────────────────────────────────────────────────┤
    │                   <  OK  >          <Cancel>                       │
    └────────────────────────────────────────────────────────────────────┘
    ┌────────────────────INSTALLING FROM HARD DISK───────────────────────┐
    │ In order to install directly from the hard disk you must have a    │
    │ partition (such as /dev/sda1, /dev/sdb5, etc) with the Slackware   │
    │ distribution's slackware/ directory like you'd find it on the FTP  │
    │ site.  It can be in another directory.  For example, if the        │
    │ distribution is in /stuff/slackware/, then you have to have        │
    │ directories named /stuff/slackware/a, /stuff/slackware/ap, and so  │
    │ on each containing the files that would be in that directory on    │
    │ the FTP site.  You may install from FAT or Linux partitions.       │
    │                                                                    │
    │ Please enter the partition (such as /dev/sda1) where the Slackware │
    │ sources can be found, or [enter] to see a partition list:          │
    │ ┌────────────────────────────────────────────────────────────────┐ │
    │ │/dev/sda2                                                       │ │
    │ └────────────────────────────────────────────────────────────────┘ │
    ├────────────────────────────────────────────────────────────────────┤
    │                   <  OK  >          <Cancel>                       │
    └────────────────────────────────────────────────────────────────────┘
    ┌───────────────────SELECT SOURCE DIRECTORY─────────────────────┐
    │ Now we need to know the full path on this partition to the    │
    │ slackware/ directory where the directories containing         │
    │ installation files and packages to be installed are kept.     │
    │ For example, if you downloaded Slackware into the /stuff      │
    │ directory on your hard drive (so that you have the            │
    │ directories /stuff/slackware/a, /stuff/slackware/ap, and so   │
    │ on each containing the files that would be in that directory  │
    │ on the FTP site), then the full path to enter here would be:  │
    │                                                               │
    │       /stuff/slackware                                        │
    │                                                               │
    │ What directory are the Slackware sources in?                  │
    │ ┌───────────────────────────────────────────────────────────┐ │
    │ │/tmp/                                                      │ │
    │ └───────────────────────────────────────────────────────────┘ │
    ├───────────────────────────────────────────────────────────────┤
    │                 <  OK  >         <Cancel>                     │
    └───────────────────────────────────────────────────────────────┘
    ┌────────────────────────USE ISO IMAGE──────────────────────────┐
    │                                                               │
    │ An ISO image of Slackware's install DVD was found.            │
    │ Do you want me to mount the ISO image and use this as the     │
    │ package source?                                               │
    │                                                               │
    ├───────────────────────────────────────────────────────────────┤
    │                   < Yes >          < No  >                    │
    └───────────────────────────────────────────────────────────────┘

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.

  • Before starting setup or later from another console (use Alt+F# to switch to a different console number “#”), execute
    # mkdir /hd /iso
    # mount /dev/sda2 /hd
    # mount -o loop /hd/tmp/slackware64-14.0-install-dvd.iso /iso
  • In the “SOURCE MEDIA SELECTION” step select “6 Install from a premounted directory”,
  • In the next dialog window, enter the path to the directory containing the “package series”, meaning the subdirectories “a”, “ap”, …, “y”. This path would be /iso/slackware64 for a 64 bit system or /iso/slackware for 32-bit.

Then continue with the installation as usual.

Sources

 howtos:slackware_admin:booting_install_from_hdd ()