iPXE discussion forum

Full Version: VMware/VirtualBox is freezing when loading a kernel/initrd (linux/windows).
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi!

Using iPXE 1.0.0+ (09cc) Linux Kernel (chainloading from pxelinux.0, and I am having troubles with both VmWare and VirtualBox downloading kernels/initrds. The download process just stops at a random percentage (4/7 or just 9%)...

I have not had any problems on real hardware, just these virtual machines.
Ive tried with chain/imgfetch/modlue (no script, just commandline).

KVM on the other hand is working as it should (network setting is NAT).

Any ideas?

Torgeir
I've recently seen some hangups with VirtualBox myself, but it could be a recent bug in vbox itself. I recently upgraded to 4.2.0 from 4.1.20. Host computer is Windows 7 x64. Usually it goes away if I cold boot the VM.
Home:
On my Xubuntu 12.04 host, I upgrade to Virtualbox 4.2.0, that did not make any difference. VMWare Player 5 on the other hand, works great.

But, on my Windows 7 64bit host different HW, both Virtualbox and VMWare Player is freezing (under the same commands).

At work:
Red Hat Linux Enterprise 6.2 as host and VMWare Player is also freezing.
But Windows 7 64bit with VMWare Player 5 was working as it should...

To recreate this, I can chainload iPXE from pxelinux/or make DHCP hand out undionly.kpxe (does not make any difference).

Write:
dhcp
kernel http://some-http-server/images/pxe/linux/vmlinuz
initrd http://some-http-server/images/pxe/linux/initrd

Sometimes the kernel gets downloaded, sometimes not, can freeze on 8 percent on time, 50 percent the next time.

Is this just me?

I have tried fetching the files from different web servers (ubuntu server running apache2, FreeNAS 7.2 server running lighthttpd?).
I Have also tried Red Hat httpd (apache), same result.

The VirtualMachines has bridged network. Makes no difference when if I use WLAN/cabled network.

Torgeir
But with tftp://server-ip it works...
Why is not http working, but older and slower tftp is?

Torgeir
I would suggest you look carefully at a packet trace. Maybe you have some kind of TCP fragmentation problem that is confusing iPXE when run inside those VMs? You could also enable verbose logging in vbox and see if the log there gives any hints.
(2012-09-20 13:18)Torgeir Wrote: [ -> ]Using iPXE 1.0.0+ (09cc) Linux Kernel (chainloading from pxelinux.0, and I am having troubles with both VmWare and VirtualBox downloading kernels/initrds. The download process just stops at a random percentage (4/7 or just 9%)...

I have not had any problems on real hardware, just these virtual machines.
Ive tried with chain/imgfetch/modlue (no script, just commandline).

KVM on the other hand is working as it should (network setting is NAT).

Any ideas?

The most recent commit (http://git.ipxe.org/ipxe.git/commitdiff/0c5e3df) may have fixed this issue, if you're using an emulated Intel NIC.

Michael
Testet on one of our Vmware, and it did not work for me.
I may have 3 different versions of Vmware vSphere available. Will test on all 3, and come back with more info.
I'm running into this issue as well. I have an iPXE script like this:

Code:
#!ipxe
set mirror http://server.org
set repo ${mirror}/ks/dist/ks-rhel-x86_64-server-6-6.5
kernel ${repo}/images/pxeboot/vmlinuz ksdevice=bootif lang=  kssendmac text ks=${mirror}/cblr/svc/op/ks/system/SMBC
initrd ${repo}/images/pxeboot/initrd.img
boot

Works perfectly in a KVM/Libvirt environment I have but using the same ISO and same script on a VMware environment fails silently. It just gets stuck while fetching the initrd.img file.
TCPdump shows no errors, the conversation just stops mid-sentence. Pretty stumped here...
(2014-01-29 20:36)apitanga Wrote: [ -> ]I'm running into this issue as well. I have an iPXE script like this:

Code:
#!ipxe
set mirror http://server.org
set repo ${mirror}/ks/dist/ks-rhel-x86_64-server-6-6.5
kernel ${repo}/images/pxeboot/vmlinuz ksdevice=bootif lang=  kssendmac text ks=${mirror}/cblr/svc/op/ks/system/SMBC
initrd ${repo}/images/pxeboot/initrd.img
boot

Works perfectly in a KVM/Libvirt environment I have but using the same ISO and same script on a VMware environment fails silently. It just gets stuck while fetching the initrd.img file.
TCPdump shows no errors, the conversation just stops mid-sentence. Pretty stumped here...

Btw, ended up using tftp for vmware...
I recently ran into some issues with VMware and Virtual Box where it would get stuck when loading initrd.img. The fix for me was to switch to the virtual Intel Pro 1000/MT NIC on Virtual Box or set VMware Fusion to use the e1000 driver. For VMware Fusion, you'll have to edit the .vmx file and set:

ethernet0.virtualDev = "e1000"

See for more info:
http://kb.vmware.com/selfservice/microsi...Id=1003020

Once I did that, the hanging issue went away.
Thanks, antonym and Torgeir. I will look into what virtual NIC is in use and will also test it using TFTP instead.

Another angle I'm exploring relates to STP convergence in VMware:
http://blogs.vmware.com/vsphere/2012/10/...380g7.html
http://kb.vmware.com/selfservice/microsi...Id=1003804

I'll report back here.
Still not sure what the root cause was, but the problem does go away when using VMXNET3 virtual adapter. We're able to consistently get kernel images and build VMs on VSphere 5.0 via both TFTP and HTTP paths.

Thanks, antonym for the tip.
Reference URL's