Linux NetMag
Titel: Tomsrtbt - Eine Mini-Distribution
URL: http://www.linuxnetmag.com/de/issue9/m9tomsrtbt1.html
Artikel vom: 10.05.04
Autor: Lars-Anders Schmuhl


Tomsrtbt steht für: "Tom's floppy which has a root filesystem and is also bootable." und ist "The most GNU/Linux on one floppy disk". So liest es sich in der FAQ zu Tomsrtbt 2.0.103, einer Linux-Distribution, die auf einer Diskette Platz findet und an dieser Stelle vorgestellt werden soll.

Los gehts

Tomsrtbt ist eine "Mini-Linux-Distribution". Sie besteht aus einem nicht ganz aktuellem Kernel (Version 2.2.20), einigen Kernelmodulen für die gängigste Hardware (hauptsächlich IDE, SCSI, Netzwerkkarten, PCMCIA) und einer Reihe sorgfältig ausgewählter Tools. Die aktuelle Version 2.0.103 ist unter [1] zu finden. Man hat die Wahl zwischen:

Die Installation als root unter Linux ist einfach:
  >> tar -xzf tomsrtbt-2.0.103.tar.gz
  >> cd tomsrtbt-2.0.103/
  >> su
  >> ./install.s
  
  Don't forget to READ the FAQ.
  
  Insert a blank writable 3.5" floppy diskette then strike ENTER.
  
  About to fdformat /dev/fd0u1722
  Double-sided, 82 tracks, 21 sec/track. Total capacity 1722 kB.
  Formatting ... done
  Verifying ... done
  About to dd floppy image
  3444+0 Records ein
  3444+0 Records aus
  About to verify floppy image
  Succeeded!
  
Fertig.

Booten von Floppy

Floppy einlegen und los.

  Welcome to tomsrtbt-2.0.103 by Tom Oehser
  
  http://www.toms.net/rb/
  
          #####
         #######
         ##O#O##
         #VVVVV#
       ##  VVV  ##
      #          ##
     #            ##
     #            ###          .~.
    QQ#           ##Q          /V\ 
  QQQQQQ#        #QQQQQQ      // \\ 
  QQQQQQQ#     #QQQQQQQ      /(   )\ 
    QQQQQ#######QQQQQ         ^`~'^ 
  
   Other distributions       tomsrtbt
  
  (15 seconds...)
  
Als erstes kann man Boot-Parameter eingeben (boot:) oder einfach RETURN drücken. Man wird als zweites nach einem Video mode (80x25,...) gefragt. Auch hier reicht einfach SPACE drücken. Dann wird der Kernel gebootet. Sodann wird man nach der gewünschten Tastaturbelegung gefragt. "10" und RETURN eingeben und man hat eine deutsche Belegung. Als nächstes erscheint:

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

Dies ist recht informativ.
Und weiter geht es mit dem obligatorischen Login.
login: "root"
password: "xxxx" (wirklich xxxx)
Als Shell hat man nun die ash (nicht die gewohnte bash-Umgebung).
Fertig.

Die Bootdisk kann nun aus dem Diskettenlaufwerk entfernt werden. Man kann zwischen 4 virtuellen Konsolen mittels ALT+F1 bis ALT+F4 hin- und herschalten. Das root-Filesystem (minix) ist in einer RAM-Disk untergebracht. Der Rechner, auf dem man bootet, sollte deshalb mindestens über 8MB Hauptspeicher verfügen. Wichtig und gut: Es wird kein einziges Bit auf die lokale Festplatte geschrieben und nichts am lokalen System verändert (außer man macht dies selbst). Man hat nun die oben aufgelisteten Programme zur Verfügung. Hier kommen übrigens Multicall-Binaries zum Einsatz (Busybox [3]). Vereinfacht gesprochen ist das ein Binary, das unter verschiedenen Namen aufgerufen wird und sich dann unterschiedlich verhält (als Argument 0 übergibt das Betriebssystem den Programmnamen). Dies ist eine Variante, um Platz zu sparen.

Möglichkeiten

Netzwerk
Da mein LAN keinen DHCP-Server besitzt (würde mit tomsrtbt funktionieren) setze ich mein C-Klasse-Netzwerk selbst auf (meine NE2000-kompatible PCI Netzwerkkarte wurde erkannt):

  >> ifconfig eth0 192.168.1.123 netmask 255.255.255.0 up
  
OK. Netzwerkkarte geht.
  >> ping 192.168.1.1
  
OK. Anderer Rechner im LAN wird gefunden. Mit traceroute, route, wget (kann ftp und http) und telnetd/telnet stehen einige mächtige Netzwerk-Tools zur Verfügung. Man kann mittels route auch einen Router aufbauen (zumindest für statische Routen).

Dateisysteme
Mit

  >> fdisk /dev/hdc
  
schaue ich mir die lokalen Partitionen an. Mit
  >> mount -t ext2 /dev/hdc1 /mnt
  
hänge ich sie ins Filesystem ein. Mit
  >> umount /mnt
  
wieder aus. Ein defektes ext2-Dateisystem könnte jetzt mittels
  >> e2fsck /dev/hdc1
  
repariert werden. Die Unterstützung verschiedener Dateisysteme ist gut. ext2, ext3, minix, msdos, fat, vfat, iso9660, etc. Dies ist außerordentlich nützlich, um z.B. wichtige Dateien von nicht mehr bootfähigen Systemen zu retten, oder Startscripts auf der Festplatte zu korrigieren. Auch eine Datensicherung über Netzwerk oder auf Streamer kann durchgeführt werden.

Ein Blick auf obige Programmliste, läßt noch weitere vielfältige Möglichkeiten des Einsatzes ahnen.
Das System kann schließlich mit

  >> halt
  
wieder ordentlich heruntergefahren werden.

Mehr Möglichkeiten

Add-ons
Auf [1] lassen sich noch weitere add-ons finden, die weitere Kernelmodule (z.B. usb) und zusätzliche Programme beinhalten. Sämtliche Software ist übringens auf das nötigste verkleinert, um Platz zu sparen (gemäß dem Motto: Weniger ist mehr). An dieser Stelle sei nochmals auf Busybox verwiesen [3].

Anpassen
Dem Fortgeschrittenen Anwender bietet sich außerdem die Möglichkeit, ein eigenes System durch Modifikation zu erstellen. Man kann als root mit

  >> ./unpack.s tomsrtbt.raw  
  
das Image auspacken und in den so erzeugten Unterverzeichnissen tomsrtbt-2.0.103.unpacked/1/ und tomsrtbt-2.0.103.unpacked/2/ eigene Änderungen einbringen. Mit
  >> ./buildit.s 
  
wird wieder ein Image erzeugt.

Boot-CD
Weitere Nutzungsmöglichkeiten entstehen durch die Erstellung einer bootable CD nach der "El Torito"-Spezifikation [4]. Näheres kann man in README.eltorito im mkisofs-Package lesen. Im Grunde wird ein Disk-Image auf eine CD gebracht, welches quasi als Diskette startet. Man hat so die Möglichkeit erschlossen, noch weitere Nutzdaten auf die CD und auf diesem Wege ins System zu bringen. Das geht so:

  >> bunzip2 tomsrtbt-2.0.103.ElTorito.288.img.bz2
  >> mkdir meineCD
  >> mkdir meineCD/boot
  >> cp tomsrtbt-2.0.103.ElTorito.288.img meineCD/boot/
  
Nun kopiert man alles, was man auf der CD haben möchte nach "meineCD". Dann erzeugt man ein ISO-Image von "meineCD".
  >> cd meineCD
  >> mkisofs -b boot/tomsrtbt-2.0.103.ElTorito.288.img \  
                -c boot/boot.catalog -o meineCD.iso 
  
  Size of boot image is 5760 sectors -> Emulating a 2880 kB floppy
  Total translation table size: 2048
  Total rockridge attributes bytes: 0
  Total directory bytes: 2048
  Path table size(bytes): 22
  Max brk space used 0
  5055 extents written (9 Mb)
  
Nun hat man ein ISO-Image "meineCD.iso". Brennen kann man es mit:
  >> cdrecord dev=0,0,0 -v meineCD.iso
  
Fertig.
Auf [2] gibt es auch ein Wiki, wo man weiterführende Hilfe bekommt und in Diskussionen rund um Tomsrtbt einsteigen kann. Wer allerdings eine Linux-Variante sucht, die von CD bootet und nichts auf die Festplatte schreibt, der sei auf Knoppix [5] verwiesen, welches deutlich komfortabler ist als tomsrtbt (es hat ja auch ein anderes Design-Ziel).

Fazit

Tomsrtbt läßt sich "out of the box" verhältnismäßig leicht installieren und anwenden (man muß kein UNIX-Guru sein). Tomsrtbt eignet sich hervorragend als Reparatur- und Rettungssystem, falls man nicht mehr von der Festplatte booten kann. Durch seine Netzwerkfähigkeiten und die Möglichkeit der Erweiterung läßt sich tomsrtbt auch als "Hacker-Tool" (im positiven Sinne!) gebrauchen. Es ist äußerst klein und hat verhältnismäßig viele Programme integriert.


Links: