lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

The Tomsrtbt single-floppy Linux rescue disk / distribution now includes a
fully functional Lua programming environment including the Lua interpreter
with luasocket, lualibs (bitops and regex), and md5 libraries; as well as
both vi (elvis) and emacs (ce) editors.  A drastically edited version of
the reference manual is included, see "man lua" under tomsrtbt.  Utilities
written in Lua at this point on the diskette are:

	basename cmp common.lua cut dhcpcd-- dirname
	grep head login split tee undeb-- unrpm-- wc

The debug libraries are not included.

Tomsrtbt is available from:

This can be added to the 'projects that use Lua' links and similar indices.

This may be useful as a Lua learning environment as well as a way to quickly
have Lua available on systems of unknown configuration or limited resources.

The .lsm is:

Title:		tomsrtbt
Version:	1.7.250
Entered-date:	07APR01
Description:	"The most Linux on one floppy."  (distribution or panic disk).
		1.72MB boot/root rescue/tools diskette for your shirt pockets.
		Supports ide, scsi, tape, network adaptors, PCMCIA, much more.
		About 100 utility programs and tools for fixing and restoring.
		See tomsrtbt.FAQ for a list of stuff that is included.  Not a
		script, just the diskette image packed up chock full of stuff.
		Easy to customize startup and scripts for complete rebuilding.
		Also good as learn-unix-on-a-floppy as it has mostly what you
		expect- vi, emacs, awk, sed, sh, manpages- loaded on ramdisks.
		There is one installer that runs under Linux, another for DOS.
Keywords:	rescue recovery emergency floppy panic bootdisk tomsrtbt help
Author: (Tom Oehser)
Maintained-by: (Tom Oehser)
Primary-site: /rb
		1 kB home.html
Alternate-site: /pub/Linux/system/recovery
		1722 kB tomsrtbt-1.7.247.tar.gz
		1722 kB
		1722 kB tomsrtbt-1.7.247.ElTorito.288.img.bz2
Copying-policy:	GPL

The FAQ is:


1) tomsrtbt is
2) Design goals
3) Contents
4) 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 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

 Stuff (modules, manpages, scripts, binaries, kernel):

ULTRA VFAT VORTEX WD80x3 ah152x_cs aha152x aha1542 aic7xxx ash badblocks
basename bdflush bzip2 cardmgr cat ce chattr chgrp chmod chown chroot
clear cmp cp cpio cut date dd ddate debugfs df dhcpcd-- dirname dmesg ds du
dumpe2fs e2fsck eata echo elvis emacs extend false fdflush fdformat fdisk
fdomain filesize find findsuper fmt fsck.ext2 fsck.msdos fstab grep gzip
halt head hexedit hostname i82365 ifconfig ifport ile init inittab insmod
kill killall5 ksyms length less lilo lilo.conf ln loadkeys
login losetup ls lsattr lua md5sum memtest mingetty miterm mkdir mkdosfs
mke2fs mkfifo mkfs.minix mklost+found mknod mkswap mnsed more mount mt mv
nc ncr53c8xx nmclan_cs ntfs pax pcmcia pcmcia_core pcnet_cs ping plip ppa
printf ps pwd qlogic_cs qlogicfas reboot rescuept reset rm rmdir rmmod route
rsh rshd script scsi_info seagate sed serial_cs setserial sh slattach sleep
slip snarf sort split stty swapoff swapon sync tail tar tcic tee telnet
test touch tune2fs umount undeb-- unrpm-- update vi wc

 Linux package

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

 DOS package

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

4) 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 / 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 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 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 linux filesystem space)

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

There is lots of room, delete useless stuff like dmsdos and ce.

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,
For adding programs to tomsrtbt, you have 3 choices:

	(1)	You can compile with and link against libc5.
		There is a libc5-compiling kit in the add-ons.

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

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

8) Support

	Start at

	There is a searchable archive of the mailing list.

	My email address is Tom@Toms.NET

	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:

9) Tips

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

Use "man command" if a command acts strangely

"snarf" does ftp, gopher, http, & finger

/ 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 -

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

	"chroot <mounted glibc filesystem> <program>"
	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.

You must manually insmod plip or ntfs.

Adaptec 2940 etc. is aic7xxx

If something is missing, look in

Try "pcmcia start". If you add pcmcia modules, fix /etc/pcmcia/config also.

wc login man shutdown ps split telnet 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.
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.0.x kernel with a newer series, just unpack;
make sure the kernel you are substituting supports floppies, ramdisks, and
minix; and rebuild.

10) Copyright

Almost the only originality is arrangement, construction, and scripts.

I did write 'tomshexd' and the Lua scripts from scratch.

It is all on,,, or

I changed:
 mnsed fixing 'l'
 snarf adding ftp USER and PASS via getenv
 busybox taking out applets
 ile fixing tty bugs
 dd adding lseek for BLK, progress indicator, no conv

The .diffs are in*.diff.bz2

'miterm' is thanks to Robert de Bath,

(This is basically a "modified BSD Style" copyright.)

* If you base something on it, use any of the scripts, distribute binaries or *
* libraries from it, or distribute customized versions of it: You must credit *
* tomsrtbt and include a pointer to and, *
* and include this notice verbatim. Copyright Tom Oehser 1999. This notice in *
* no way supercedes or nullifies any other protections on the component parts *
* such as the BSD and GPL copyrights which apply to practically everything!!! *
* Within these strictures you may redistribute, incorporate, copy, modify, or *
* do anything else to it or with it that you like. Tomsrtbt has no warranties *
* not even implied fitness or usefulness.  If it breaks you keep both pieces. *

11) ChangeLog

1.6.370  replace cpio with pax/tar/cpio
1.7.0    kernel 2.0.36
1.7.29   many pax, tar, cpio fixes
1.7.30   add hexedit, add split
1.7.40   add aha152x_cs, trim elvis
1.7.88   add setserial, play with inode calculations
1.7.95   plip has to be module, script fixes
1.7.100  add real dhcpcd NOTE: this is temporary, I will replace this with a
         faked or reduced dhcp and this will go away!  But why not put it on
         there for now since I have the space...
1.7.102  new mkdosfs
1.7.135  kernel 2.0.37, random urandom & sr1, fix pax bug
1.7.183  patch kernel for sparse-superblock ext2fs, move stuff from /bin to
         /usr/bin, tweak ash pwd, minor script fixes, add debian unpacker
1.7.189  kernel 2.0.38, patch kernel for filetype & ata66, add DAC960,
         add Advansys, remove dmsdos & dutil (kernel still has cvf patch),
         tweak module stripping.
1.7.199  kernel 2.0.39-pre, pax fix for cpio SVR4 format, newer ntfs, 
1.7.201  move md5summing from 'dd' to 'tomshexd'.  Fix 'dd' behaviour with
         partial blocks from pipes and tapes.  Fix "undeb--" and "unrpm--"!
1.7.212  static fdflush and fdformtat in installer, remove advansys driver,
         rem dmsdos patch, 2.0.39-final, e2fstools 1.19, fix pax vfat segfault
1.7.213  pax socket fix
1.7.217  lie about kernel version to fix RedHat-7 "chroot /mnt /sbin/lilo"
1.7.243  replace mawk with Lua, replace all awks with luas, add basename,
         fix filesize, replace /bin/login sh/awk with /usr/bin/login lua,
         cmp in lua, dhcpcd replaced with dhcpcd-- in Lua, do pcmcia start
         and eval `dhcpcd--` in rc.custom.gz

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
luas     e  m  5 clean up, do more..
luas     e  m  5 write 'strings' in lua
busybox  b  m  4 fix monadic to handle -fr
busybox  b  m  4 fix chmod -R not to give up on failure
busybox  b  m  2 kill doesn't support named signals
busybox  e  h  4 hack in more stuff, revamp and redo
busybox  e  h  7 new version?
crtn.o   b  h  5 ?4-K overhead from for every program?
crunch   e  h  5 BSD program that auto-combines binaries?
cut      b  m  4 fix -b, -c N-..
deb      e  l  5 enhance undeb, blocking, toc, more
dhcpd    e  h  2 fix more
doc      b  l  5 update manpage for (gnucpio)mt
doc      e  m  6 busybox man pages
doc      e  m  2 faq>/,.s>bin,settings>etc
epic100  b  m  2 fix UTS like tulip in linux source
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?
generic- e  m  8 which one?
grep     e  m  5 write the rest of it
head     b  m  5 no -n
hexedit  e  m  4 wrapper for diskediting
insmod   b  h  1 newer version failed?  DO THIS for 2.4 kernels sake
kbd      e  m  4 make keymaps with only changes
kernel   e  h  9 update to 2.2.18
libc     e  h  9 convert to glibc6 2.1.3
others   e  m  4 crib from
md       e  m  8 check size, need
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?
ntfs     e  m  4 newer version
passwd   e  m  2 crypt in lua, better fake login
pax      e  h  3 enhance to do gnu-tar and gnu-cpio opts
pax      e  h  3 try to break, build verification suite.
pcmcia   e  m  5 cleanup, docs, trim, test
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
touch    b  h  1 won't create files
xtea     e  m  2 do this
telnet   e  m  5 improve
telnetd  e  m  5 improve
termcap  e  l  4 man page w/ setterm fake shortcuts i.e. ^V^[[?5h
termcap  b  h  7 rebuild lib
trinux   e  m  4 crib from
wget     e  m  3 compare to snarf