To build the bootdisk, you'll need a few thigs.
The most substantial change to my bootdisk from Slackware's bare.i bootdisk is the inclusion of an initial ramdisk. You can just download mine below, but then again if you wanted to just download things, you could have just downloaded the bootdisk from the main page. So here's how I built it.
If you haven't yet, download Busybox. I used Busybox-0.60.5, but feel free to use any version. If you have a different version, my patch probably won't work.
If you have Busybox-0.60.5 and you want to use my patch, unpack busybox, and ungzip my patch in the Busybox directory. Patch it with:
patch < busybox-0.60.5.runt.diff
If you have a different version or don't wish to use the patch, just edit the following files:
Makefile
CC=/usr/i386-linux-uclibc/bin/i386-uclibc-gcc
Config.h
#define BB_ECHO
#define BB_INSMOD
#define BB_LASH
#define BB_SLEEP
Compile busybox with
make
Make a blank 300K file:
dd if=/dev/zero of=initrd bs=300k count=1
Format it with ext2
mke2fs -F -m0 initrd
Mount the file (this requires loopback block device support in your kernel)
mount -t ext2 -o loop initrd /wherever/you/want
cd to the mounted directory and make the directory structure
mkdir bin dev lib
Copy linuxrc into the root directory. Make sure it is executable. If you are building this to run off of a different drive, adjust the sleep time in this file as necessary.
Make the console device in /dev
mknod dev/console c 5 1
Gunzip the following modules in a temporary directory (not in the initrd image) and copy the ungzipped modules to /lib
Copy the busybox binary to /bin and make links to echo, insmod, lash, and sleep
ln -s busybox echo
ln -s busybox insmod
ln -s busybox lash
ln -s busybox sleep
Unmount the image file and gzip it with maximum compression
gzip -9 initrd
Format a DOS floppy and put syslinux on it
fdformat /dev/fd0
mkdosfs -n RUNT -c /dev/fd0
syslinux /dev/fd0
Copy the following files from Slackware's bare.i bootdisk:
Copy the following files to the disk:
Start with the Slackware Zipslack distribution. Mount an msdos filesystem with -t msdos and unzip zipslack to it. Unmount it and remount it with -t umsdos.
Add any additional packages you like. From n/ I added:
Update any patches available from Slackware. I updated:
Edit networking related files to fit your needs. I edited:
Add probing for network cards to startup scripts.
Remove probing from /sbin/netconfig, or copy mine.
Edit /etc/rc.modules to load the hid and keybdev modules for USB keyboard support. The usbcore and host controller modules should be loaded by the bootdisk.
Set your timezone by making a link from /etc/localtime to your zone. I ran:
ln -sf /usr/share/zoneinfo/US/Eastern etc/localtime
Edit /etc/fstab to meet your needs. I did the following:
/dev/hda1 /mnt/hd auto defaults 0 0
none /proc/bus/usb usbdevfs defaults 0 0
Copy runthelp and diskhelp into / so a list of common commands can be displayed to the screen. Create an executable script called runthelp in /usr/bin with the following text:
#!/bin/bash
cat /runthelp
You can make this command any name you like. I used both "runt" and "runthelp".
Make a similar file for diskhelp
To make RUNT bootable directly from USB:
Unmount the drive and remount it again with -t msdos. Zip up the linux directory with -r.
If you have suggestions of how I could improve RUNT, please email me at runt@mybos.org