about   required   preparation   first step   second step   setup   media type   source media   source directory   boot loader   menu entry

For those of you who don't want to or can't install slackware from a cd-rom drive, it is possible to do it from your hard drive. It's easier to explain this by using a concrete example. I'll describe below what I did on my own hard drive. Then you'll need to adjust a few things to adapt to your own settings.

Note that, even though this takes slackware 13.0 as an example, it works for any version of slackware that provided a usb boot image (at least since 12.0, I think). I started documenting this since 13.0, and successfully tested it with 13.1.

Requirements

You already have an iso file. Now, aside from what you usually need for a regular installation you'll need specifically for this kind of installation:

The bootloader I use is grub. But you can adapt this to other boot loaders (e.g., lilo, syslinux).

On my hard drive I have an available linux-formatted partition that I use as a repository. It has no system installed.

Of course, you can use a partition that has a linux system (if you carefully place the boot files of the slackware live system in a subfolder, they won't mess with your installed system). The partition I'll use here is /dev/sda6.

You can use any partition that your boot loader recognizes, provided you have enough space for storage. This partition will host the installation source and the boot files of the slackware live system from where you'll launch the installation.

First step: copy the contents of the iso file

cd /mnt/sda6/isos/slackware
mkdir -p /mnt/tmp
mount -o loop slackware-13.0-install-dvd.iso /mnt/tmp
if [ -d /mnt/sda6/32 ]; then
  rm -Rf /mnt/sda6/32
fi
mkdir -p /mnt/sda6/32
cp -R /mnt/tmp /mnt/sda6/32

Second step: prepare the files for the initial boot stage

umount /mnt/tmp
cd /mnt/sda6/32/usb-and-pxe-installers
mount -o loop usbboot.img /mnt/tmp
if [ -d /mnt/sda6/boot/slacklive ]; then
	rm -Rf /mnt/sda6/boot/slacklive/*
fi
mkdir -p /mnt/sda6/boot/slacklive
cp /mnt/tmp/* /mnt/sda6/boot/slacklive
umount /mnt/tmp
cd /mnt/sda6/boot/slacklive

Now we need an entry menu in the grub menu.lst file. By default slackware boots with the hugesmp.s kernel.

My grub menu is located in the 3rd partition (/dev/sda3).

mount /dev/sda3 /mnt/sda3
cat >> /mnt/sda3/boot/grub/menu.lst <<EOF
title install slackware
root (hd0,5)
kernel /boot/slacklive/hugesmp.s \
	load_ramdisk=1 prompt_ramdisk=0 rw \
	SLACK_KERNEL=/boot/slacklive/hugesmp.s vga=791
initrd /boot/slacklive/initrd.img
EOF

Note: Adjust to your settings by changing the line root (hd0,5) to

root (hd0,0) if the boot files are in /dev/sda1 (first partition)
root (hd0,1)                          /dev/sda2
..............................................
root (hd0,9)                          /dev/sda10
..............................................

We're done with the grub menu. We can unmount the partition.

umount /mnt/sda3

I guess we're all set now. Reboot the computer to start the installation. When the grub menu appears, select the entry that reads install slackware

After you logged in and ran the setup command, the first setup screen pops up.

slackware setup

I'll skip a few steps such as partitioning, etc. and proceed to the selection of the installation source.

media type: select hard drive

select source media

The partition hosting the slackware installation files. In this example the entry is: /dev/sda6

select source directory

For this example, it is: /32/slackware (as shown below).

don't install bootloader

No boot loader is needed. grub is already installed.

We're done with the installation. We need to add a grub entry to be able to boot on the new system.

For this example (partition /dev/sda6), the entry could be:

title slackware 13 (32bit, /dev/sda8)
root (hd0,7)
kernel /boot/vmlinuz root=/dev/sda8 ro vga=791 

You can download this info as a pdf file.

I typeset it with (plain) TEX (you can download the source here).