VagrantSlack3215Box

Steps to create a Slackware 15 (32-bit) vagrant box with LVM support.

Get ISO and install

   1 cd ~
   2 https://ftp.rnl.tecnico.ulisboa.pt/pub/slackware/slackware-iso/slackware-15.0-iso/slackware-15.0-install-dvd.iso
   3 sudo modprobe -r kvm_intel
   4 virtualbox &
   5 # start virtualbox 
   6 # new, name: slackware32-15
   7 # linux, other linux,  other linux(32-bit) , next 
   8 # 512 RAM, next 
   9 # Create a virtual hard disk now, create, VDI, next,  dynamically allocated, next,  64GB, create 
  10 # start VM 
  11 # choose slackware-15.0-install-dvd.iso
  12 # start 
  13 # boot: <enter>
  14 # 1, select keyboard 
  15 # qwerty/pt.map 
  16 # 1 <enter>
  17 # login as root 
  18 # create 2 partitions ...
  19 fdisk /dev/sda 
  20 # n p 1 default 2048 +512M
  21 # n p 2 default 1050624 +63G
  22 # select Linux LVM
  23 # t 2 L 8e 
  24 # p
  25 # w
  26 # LVM stuff 
  27 pvcreate /dev/sda2
  28 vgcreate sysvg /dev/sda2
  29 lvcreate -L 62G -n root sysvg
  30 pvscan 
  31 setup 
  32 # go to target # /dev/sysvg/root select 
  33 # quick format, ok ext 4
  34 # select other linux partition /dev/sda1 
  35 # quick format, ext4 
  36 # select mount point for /dev/sda1 mount point /boot 
  37 # fstab 
  38 # /dev/sysvg/root for the root directory (/) 
  39 # /dev/sda1 for /boot 
  40 # mount point /boot 
  41 # install from slackware cd or dvd 
  42 # scanning for cd or dvd: auto 
  43 # only select package A and AP
  44 # full 
  45 # configure the system, yes 
  46 # make usb flash boot: skip ok 
  47 # install lilo, simple 
  48 # configure lilo: lilo standard 
  49 # optional lilo:  <blank> 
  50 # select lilo destination MBR 
  51 # GPM configuration: no 
  52 # select services: crond messagebus syslog 
  53 # custom screen fonts no 
  54 # hw clock set to utc no 
  55 # timezone configuration: europe/lisbon 
  56 # nvi classic BSD utf8 
  57 # set root password: vagrant 
  58 # exit setup, go to shell 
  59 
  60 
  61 
  62 #chroot /mnt # it is probably the LVM volume !
  63 #$( /usr/share/mkinitrd/mkinitrd_command_generator.sh -r )
  64 #KERNEL_VER=$(ls /lib/modules | head -n 1)
  65 #echo $KERNEL_VER
  66 # get file system
  67 #mkinitrd -c -k $KERNEL_VER -f ext4 -r /dev/sysvg/root -m dm-#mod:ata_piix:ahci:libata:sd_mod -L
  68 #
  69 # /boot/initrd.gz 
  70 #cat /etc/lilo.conf | grep -v "#"
  71 #
  72 #nano /etc/lilo.conf
  73 #append=" "
  74 #boot = /dev/sda
  75 #compact 
  76 #
  77 #prompt
  78 #timeout = 50
  79 #change-rules
  80 #  reset
  81 #vga = normal
  82 #image = /boot/vmlinuz-generic
  83 #  label = LinuxTest
  84 #  initrd = /boot/initrd.gz
  85 #  read-only
  86 # 
  87 #lilo
  88 #exit 
  89 
  90 vgscan --mknodes
  91 vgchange -ay
  92 mount /dev/sysvg/root /mnt
  93 mount /dev/sda1 /mnt/boot
  94 mount -o bind /dev /mnt/dev
  95 mount -o bind /proc /mnt/proc
  96 mount -o bind /sys /mnt/sys
  97 
  98 chroot /mnt /bin/bash
  99 # in chroot
 100 mount /dev/sr0 /mnt
 101 upgradepkg --reinstall /mnt/slackware/a/kernel-modules-5.15.19*.txz
 102 ls -l /lib/modules/5.15.19/kernel/fs/ext4/
 103 
 104 KERNEL_VER=$(ls /lib/modules | head -n 1)
 105 echo $KERNEL_VER
 106 mkinitrd -c -k $KERNEL_VER -f ext4 -r /dev/sysvg/root -m dm-mod:ext4 -L
 107 
 108 #Several modules added after mkinitrd
 109 #jdb2 mbcache ext4 dm-bufio dm-snapshot
 110 
 111 nano /etc/lilo.conf
 112 append=" "
 113 boot = /dev/sda
 114 compact 
 115 
 116 prompt
 117 timeout = 50
 118 change-rules
 119   reset
 120 vga = normal
 121 image = /boot/vmlinuz-generic
 122   label = LinuxTest
 123   initrd = /boot/initrd.gz
 124   read-only
 125 
 126 exit 
 127 
 128 lilo -r /mnt
 129 exit
 130 reboot 

Test installation and install extra packages

   1 # login root:vagrant 
   2 df -h # used 1.4G 
   3 # mount DVD slack iso virtualbox 
   4 mount /dev/sr0 /mnt/dvd 
   5 cd /mnt/dvd/slackware/
   6 installpkg k/kernel-source*txz 
   7 
   8 installpkg l/libunis*txz 
   9 installpkg l/gc-8*txz 
  10 installpkg l/ncurses-6*txz
  11 
  12 installpkg d/make*txz 
  13 installpkg d/gcc-11.2*txz 
  14 installpkg d/perl-5*txz 
  15 installpkg d/guile-3*txz 
  16 installpkg d/binutils*txz 
  17 
  18 installpkg ap/slackpkg-15*.txz 
  19 installpkg ap/sudo-*.txz
  20 
  21 installpkg n/network-scripts-15.0-noarch-18.txz
  22 installpkg n/net-tools-20181103_0eebece-x86_64-3.txz
  23 installpkg n/dhcp-4.4.2_P1-x86_64-1.txz
  24 installpkg n/iproute2*.txz
  25 installpkg n/libmnl-1*.txz
  26 installpkg n/dhcpcd-9*txz
  27 installpkg n/iputils-*.txz
  28 installpkg n/openssh-*.txz
  29 installpkg n/wget-1*.txz
  30 installpkg n/ca-certificates-2021*.txz
  31 installpkg n/openssl-1*.txz
  32 installpkg n/gnupg-1.4.23-x86_64-4.txz
  33 
  34 vi /etc/rc.d/rc.inet1.conf 
  35 USE_DHCP[0]="yes" 
  36 
  37 /etc/rc.d/rc.inet1  # run command, it should get an ip
  38 ping -c 3 www.google.com # should get replies
  39 
  40 cd / 
  41 umount /mnt/dvd  
  42 # remove in virtualbox the ISO for slack
  43 reboot 
  44 
  45 # login root:vagrant 
  46 ping -c 3 www.sapo.pt 

Install guest additions

   1 umount /mnt/dvd 
   2 # Menu "Devices" followed by "Insert guest additions cd image ". 
   3 mount /dev/sr0 /mnt/dvd
   4 cd /mnt/dvd 
   5 ./VBoxLinuxAdditions.run 
   6 # unmount cd image in Virtualbox
   7 reboot 
   8 # login and reboot again 
   9 

vagrant sudoers

login with root:vagrant

   1 adduser vagrant # with pwd vagrant 
   2 groupadd sudo 
   3 
   4 usermod -aG sudo vagrant 
   5 visudo # insert after root user line
   6 
   7 vagrant ALL=(ALL) NOPASSWD: ALL
   8 
   9 exit 
  10 login vagrant:vagrant 
  11 
  12 sudo bash # should not ask for password 
  13 exit 

UseDNS in SSH

   1 sudo bash 
   2 cd /etc/ssh 
   3 vi sshd_config 
   4 # disable line with "UseDNS" no 
   5 #UseDNS no
   6 /etc/rc.d/rc.sshd restart 

SSH insecure pair in vagrant

   1 # in /home/vagrant folder as vagrant user
   2 mkdir ~/.ssh 
   3 cd ~/.ssh 
   4 wget -k https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub
   5 mv vagrant.pub authorized_keys
   6 chmod 0600 authorized_keys 
   7 chmod 0700 /home/vagrant/.ssh 
   8 sudo /sbin/shutdown -h now 

Disable audio in Virtualbox

Virtualbox, vm settings, audio, disable

Set first network adapter as a NAT one

Virtualbox, settings vm, adapter 1, NAT

Remove optical devices

Virtualbox, settings, storage, remove mounted optical drives

Create vagrant box

   1 cd /tmp 
   2 vagrant package --base slackware32-15
   3 ls
   4 # package.box
   5 vagrant box add --name slack32-15-box /tmp/package.box
   6 vagrant init slack32-15-box
   7 vagrant up
   8 vagrant ssh
   9 df -h
  10 # /dev/sysvg/root   61G  3.7G   54G   7% /
  11 md5sum /vagrant/package.box
  12 xxxxx  /vagrant/package.box

Update Slackware

   1 vagrant ssh 
   2 sudo bash 
   3 
   4 cd /var/log/packages
   5 grep -i -H "package location" *  | grep "\/ap\/"
   6 #nano-6.0-i586-1:PACKAGE LOCATION: /var/log/mount/slackware/ap/nano-6.0-i586-1.txz
   7 #vim-8.2.4256-i586-1:PACKAGE LOCATION: /var/log/mount/slackware/ap/vim-8.2.4256-i586-1.txz
   8 
   9 
  10 export SLACK_MIRROR="https://ftp.rnl.tecnico.ulisboa.pt/pub/slackware/slackware-15.0"
  11 cd /tmp 
  12 wget -k $SLACK_MIRROR/slackware/n/openssl-1.1.1m-i586-1.txz
  13 wget -k $SLACK_MIRROR/slackware/n/ca-certificates-20211216-noarch-1.txz
  14 /sbin/installpkg ca-certificates-20211216-noarch-1.txz
  15 /sbin/installpkg openssl-1.1.1m-i586-1.txz
  16 /usr/sbin/update-ca-certificates --fresh
  17 
  18 echo "$SLACK_MIRROR/" >>  /etc/slackpkg/mirrors
  19 
  20 wget  $SLACK_MIRROR/slackware/n/gnupg-1.4.23-i586-4.txz
  21 /sbin/installpkg gnupg-1.4.23-i586-4.txz
  22 /usr/sbin/slackpkg update gpg 
  23 /usr/sbin/slackpkg update
  24 /usr/sbin/slackpkg upgrade-all
  25 exit
  26 exit 
  27 vagrant reload 

Slackware/VagrantSlack3215Box (last edited 2026-10-24 18:45:42 by vitor)