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- 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-.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 .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 " 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 | cpio -o | rsh cd ";" 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