tclDisk

Latest version tclDisk (0.5)
(built in Intel EtherExpress Pro 100 and 3com 3c590 support) try modules for other devices (scsi, fs, and net). This version will also automatically install tarballs from /floppy/pkgs (network block server sample package included).

Latest Update

May 5,2005: Preview of new tcldisk6 ISO image. This has samba binary and a few others. Needs modules, better packages init, and a script to make custom floppies. Feb 28, 2005: Still working on tcldisk6. I have the floppy and cd images loading but I need to finish an iptables package and the rc.d script to install and run it before I will release them. As soon as that is done, I will package up samba and tinyX. And then hopefully nano-X and rdesktop.
Feb 19, 2005: I have created the basic tcldisk using buildroot but am having a problem getting my disk to mount a tmpfs filesystem. (I'm probably just missing something simple.) I have successfully built samba and tinyX (I still want to try rdesktop and nanoX). Since samba still won't fit on a single floppy I am working on a Makefile to use the buildroot to build a new tcldisk floppy image and an CD iso image. Hopefully I can also put up my toolchain so others can build packages to include.
Jan 26, 2005: I'm working on a new tcldisk using the uClibc buildroot system. I hope to be able to build a few more packages (e.g. samba, rdesktop, etc) or at the least put my build environment here for download so that other people can build where I have failed.
Nov 16, 2004: Added contact information (the more interest people seem to have in this project the more time I will spend on it)
Apr 12, 2004: Added kernel configuration info
Feb 23, 2004: Added network block device server package. Simple way to share a computer's hard drive with another linux machine. About nbd
Jan 29, 2004: Updated rc.d script to handle dhcp server.
Jan 21, 2004: Added package shred for secure file removal.
Nov 21, 2003: Added packages section with Xkdrive per request. (still needs a bit of work though)

Description

The tclDisk is my floppy linux template disk. This disk contains the bare minimum for a bootable networkable linux floppy. This floppy image includes a minimal linux kernel with module support, iptables, basic system and networking utilities, and the means to add your own startup scripts, modules, and programs by modifying files on an msdos disk.

The floopy disk will create a running linux system in a 4 meg ramdisk. It will then use the contents of the floppy disk to configure the running linux system. After each reboot the ramdisk is erased and recreated with the same inital setup so any required configuration options must be handled in the initial startup scripts. After booting, the system will mount the floppy disk as /floppy and run /floppy/rc.d. In this way you can configure the disk as you like by modifying the rc.d script and adding your own modules. I include an example rc.d script which takes its configuration from the /floppy/etc directory starting most network functions.

Configuration

This is my latest rc.d file and the descriptions of the etc directory it expects follows. (Needs work for modules support)

HOSTNAME Contains the hostname for the computer. 1 line
ETH# (eth0,eth1,...) The ifconfig arguments for a single interface or it can contain the single string 'DHCP'
ETH#/# (0,1,...) Aliases are defined within a directory with the name of the interface, while aliases are named the interger value of the alias. These files contain the ifconfig arguments for that alias.
SYSLOG The host (ip or hostname) used to send syslog messages to
DNS List of dns servers one ip address on each line
FIREWALL iptables script
GATEWAY default gateway (IP address)
DHCPD/ directory with configuration options for a dhcp server

This rc.d script will also automatically install any tarballs it finds in the /floppy/pkgs directory.
For now modules should be copied to /floppy/modules/ and the script will attempt to load each one. (Needs work)

Kernel

To add your own kernel copy your bzImage or zImage to the floppy and name it linux. The minimal options are as follows (although you'll probably need a few more to make it usable)

Packages

These go in the pkgs directory on the floppy disk. Once booted they will untar onto the root filesystem.

Xkdrive (Xvesa tiny X server) - first try at a tiny X server. needs a bit of work

  • the following must be done manually for now
    ln -s /dev/tty /dev/tty0 
    ln -s /dev/vc/5 /dev/tty5
    ln -s /dev/tts/0 /dev/mouse # ?? for serial mouse
      

    Shred - Secure File and Hard Drive erasure.
      and an appropriate rc.d script which prompts to delete each disk.

    Network Block Device Server - Share block devices over the network.
      execute nbd-server port file_to_export <file>|<disc device> on the linux floppy machine e.g. nbd-server 1024 /dev/discs/disc0/disc
      (after compiling the nbd code from here> execute nbd-client host port nbd_device on the client machine e.g. nbd-client 192.168.1.2 1024 /dev/nb0
      after that you should be able to format or mount /dev/nb0 on the client.

    If this document happens to help you and you're feeling generous consider getting something from my Amazon wishlist

    Contact Info

    If you have any questions email me at bkeffer.web@thecommandline.org and I'll do my best to help.

    Changelog

    0.5 Nov 22, 2003 tclDisk
    Added libm.so.0 to the disk for use with the included Xvesa tiny X server package. 
    More configuration required for getting Xvesa working. (See package notes above.)
    
    0.4 Nov 13, 2003 tclDisk
    rc.d edited to do automatic package installation from tarballs in /floppy/pkgs
    Added sample network block device server nbd-server package in /floppy/pkgs
    Disk now includes udhcp DHCP client and server as well as wget (busybox apps)
    rc.d script will now accept ETH# files containing 'DHCP' 
    
    0.3 tclDisk
    Added module to website for use on floppy
    rc.d small changes 
    
    0.2 tclDisk
    Switched to using /floppy/etc directory for configuration directives
    rc.d changes to use /floppy/etc
    
    0.1 tclDisk
    Initial release