I think you have to check your initrd.
For me wiki.archlinux.org directions have been very usefull in that way.
Look at the "Network boot NFS root" article.
I hope my working configuration will be usefull for you:

dd if=/srv/mixer/boot/gpxe-1.0.1-gpxe.usb of=/dev/<flash_card>

for booting client from that flashcard (I use it for clients that cannot boot 
from network)

dhcpd.conf

allow booting;
allow bootp;
group{
        option domain-name "home";
        option domain-name-servers 192.168.0.254;
        server-name "server.home";
        next-server 192.168.0.254;
        if exists dhcp-parameter-request-list {
                option dhcp-parameter-request-list = concat(option
                dhcp-parameter-request-list,d0,d1,d2,d3); }
        host mixer {
                hardware ethernet 00:30:4f:12:d9:a6;
                fixed-address 192.168.0.51;
                option routers 192.168.0.254;
                site-option-space "pxelinux";
                option pxelinux.magic f1:00:74:7e;
                option pxelinux.configfile "pxelinux.cfg/default";
                option pxelinux.pathprefix "http://server.home/";;
                filename "http://server.home/boot.txt";;
        }
}

/srv/mixer/boot/boot.txt

#!gpxe
echo Greetings!
kernel http://server.home/vmlinuz-linux  rootfstype=nfs root=/dev/nfs 
nfsroot=192.168.0.254:/srv/mixer,v3,rsize=16384,wsize=16384 ip=::::::dhcp
initrd http://server.home/initramfs-linux.img boot

/etc/exports

/srv/mixer 192.168.0.0/24(rw,fsid=0,no_root_squash,no_subtree_check,async)

and I have working archlinux installation in /srv/mixer/

from nginx.conf

    server {
      listen 192.168.0.254;
      server_name server.home;
      charset utf-8;
      access_log logs/tftp.access.log;
      root /srv/mixer/boot;
      autoindex on;
    }


If you want to boot your client from the standard network card ROM you have to 
change

        filename "http://server.home/boot.txt";;
        to
        filename "http://server.home/gpxelinux.0";;
so the BIOS of the card will boot gpxelinux, who will get paramethers from 
pxelinux.cfg/default where contents is:

default linux
label linux
kernel http://server.home/vmlinuz-linux
append initrd=http://server.home/initramfs-linux.img rootfstype=nfs 
root=/dev/nfs nfsroot=192.168.0.254:/srv/mixer,v3,rsize=16384,wsize=16384 
ip=::::::dhcp

I placed all those files and dirs, eg pxelinux.cfg/ boot.txt gpxelinux.0 in the 
/srv/mixer/boot folder.

//Dimitri

On Fri, 19 Aug 2011 15:30:40 +0000
Ben Francis <wireless...@gmail.com> wrote:

> I have a netboot system that works over TFTP.  It consists of vmlinuz and
> initrd.
> 
> I want to convert it to gPXE so it will boot across subnets.
> 
> So I put the files on a web server and tried to test from the gPXE command
> line:
> 
> *gPXE> kernel http://ip-address/gpxe/vmlinuz
> *
> That command works. However,
> 
> *gPXE> initrd http://ip-address/gpxe/initrd
> *
> just slowly fills up the screen with periods. I tried using the
> *append *command
> from the working pxelinux setup:
> 
> *append ramdisk_blocksize=4096 initrd=/gpxe/initrd root=/dev/ram0
> ramdisk_size=144000000 console=ttyS3 splash=silent vga=791
> *
> but gpxe doesn't have append.
> 
> The initrd is about 143MB.
> 
> What to do?
> 
> Ben
_______________________________________________
gPXE mailing list
gPXE@etherboot.org
http://etherboot.org/mailman/listinfo/gpxe

Reply via email to