Contents:

1) tomsrtbt is
2) Design goals
3) Contents
4) GNU/Linux installation
5) DOS installation
6) Bootable CD installation
7) Customizing
8) Support
9) Tips
10) Copyright
11) ChangeLog
12) ToDo


1) tomsrtbt is

	"The most GNU/Linux on one floppy disk"

	for:

		rescue recovery panic & emergencies

		tools to keep in your shirt pockets

		whenever you can't use a hard drive

	Tomsrtbt stands for:

"Tom's floppy which has a root filesystem and is also bootable."
 ___ _                    _  _                        _  _


2) Design goals

	as much stuff as possible on 1 floppy disk

	keep it self contained, build under itself

	try to make it behave like a normal system

	rescue and recovery functions get priority


3) Contents

What you have is... AHA152X AHA1542 AIC7XXX BUSLOGIC DAC960 DEC_ELCP(TULIP)
EATA EEXPRESS/PRO/PRO100 EL2 EL3 EXT2 EXT3 FAT FD IDE-CD/DISK/TAPE IMM INITRD
ISO9660 JOLIET LOOP MATH_EMULATION MINIX MSDOS NCR53C8XX NE2000 NFS NTFS
PARPORT PCINE2K PCNET32 PLIP PPA RTL8139 SD SERIAL/_CONSOLE SLIP SMC_ULTRA SR
ST VFAT VID_SELECT VORTEX WD80x3 .exrc 3c589_cs agetty ash badblocks basename
boot.b buildit.s busybox bz2bzImage bzip2 cardmgr cardmgr.pid cat chain.b
chattr chgrp chmod chown chroot clear clone.s cmp common config cp cpio cs
cut date dd dd-lfs debugfs ddate df dhcpcd-- dirname dmesg domainname ds du
dumpe2fs e2fsck echo egrep elvis ex false fdflush fdformat fdisk filesize
find findsuper fmt fstab grep group gunzip gzip halt head hexdump hexedit
host.conf hostname hosts httpd i82365 ifconfig ile init inittab insmod
install.s issue kernel key.lst kill killall killall5 ld ld-linux length
less libc libcom_err libe2p libext2fs libtermcap libuuid lilo lilo.conf ln
loadkmap login ls lsattr lsmod lua luasocket man map md5sum miterm mkdir
mkdosfs mke2fs mkfifo mkfs.minix mknod mkswap more more.help mount mt mtab mv
nc necho network networks nmclan_cs nslookup passwd pax pcmcia_core pcnet_cs
pidof ping poweroff printf profile protocols ps pwd rc.0 rc.S rc.custom
rc.custom.gz rc.pcmcia reboot rescuept reset resolv.conf rm rmdir rmmod route
rsh rshd script sed serial serial_cs services setserial settings.s sh shared
slattach sleep sln sort split stab strings swapoff swapon sync tail tar tcic
tee telnet telnetd termcap test tomshexd tomsrtbt.FAQ touch traceroute true
tune2fs umount undeb-- unpack.s unrpm-- update utmp vi vi.help view watch
wc wget which xargs xirc2ps_cs yecho yes zcat

 GNU/Linux package

clone.s			duplicate
fdflush			flush floppy cache
fdformat		format floppy 1.7M
install.s		install
settings.s		used by tools
tomsrtbt.FAQ		documentation
tomsrtbt.raw		<== This is it
unpack.s		unpack for rebuild

 DOS package

initrd.img		installer image
install.bat		install it
loadlin.exe		starts GNU/Linux from DOS
tomsrtbt.FAQ		documentation
zimage			installer kernel


4) GNU/Linux installation

a) extract the .tar.gz archive
b) Be root
c) Be in the tomsrtbt-<version> directory
d) Have a blank floppy with no bad sectors
e) Do './install.s'

The script assumes you have ELF and that your 3.5" 1.44M floppy is on fd0.

Virtually all 1.44 drives support 1.722 just fine, but it is possible for
an extended format to break a floppy drive, use tomsrtbt at your own risk.
The install does mknod to make /dev/fd0u1722 if you don't have it already.

If you use libc.so.6 / glibc, you might need something like:
 LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib; ./fdformat /dev/fd0u1722

Umount any mounted floppies before installing.


5) DOS installation

a) Pkunzip it

b) If you are running Windows-95, do "shutdown and restart in msdos mode".
   You have to be in really-DOS mode.  Not a DOS session under Windows-95.

c) CD to the directory you pkunzipped it into.

d) "install".
   (This boots a GNU/Linux with prompts to make the diskette.)

This is for installing tomsrtbt from a DOS/Windows system.

If you have problems, boot with no config.sys or autoexec.bat.

Note, this creates the *exact same floppy* as the GNU/Linux installer.


6) Bootable CD installation

The tomsrtbt-<version>.ElTorito.288.img.bz2 *IS NOT AN ISO IMAGE*.

It is a 2.88MB floppy image suitable for *BUILDING* an iso image,
using, say, the -b flag of mkisofs.  See README.eltorito in mkisofs.


7) Customizing

If you have problems, try doing it under tomsrtbt instead
of on your own system. I test and support it under itself!

To customize startup, edit settings.s and rc.custom.gz on the floppy.
Of course you have to "gzip -d" rc.custom.gz to edit it.
Use /dev/fd0u1722 to mount it, /dev/fd0 or /dev/fd0H1440 will not work.
Typical uses: insmod, ifconfig, route, resolv.conf, hosts, mount, etc.

For full customization, such as, anything,

	(Be logged somewhere with 10+ meg of (non-FAT) filesystem space)

	./unpack.s 	# unbuilds it into <name>.unpacked
				# do what thou wilt
	./buildit.s	# rebuilds out of 1, 2 directories

NOTE:	You need space to DO the customizations. Rc.custom.gz can be
	unpacked into /tmp, edited, gzipped, copied back. Buildit.s
	needs drive space. If you only have FAT, use the loop device.

When customizing, edit the settings.s under "1/", not other copies.

If you get "not found" errors when running programs, you are using
the wrong libc.  There are many ways to make programs for tomsrtbt:

	(1)	You can compile with and link against libc5.
		There are libc5 packages for Debian and RedHat.

	(2)	You can do a static link with "-static -s".

	(3)	You can put libc.so.6 on tomsrtbt along with your program.

	(4)	You can rewrite the program in Lua.

	(5) You can rewrite the program in BAL.


8) Support

	Start at http://www.toms.net/rb/

	There is a wikiwiki.  Use the wikiwiki.

	There is a searchable archive of the mailing list.

	My email is Tom@Toms.NET, but try the archive and wiki first!!!

	N.B.: Tomsrtbt mail sent to me becomes part of a public archive.

	Tell me what problems you have and what you would like added.

	I am not a Unix teacher, questions should be tomsrtbt-specific.

		For questions that are NOT tomsrtbt specific, see:

			http://linuxdoc.org/
		and
			http://www.geek-girl.com/unix.html
		and
			http://www.ugu.com/		


9) Tips

'Login as root' means the USER ID is "root"!  I thought it was obvious...

Use "man command" if a command acts strangely

"wget" does ftp and http

/ is full. /usr is full. /tmp has room.

tar and cpio are 'pax' and differ from gnu-tar and gnu-cpio.

Instead of:
		tar -xvzf /dev/st0
Use this:
		gzip -d < /dev/st0 | tar -xvf -

Pipe through dd-lfs for files over 2 gig

To run glibc programs from your hard drive you can use something like:

	"chroot <mounted glibc filesystem> <program>"
 i.e.,
	chroot /mnt /bin/bash

LILO. The lilo version run *must match* the boot.b
it uses.  A common solution is to do something like:

	mount /dev/hda8 /mnt
	mount /dev/hda1 /mnt/boot
	chroot /mnt /sbin/lilo

Mount the floppy if you need a boot.b and zImage; chain.b is in /etc.

Command history is via ile from /bin/login, see "man ile" and /bin/login.

If something is missing, look in the add-ons.

For pcmcia other than common NICs, go to the add-ons.

wc login man shutdown ps split tee grep & head are scripts or luas.

edit rc.custom.gz to enable rshd or dialin or 'telnetd'.

For the fake telnetd, use 'mode character' and 'set binary'

If you need to not be root, use a suid shell.  Login won't do it.

Instead of rdev use lilo, for examples see the mailing list archive.

To copy between 2 tomsrtbt systems, use something like:

 find <path> | cpio -o | rsh <system> cd <path> ";" cpio -iumd

I do not use "Red Hat", please do not ask me questions about it.  They are
an 800 million dollar company for ?sake.  Surely they have a phone number?

Their address of record is:

	RedHat
	2600 Meridian Parkway
	Durham, NC 27713

Send them a letter about your problem...  Ditto "Mandrake", "SuSE", "DebIan"...

At this point, tomsrtbt requires about 8meg to boot, even more to unpack.

It is not hard to replace the 2.2.x kernel with a newer series, just unpack;
make sure the kernel you are substituting supports floppies, ramdisks, and
minix; and rebuild.  Edit settings.s for the new kernel name.

Instead of:
	A=`expr $B \* 2`
	C=$D+$E
use:
	A=`lua -e 'print('$B' * 2)'`
	C=`lua -e 'print('$D'+'$E')'`


10) Copyright

***************************************************************************
* See http://www.toms.net/rb/license.html before redistributing tomsrtbt! *
***************************************************************************


11) ChangeLog

2.0.7 rc.pcmcia cleanup, more devices, juggle some stuff
2.0.10 set dhcp flags broadcast bit
2.0.12 newer busybox with bugfixes,
	replace klogd/syslogd/logger with traceroute and rmmod,
2.0.15 current chattr and lsattr
2.0.17 added dd-lfs for large file support.  Poor mans LFS.
2.0.20 added tune2fs and fancy busybox ping, minor doc fixes
2.0.21 added badblocks
2.0.23 various documentation fixes
2.0.24 make elvis & fmt smaller
2.0.28 make lilo docs smaller
2.0.29 fix a dos installer bug
2.0.30 remove sgi/aix/sun/bsd support from fdisk
2.0.32 add PARPORT, PLIP, PPA, and IMM
2.0.38 add SLIP, slattach, .exrc.  Trim pcmcia module size
2.0.47 add httpd, watch
2.0.48 replace sysvinit with busybox init, halt, reboot, poweroff
2.0.51 replace busybox kill, killall, killall5 with asmutils, add pidof
2.0.52 add userspace memtest
2.0.54 remove userspace memtest, still looking for the right thing...
2.0.55 recompile ash, newer luasocket, no lua regex and md5/crypt
2.0.79 rework busybox init to support HUP adding inittab entries,
	modify bz2bzImage progress indications
2.0.81 add rtl8139 and ne2k-pci support
2.0.85 add dumpe2fs and debugfs
2.0.86 put lsattr and chattr into e2fsprogs crunchbox
2.0.87 rebuild pcmcia for good luck
2.0.89 try replacing the real 'nc' with busybox 'nc' (netcat)
	try to fix a bug in init.c
2.0.98 patch busybox nc for SO_REUSEADDR, try replacing again.
	more tweaking of busybox init.c
	*** Warning:  Some add-on modules may now break *** If you use add-ons:
	*** See: http://not.toms.net/twiki/bin/view/Tomsrtbt/BrokenModules
2.0.102	mess with init

12) ToDo

There is a lot of stuff now that is amenable to Lua.
Also, the new Luas need to be cleaned up a lot.
As well as, the lua manpage needs more work.

Com     TypEffPriDes
ash      b  h  4 echo won't allow both -e AND -n
ash      b  h  6 bizarre 'read' bug
ash      b  l  6 manpage omits $$, $_, etc.
ash      b  h  7 fix or doc builtin "test" bug
deb      e  l  5 enhance undeb, blocking, toc, more
dhcpd    e  h  2 fix more
doc      b  l  5 update manpage for (gnucpio or busybox)mt
doc      e  h  5 fix all manpages
expr     e  m  3 make an expr in lua
file del e  m  5 look into file recovery program
floppy   e  h  8 mess with higher formats like 1840?
hexedit  e  m  4 wrapper for diskediting
libc     e  h  9 convert to glibc6 2.1.3
more     b  h  2 fix console bug, smooth scroll backwards
mount    e  l  3 update man pages
mount    b  h  6 -O2 breaks '-t nfs', -O1 works, why?
pax      e  h  3 enhance to do gnu-tar and gnu-cpio opts
smbfs    e  m  7 check size
sort     e  m  4 remove or replace with an lua
startup  e  h  2 test initrd, root.gz->minixfs ideas
telnetd  e  m  5 improve
termcap  e  l  4 man page w/ setterm fake shortcuts i.e. ^V^[[?5h
kernel   e  m  4 consider sunrpc/nfs for removal to addons - big
build    t  m  4 test gzip ability of buildit.s
kernel   e  l  3 compare kernel .o sizes
libc     e  h  5 test libraryopt
tomshexd e  l  2 replace tomshexd
org      e  m  2 test effect of grouping on compression
reiser   e  h  7 patch fix reiser to allow addition

