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.
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.
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.
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.
# 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
# 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.
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.
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
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 }
/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.
/boot
, then you must remove “/boot” from any pathnames.
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
/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.
/boot
, then you must remove “/boot” from any pathnames.
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 }
/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
Reboot your system and select SwSetup at boot prompt.
If you have an unused partition you can install Slackware on it right now.
If you downloaded the Slackware DVD ISO image you can use it as package source.
SOURCE MEDIA SELECTION
” step select “2 Install from hard drive partition
”,/dev/sda2
,/tmp/
,┌──────────────────────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.
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
SOURCE MEDIA SELECTION
” step select “6 Install from a premounted directory
”,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.