[syslinux] run pxelinux.0 on a booted system

Carl Karsten carl at personnelware.com
Tue Nov 7 22:31:35 PST 2006


I am trying to come up with a 'clever' way to pxe-boot boxes that don't have any 
way to pxe boot.  as in, old laptops that only have pc-mica nics.

"Etherboot does not (yet) offer support for PCMCIA cards." 
http://www.etherboot.org/wiki/pcmcia_support

I am not trying to do 'that' - just trying to come up with a process to work 
around it.  Something like this:

Boot a Live CD.  (eventually one I customize with a nifty script to do all of 
this)  Now I have support for my pcmica nic.

Now do the part that PXE would do:

dhcpclint, get an IP, netmask etc.
and a file name (pxelinux.0) and maybe a server name.

use tftp client to get that file:
juser at v550b:~$ tftp shaz
tftp> get pxelinux.0

run it.

That should turn around and
ftp> get pxelinux.cfg/default

and give ma a boot:
which will let me select:

label ubuntu-edgy-alternate-hands-off
         kernel ubuntu/edgy/alternate/install/netboot/ubuntu-installer/i386/linux
         append initrd=sc/e-a/initrd.gz ramdisk_size=16503 root=/dev/rd/0 rw 
locale=en_US console-setup/layoutcode=us netcfg/wireless_wep= 
netcfg/get_hostname= DEBCONF_DEBUG=5 preseed/url=http://shaz/preseed-edgy-alt.cfg --

And so this will happen

tftp> get ubuntu/edgy/alternate/install/netboot/ubuntu-installer/i386/linux
tftp> get sc/e-a/initrd.gz

and then this linux would be run from the local HD's fs (ramdisk fs really), and 
somehow it would load initrd.gz and get all those other parameters.

I am skipping the dhcp step for now, cuz that may be pointless if I can't get 
this to work:

juser at v550b:~$ chmod a+x pxelinux.0
juser at v550b:~$ ./pxelinux.0
-bash: ./pxelinux.0: cannot execute binary file
juser at v550b:~$ sudo ./pxelinux.0
./pxelinux.0: 1: Syntax error: "&" unexpected (expecting ")")

Ok, come to think of it, that won't work.  it isn't an elf binary with the 
needed headers and all.  guessing it wants the CPU in real mode.  hmm, don't 
know what it is, so lets try some other stabs:

juser at v550b:~$ sudo grub
grub> root=(hd0,0)
grub> kernel /home/juser/pxelinux.0
Error 13: Invalid or unsupported executable format

and just in case you are wondering (like I was)

grub> chainloader /home/juser/pxelinux.0
Error 13: Invalid or unsupported executable format

grub> root=(hd0,0)
grub> kernel /home/juser/linux
grub> initrd /home/juser/initrd.gz
Error 16: Inconsistent filesystem structure

huh?

I am hoping that once I can get pxelinux.0 to run, the rest will just happen as 
if it had pxe booted over a supported nic.

I realize I am trying to step all over a running OS, and OS's normally don't 
like that.  So yes, I am braving new territory.

Carl K




More information about the Syslinux mailing list