PDA

View Full Version : Creating modified etherboot.nbi?



bkw1a
10-23-2003, 09:54 PM
Hi folks,

I have a server based on LTSP that's running some X terminals. I'd like
to also have this machine serve some "fat" diskless clients by letting
them boot KNOPPIX, a la knoppix-terminalserver.

Things seem pretty straightforward, but I've run into a problem with
creating the boot image (etherboot.nbi). Packed up inside this file
is a syslinux.cfg file that specifies the nfs root host and directory.

If you run KNOPPIX and execute knoppix-terminalserver, an
appropriate syslinux.cfg file is created automatically, and packed into
the etherboot.nbi image. I've grabbed a copy of the knoppix-terminalserver
script (and the template files it uses) from a running KNOPPIX system,
and the steps to create the new etherboot.nbi look pretty straightforward.

For some reason, though, they don't produce a useable image when
I repeat them on my LTSP server. I can create a new etherboot.nbi,
and disnbi tells me it looks OK, but when I try to remote-boot a
machine using it, it fails, telling me "Boot failed" immediately after
it starts the DOS Net Boot Image Loader version 0.8.1. (I'm using
mknbi 1.4.2-1.)

If I copy etherboot.nbi from a running KNOPPIX terminalserver,
it boots fine on the remote machine, but it fails to NFS mount
the root fs, because the IP address of the server is different.

Does anyone have any clue about what special magic is missing?
I've appended a copy of the script I'm using to generate the new
etherboot.nbi file. It's just a cut-down version of the code in
knoppix-terminalserver.

Thanks in advance, and here's the code:

<pre>
#!/bin/sh

NFSROOT=/opt/knoppix
LANGUAGE=en
APPEND=""
SECURE=""
KEYTABLE=""
DEVICE=eth0

IP="$(LANG=C LC_ALL=C ifconfig "$DEVICE" | awk '/[Ii]net [Aa]ddr/{FS="[:
]*"; $0=$0; print $4; exit}')"
cat >/tftpboot/knoppix/templates/syslinux.cfg <<EOT
DEFAULT vmlinuz
APPEND$SECURE nfsdir=${IP}:${NFSROOT} nodhcp lang=$LANGUAGE ramdisk_size=100000
init=/etc/init apm=power-off nomce hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi
hdf=scsi hdg=scsi hdh=scsi vga=791 initrd=miniroot.gz quiet${APPEND:+ $APPEND} B
OOT_IMAGE=knoppix
TIMEOUT 300
$KEYTABLE
PROMPT 1
DISPLAY boot.msg
LABEL knoppix
KERNEL vmlinuz
APPEND$SECURE nfsdir=${IP}:${NFSROOT} nodhcp lang=$LANGUAGE ramdisk_size=100000
init=/etc/init apm=power-off nomce hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi
hdf=scsi hdg=scsi hdh=scsi vga=791 initrd=miniroot.gz quiet${APPEND:+ $APPEND} B
OOT_IMAGE=knoppix
LABEL knoppix-txt
KERNEL vmlinuz
APPEND$SECURE nfsdir=${IP}:${NFSROOT} nodhcp lang=$LANGUAGE ramdisk_size=100000
init=/etc/init apm=power-off nomce hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi
hdf=scsi hdg=scsi hdh=scsi vga=normal initrd=miniroot.gz${APPEND:+ $APPEND} BOOT
_IMAGE=knoppix
LABEL expert
KERNEL vmlinuz
APPEND$SECURE nfsdir=${IP}:${NFSROOT} nodhcp lang=$LANGUAGE ramdisk_size=100000
init=/etc/init apm=power-off nomce hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi
hdf=scsi hdg=scsi hdh=scsi vga=791 initrd=miniroot.gz${APPEND:+ $APPEND} BOOT_IM
AGE=expert
LABEL fb1024x768
KERNEL vmlinuz
APPEND$SECURE nfsdir=${IP}:${NFSROOT} nodhcp lang=$LANGUAGE ramdisk_size=100000
init=/etc/init apm=power-off nomce hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi
hdf=scsi hdg=scsi hdh=scsi vga=791 xmodule=fbdev initrd=miniroot.gz${APPEND:+ $A
PPEND} BOOT_IMAGE=knoppix
LABEL fb800x600
KERNEL vmlinuz
APPEND$SECURE nfsdir=${IP}:${NFSROOT} nodhcp lang=$LANGUAGE ramdisk_size=100000
init=/etc/init apm=power-off nomce hda=scsi hdb=scsi hdc=scsi hdd=scsi hde=scsi
hdf=scsi hdg=scsi hdh=scsi vga=788 xmodule=fbdev initrd=miniroot.gz${APPEND:+ $A
PPEND} BOOT_IMAGE=knoppix
EOT


# Make etherboot image
rm -f /tmp/net-boot.img
drivex='drive x: file="/tmp/net-boot.img"'
( grep -v -i "drive.*x:" ~/.mtoolsrc 2>/dev/null ; echo "$drivex" ) > ~/.mtoolsr
c.new
mv -f ~/.mtoolsrc.new ~/.mtoolsrc
mformat -C -t 80 -s 36 -h 2 x:
mcopy /tftpboot/knoppix/templates/syslinux.cfg x:syslinux.cfg
mcopy /tftpboot/knoppix/current-vmlinuz /tftpboot/knoppix/current-miniroot.gz \
/tftpboot/knoppix/templates/tftpboot/* x:
syslinux /tmp/net-boot.img
mknbi-dos --rdbase=0x220000 /tmp/net-boot.img >/tftpboot/knoppix/etherboot-new.
nbi
rm -f /tmp/net-boot.img
</pre>

deathmas
01-31-2004, 06:21 AM
I really like this idea I have a slightly different problem and maybe with your input I might beable to get my problem fixed.

I am still realatively new and could use your help

OK here it is I have knoppix running and everything is great with ms TS it boots and loads no prob with my one box but I have a 3rd box wich doesn't like the kernel and I was wondering once the TS connects how can I get that specific computer to load a different kernel that will work.

I found a kernel that is suppose to boot that particular comp but I need a way to get that nic card to load that specific kernel.

I have read some of the LTSP docs on it and by editing a file I can get that kernel to load but that doesn't work because of the etherboot.nbi

Maybe you have some insight to this problem

AndersonUnifal
07-14-2007, 10:39 PM
Please..... HELP-ME!!!!! I BEG!

OpenMosix do not works anyway....??!!!??

The station starts but in the window:
"KNOPPIX TerminalServer Client started, booting in 30 seconds.
boot: (... i do wait...)
Loading vmlinuz.........................................
Boot Failded: please change disks and press a key to continue.

LOTS of Thanks,

Anderson - University of Alfenas - Brazil

*** Further Informations ***

to boot the server i use "clusterKNOPPIX_V3.6-2004-08-16-EN-cl1.iso"
and later i have installed in HD using "#knx2hd"

then i have run the "#knoppix-terminalopenmosixserver"
ipserver: 192.168.0.1

to boot my station i have created Floppy Boot Disk with
# dd if=eb-5.4.3-rtl8139.zdsk of=/dev/fd0
where "eb-5.4.3-rtl8139.zdsk" i got at http://www.rom-o-matic.org/

but when the station boots...
DHCP... ok (i got ip 192.168.0.250)
TFTP... ok (i got etherboot.nbi)
NFS ... ? (i can not download the BOOT file???)

#joe /etc/export
/diskless 192.168.0.0/255.255.255.0(ro,no_root_splash,async)

where "/diskless" is a link to /dev/cdrom
(i kept the CD in the drive)

but using the other computer with XUbuntu i can:
* get new ip by dhcp (the same 192.168.0.250)
* get file using:
# tftp 192.168.0.1
# tftp> get etherboo.nbi
* mount the CD
# mount -t nfs 192.168.0.1:/diskless /SoFarCD

what happens....?????