Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
iPXE NetBooting Ubuntu 14.04.3 LTS
2016-02-05, 17:53
Post: #1
iPXE NetBooting Ubuntu 14.04.3 LTS
I'm having a really hard time getting iPXE to work with linux. I've been doing PXE for a long time and have had no problems getting that to work with linux. I love the features of iPXE though and I'm trying to convert my entire PXE environment to iPXE. Rather than burn ROMs etc, I've just set up my DHCP server to pass the undionly.kpxe loader, so technically i'm chaining from PXE to iPXE.

One of the things I put into my configuration was a hook to chain back over to my old PXE configuration so I can boot things in transition. My unbuntu live cd environment is working great there. Here's my stanza in PXE, whic owrks perfectly.

LABEL Ubuntu14043-64
MENU LABEL ^1 - Ubuntu 14.04.3 Desktop (Live,64-bit)
KERNEL /linsetup/ubuntu/14043dx64/casper/vmlinuz.efi
APPEND boot=casper netboot=nfs nfsroot=192.168.15.25:/pxe/linsetup/ubuntu/14043dx64 initrd=/linsetup/ubuntu/14043dx64/casper/initrd.lz ipv6.disable=1 hostname=ubuntu64

Now, here's my corresponding iPXE setup:

set ns 192.168.15.25
set np /pxe/linsetup/ubuntu/14043dx64
set args boot=casper netboot=nfs nfsroot=${ns}:${np} ipv6.disable=1 hostname=ubuntu64
initrd nfs://${ns}:${np}/casper/initrd.lz || goto doError
kernel nfs://${ns}:${np}/casper/vmlinuz.efi ${args} || goto doError
boot

This does not work. It loads the vmlinuz.efi and initrd.lz just fine; during debugging I inserted "imgstat" and "prompt key" before the boot so I could check that the parameters were correct. Boot starts and a few seconds later I get a kernel panic VFS: Unable to mount root fs on unknown block(0,0)

I have read literally dozens of articles all around the web on this, including the app note (http://ipxe.org/appnote/ubuntu_live) and it seems that I'm doing everything right.

I've fiddled with the boot params quite a bit and found:
  1. Adding root=/dev/nfs doesn't help, and shouldn't be required in this version of ubuntu
  2. adding ip=dhcp does seem to get a bit further - it at least seems to attempt to load the network before the kernel panic
  3. adding "ro" doesn't help.
  4. adding -- to the end of the arguments doesn't help.

Anyone got any working examples with 14.04.x and a current build of ipxe? I actually started this with a 14.04.1 CD and updated to 14.04.3 hoping that would fix it but no luck.

Thanks in advance!
Find all posts by this user
Quote this message in a reply
2016-02-06, 12:54
Post: #2
RE: iPXE NetBooting Ubuntu 14.04.3 LTS
(2016-02-05 17:53)brownmit Wrote:  set ns 192.168.15.25
set np /pxe/linsetup/ubuntu/14043dx64
set args boot=casper netboot=nfs nfsroot=${ns}:${np} ipv6.disable=1 hostname=ubuntu64
initrd nfs://${ns}:${np}/casper/initrd.lz || goto doError
kernel nfs://${ns}:${np}/casper/vmlinuz.efi ${args} || goto doError
boot

Quick check: is this a BIOS boot or a UEFI boot? (I'm guessing BIOS given the "undionly.kpxe", but you then mention "vmlinuz.efi".) If it's UEFI then you need to add "initrd=initrd.lz" to the kernel arguments. You can add this extra argument anyway; it's harmless for a BIOS boot and means that the same iPXE script should then work for both BIOS and UEFI.

Quote:This does not work. It loads the vmlinuz.efi and initrd.lz just fine; during debugging I inserted "imgstat" and "prompt key" before the boot so I could check that the parameters were correct. Boot starts and a few seconds later I get a kernel panic VFS: Unable to mount root fs on unknown block(0,0)

Is the problem that the kernel is failing to find the initrd, or that the initrd is failing to mount the NFS root filesystem? If you're not sure, paste a copy of the boot output here.

Michael
Visit this user's website Find all posts by this user
Quote this message in a reply
2016-02-06, 19:30
Post: #3
RE: iPXE NetBooting Ubuntu 14.04.3 LTS [SOLVED]
Michael, thanks for the notes.

FYI, this is not UEFI; I really don't know why but the ubuntu 64 bit distributions for quite some time now are using the filename vmlinuz.efi regardless, and whatever it is works fine with both BIOS and UEFI.

So, I solved the problem, it was ridiculously simple yet obscure. I remembered reading somewhere that sometimes the load order between kernel and initrd is important, and while that wasn't the issue, it caused me to look carefully at the image load stack.

I had recently "optimized" my ipxe script to be more efficient managing the use of a background image for my menu; in my case it is titled widescreen.png. I switched to using the console option -keep to keep it in memory so on future console setup calls I wouldn't be reloading the image from my server.

It turns out keeping that in memory was the problem. It was the first thing loaded in memory so when booting, it was evidently being interpreted by the linux kernels as part of the initrd, causing unpacking of the initrd to fail. This effect did NOT happen with my winboot based configurations.

After redoing my console commands to remove the -keep and just load the image from my tftp server each time, and I threw in an imgfree before the image loads, and everything has been working perfectly since.
Find all posts by this user
Quote this message in a reply
2019-05-26, 12:18
Post: #4
RE: iPXE NetBooting Ubuntu 14.04.3 LTS
Hello,
I have exactly the same problem. I know the subject is old but I really need help.
Brownmit, I did not really understand your solution. What is your script in the end?
Thanks
Find all posts by this user
Quote this message in a reply
2019-05-26, 18:23 (This post was last modified: 2019-05-26 18:26 by NiKiZe.)
Post: #5
RE: iPXE NetBooting Ubuntu 14.04.3 LTS
(2019-05-26 12:18)bluedark Wrote:  I have exactly the same problem. I know the subject is old but I really need help.
Brownmit, I did not really understand your solution. What is your script in the end?

What is exactly is that problem (error messages or similar), just to be clear since there is so much going on in OP

And what is your current iPXE script?

and if you add : imgstat && shell before your boot line, which files are then listed? (is there anything there not relevant for the ubuntu boot)

Use GitHub Discussions
VRAM bin
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 2 Guest(s)