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
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 some conf sample
cd ~/ alias ll='ls -alkF' wget http://192.168.122.1/bin/slackdisk.bash wget http://192.168.122.1/bin/slackstrap.bash wget http://192.168.122.1/bin/slackprep.bash wget http://192.168.122.1/bin/slacknet.bash wget http://192.168.122.1/bin/slackstart.conf #wget http://pub.nethence.com/bin/slackstart/slackdisk.bash #wget http://pub.nethence.com/bin/slackstart/slackstrap.bash #wget http://pub.nethence.com/bin/slackstart/slackprep.bash #wget http://pub.nethence.com/bin/slackstart/slacknet.bash #wget http://pub.nethence.com/bin/slackstart/slackstart.conf chmod +x slack*bash vi slackstart.conf ...
note http is fine enough for internal network – as we don’t have ca bundles anyhow within the slackware install medium
note we’re using lilo here because we can - we have the same /proc as on the target system, we see the same disk
./slackdisk.bash vda
time ./slackstrap.bash lala # 1m11 from de mirror # 0m46.877s from local kvm host
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 ../
don’t forget to add a kernel and some boot-blocks
time ./slackstrap.bash lala kernel
same here (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
./slacknet.bash lala
umount lala/proc umount lala/sys umount 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