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
- START - contains first IP address in range to be served
- END - contains last IP address in range to be served
- GATEWAY - router address to be served
- IFACE - interface on which to serve info (e.g. eth0)
- SUBNET - subnet mask for served network
- DOMAIN - domain name for served network
- DNS - IP addresses of dns servers one on each line
- OTHER - any other options for use with busybox's udhcpd 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)
- File systems
- DOS Fat fs support
- MSDOS fs support
- Minix fs support
- /proc file system support
- /dev file system support
- Automatically mount at boot
- Block devices
- Normal floppy disk support
- RAM disk support
- Initial RAM disk (initrd) support
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