I’ve been running CentOS on VMware ESXi 5 hosts for quite some time without any problems. However, after updating CentOS 6.2 to CentOS 6.3 (using the trusty-old ‘yum update’) I found myself presented with the following problem after guest OS reboot:
Bringing up interface eth0: eth0: vmxnet_init_ring alloc_page failed.
RTNETLINK answers: cannot allocate memory
This error is typical for driver issues, so I quickly knew where to look.
Fixing the “vmxnet_init_ring alloc_page failed” error
The problem has to do with the driver for the virtual networking card, provider by VMware ESXi. By default, the networking card is configured with ‘Adapter Type’: Flexible. This setting worked fine up to CentOS 6.2, but due to some changes in CentOS 6.3 the networking driver is no longer compatible with this setting. To fix this problem, simply follow the following steps:
- Edit the virtual machine settings
- Remove the old network card
- Add a new network card and instead of ‘Flexible’ choose ‘VMXNET3′ for the ‘Adapter Type’-option.
- Reboot the virtual machine (CentOS guest OS)

Renumber the ethernet interfaces in CentOS
After the virtual machine is rebooted you will find that your networking card has been named ‘eth1′. This is because you have ‘inserted’ a new networking card, according to CentOS. To fix this, simply follow the steps described in the Renumber ethernet interface on CentOS Linux to eth0 post.
Related posts: