[gPXE] Convert TFTP boot to gPXE
Ben Francis
wirelessben at gmail.com
Fri Aug 19 15:19:55 EDT 2011
Dimitri,
The same initrd works when I boot over TFTP using pxelinux.0, but it doesn't
work from the web directory, so I think the initrd is good. Thanks for
archlinux link.
Andrew, I tried loading the initrd first before the kernel, i.e.
gPXE> dhcp net0
DHCP (net0 mac-address).... ok
gPXE> initrd http://ip-addres/gpxe/initrd.............................................................................................................
.....................................................................................................................................................
.....................................................................................................................................................
.......................(20 lines of this)
is the result for about ten minutes now. Same problem.
The initrd IS a huge file at 143MB, but my network downloads that size file
over tftp in about a minute. gPXE was loading the 1.4 MB vmlinuz file in one
second, so it seems gPXE knows how to download a file quickly.
Can the initrd command take parameters like a bigger blocksize, say 4096?
Ben
On Fri, Aug 19, 2011 at 6:08 PM, DiP <aspamkiller at yandex.ru> wrote:
> 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)<http://192.168.0.0/24%28rw,fsid=0,no_root_squash,no_subtree_check,async%29>
>
> 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 <wirelessben at 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 at etherboot.org
> http://etherboot.org/mailman/listinfo/gpxe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://etherboot.org/pipermail/gpxe/attachments/20110819/17f1dd6a/attachment.html>
More information about the gPXE
mailing list