guest-slackware-console | slackstart
this guide is specifically designed for preparing bare-metal install, as we would otherwise simply bootstrap slackware onto a vdisk
you might want to use the very same slackware install medium version as the target system you’re intending to install. because otherwise, e.g. installing slackware 15.0 from slackware current (30 Oct 2025) brings
/dev/vda1 has unsupported feature(s): FEATURE_C12
note we’re using lilo here because we can - we have the same /proc as on the target system, we see the same disk
guest=slackconsole mkdir -p /data/guests/$guest/ cd /data/guests/$guest/ virsh list --all #virsh destroy $guest #virsh undefine $guest virt-install --osinfo list | grep slackware
with VNC up and point to CDROM (not quite convenient as you’re limited to the vga console)
ls -lhF /data/ISO-IMAGES/slackware/slackware64-15.0-install-dvd.iso
virt-install --name $guest --vcpus 1 --ram 1024 \
--disk path=/data/guests/$guest/$guest.qcow2,size=25,bus=virtio \
--network bridge=virbr0,model=virtio \
--graphics vnc --accelerate \
--console pty,target_type=serial \
--os-variant slackware15.0 \
--cdrom /data/ISO-IMAGES/slackware/slackware64-15.0-install-dvd.iso
# --osinfo detect=on,require=off
and reach the vga console
xtightvncviewer localhost:5900
–or– through PXE (much more convenient as you can point to the serial console)
virt-install --name $guest --vcpus 1 --ram 1024 \
--disk path=/data/guests/$guest/$guest.qcow2,size=25,bus=virtio \
--network bridge=virbr0,model=virtio \
--graphics vnc --accelerate \
--console pty,target_type=serial \
--os-variant slackware15.0 \
--pxe
and get to the serial console
# pxe debug
xtightvncviewer localhost:5900
virsh console slackconsole
prepare the network with –either– dhcp
network dhcpcd
–or– manually
ifconfig eth0 192.168.122.9 netmask 255.255.255.0 route add default gw 192.168.122.1 vi /etc/resolv.conf nameserver 208.67.222.222
and check
ping 192.168.122.1 #ping opendns.com
now comes the slackstart suite instead of the casual setup menu
grab the scripts and sample conf file
wget https://pub.nethence.com/bin/slackstart/slackdisk.bash wget https://pub.nethence.com/bin/slackstart/slacknet.bash wget https://pub.nethence.com/bin/slackstart/slackprep.bash wget https://pub.nethence.com/bin/slackstart/slackstart.conf wget https://pub.nethence.com/bin/slackstart/slackstrap.bash chmod +x slack*bash
./slackdisk.bash vda
vi slackstart.conf #mirror=http://ftp6.gwdg.de/pub/linux/slackware/slackware64-15.0/ #mirror=http://ftp.tu-chemnitz.de/pub/linux/slackware/slackware64-15.0/ mirror=http://mirror.rol.ru/slackware/slackware64-15.0/
and proceed
# https://pub.nethence.com/bin/slackstart/slackstrap.bash time ./slackstrap.bash lala
if this is a REISER4 file-system, let the guest eventually fsck itself at boot time
wget https://lab.nethence.com/slackpkgs/libaal-1.0.7-x86_64-2_SBo.tgz
wget https://lab.nethence.com/slackpkgs/reiser4progs-1.2.2-x86_64-2_SBo.tgz
ls -lF /root/slackpkgs/libaal-*_SBo.tgz
ls -lF /root/slackpkgs/reiser4progs-*_SBo.tgz
installpkg --terse --root lala/ /root/slackpkgs/libaal-*_SBo.tgz
installpkg --terse --root lala/ /root/slackpkgs/reiser4progs-*_SBo.tgz
since this is either bare-metal or a kvm guest, make sure you include a kernel in the disk image
# https://pub.nethence.com/bin/slackstart/slackstrap.bash time ./slackstrap.bash lala kernel
note in case you don’t have enough space into the ramdisk the trick is to use the target storage itself as for temporary package archives
cd lala/ ln -s ../slackstart.conf time ../slackstrap.bash . rm -f slackstart.conf cd ../
same for kernel deployment (the kernel-firmware package is huge)
cd lala/ ln -s ../slackstart.conf time ../slackstrap.bash . kernel rm -f slackstart.conf cd ../
tune the system and enable LILO (since we are on the system console, we do have the same disk drive name as the target system, which is not the case when we boostrap an image from elsewhere)
# not there yet
cat lala/etc/fstab
# should be there
ls -lF lala/sbin/lilo
./slackprep.bash lala
same here in case there’s no space left
cd lala/
ln -s ../slackstart.conf
../slackprep.bash .
rm -f slackstart.conf
cd ../
note in case this is a KVM guest, the script also works around the default slackware kernel that is not entirely virtio-aware, by defining disk and max-partitions
head -1 lala/etc/lilo.conf
==>
disk = /dev/vda bios=0x80 max-partitions=7
since this is either bare-metal or a kvm guest, make sure you include a kernel in the disk image
# https://pub.nethence.com/bin/slackstart/slackstrap.bash time ./slackstrap.bash lala kernel
umount -R lala/ sync reboot
you’re ready to switch to serial console
virsh console slackconsole
virsh destroy slackconsole virsh undefine slackconsole rm -rf /data/guests/slackconsole
while running lilo
Fatal: Linux experimental device ... needs to be defined
==> define disk and max-partitions as shown above