I have installed CentOS 6.0 on Hyper-V Server 2008 R2 SP1. VM has only synthetic network adapter enabled. Installation was successfull (without any network), then I installed Linux Integration Services 3.1 from ISO, everything OK too. Now all Hyper-V modules are installed (including hv_netvsc), but there is no network adapter detected.

Running dmesg | grep eth returns message "Dropping NETIF_F_SG since no checksum feature." Reserching on internet shows that checksum seems to be some critical feature without which CentOS cannot use the network adapter and which is apparently not implemented by Microsoft's LIS3.1 module.

Is there anything I can do to use synthetic network adapter in CentOS? Or have I done something wrong and it should work as it is? Does synthetic adapter capabilities depend on hardware ethernet card used in the host machine? CentOS kernel version seems to be 2.6.32-71.el6.x86_64, hypervisor is R2 SP1 with all updates installed.

Second question in case the answer for the first is "no, it won't work": Is there a large performance penalty in using emulated (legacy) network driver? Is it something that should be avoided in production environment?


In case somebody else is having the same problem, here is the solution: the adapter has to be configured manually by adding files /etc/sysconfig/network-scripts/ifcfg-eth0 and /etc/sysconfig/networking/profiles/default/ifcfg-eth0 after successful installation of LIS3.

The steps that worked for me:

  • create virtual machine with both network adapter and legacy network adapter
  • install CentOS 6 and Linux Integration Services 3.1
  • create /etc/sysconfig/network-scripts/ifcfg-eth1 and /etc/sysconfig/networking/profiles/default/ifcfg-eth1 files
  • reboot and check whether both network interfaces are up
  • remove ifcft-eth0 and rename ifcfg-eth1 to ifcfg-eth0 at both places
  • turn off, remove legacy adapter in hyper-v machine properties and turn on

The sources where I have found the most useful info:



Please assign static MAC address in your hyper-v settings. The MAC should be same as in your linux VM. You can find in MAC address in /etc/sysconfig/network-scripts/ifcfg-eth0.


Googled for 'why is ethernet port on eth1 and not eth0 for Hyper-v 2012'?

Delete the existing UDEV rules for NICs. If you add / change the NIC, the udev rules detect a new device and assign it a different interface name. For instructions, see Renumber ethernet interface on CentOS Linux to eth0 or Force CentOS 6 to Re-Detect Network Devices

How would this happne? When a VM is cloned. E.g. you take a machine with the NIC was at eth0, clone the image, and create a new VM for the image with a different MAC address. The NIC will be eth1 and not eth0.

Other assumptions? I tested this using Hyper-V 2012, CentOS6.3 x64, and Microsoft Linux Integration Services 3.4

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.