Original article Source
(update 1-3-2011 This list of steps was also tested with 10.04 Desktop on Win2k8R2 non SP1) Last July, Microsoft announced the drivers for Linux source code is available in the Hyper-V virtualization environment. In practice, the 2.6.32 of the Linux kernel version now contains drivers for synthetic Hyper-V, virtual machine including the VMBus, storage, and network components. In detail, it's hv_vmbus, hv_storvsc, hv_blkvsc and hv_netvsc modules: these modules are described in this article.
Out configurations "officially supported", I tested the activation of these modules in new Ubuntu Server 10.04, provided recently with the 2.6.32 kernel. To do this I found this article which explains how to enable these modules, and which I inspire me thus far.
Enabling modules
Firstly it must ensure that the Hyper-V modules are loaded at startup. To do this, edit the file /etc/initramfs-tools/modules and add the following four lines:
hv_vmbus hv_storvsc hv_blkvsc hv_netvsc
Then, update the initramfs image:
$ sudo update-initramfs - u
Finally, configure the network by changing the/etc/network/interfaces file to configure the network interface named seth0. Indeed, a synthetic NIC would be named seth n instead of eth n for "legacy" network adapter.
For example for a DHCP configuration, add the following to /etc/network/interfaces:
Auto eth0 iface eth0 inet dhcp
or, for a static IP address:
Auto eth0 iface eth0 inet static address ip_address netmask mask Gateway adresse_passerelle
It remains only to restart, and check the proper loading of drivers using the command:
$ lsmod | grep hv_ (lower case L) in lsmod
Test procedure
For my test I used Windows Server 2008 R2 Hyper-V, and 32-bit Ubuntu Server 10.04 (ubuntu-10. 04 - server - i386 .iso).
Because I set up the VM with a synthetic network adapter, it is not detected the installation. This is not serious; it will be when it has made steps outlined previously after installation.
On this error message, choose <Continue>.
Once the virtual machine installed and started, the steps outlined above are fairly simple to implement:
After a reboot (sudo reboot), we have many assets on the network map seth0 synthetic, and other drivers loaded:
That is what servers run Linux under Hyper-V with decent performance. Have to wait for integration into the Linux kernel the next features (multi-processors, clock synchronization and stop integrated), these features are currently available in the beta integration services 2.1, SUSE Linux Enterprise Server Red Hat Enterprise Linux.
JasonA edited Revision 1. Comment: Ubuntu 10.04 Server will use eth0. Also, having "iface inet dhcp eth0" will cause Ubuntu to fail to boot.
How does this work with VLAN devices? I have Hyper-V set up with the network adapter (that the VMs use) connected to a cisco switch configured to be a VLAN trunk. I tried doing this with VLAN 2 enabled and setting the static address to 192.168.2.250 and gateway 192.168.2.1 (VLAN gateway) and rebooted but ifconfig doesn't display the new seth0 adapter at all... Any idea why?
Under Ubuntu 10.10, if I add a synthetic NIC it is appearing as eth1 instead of seth1. I am starting out with a legacy NIC and sythentic NIC during the initial install and then I remove the legacy NIC.
In Ubuntu 11.04 the network is identified as eth1 as I did the same steps as kevin.
If you install all the way with one default (synthetic) network adapter the device name is "eth0" not "seth0".
No such luck for me, I followed exactly and now it crashes on boot. Oh well, thank you for the write up, I will just setup 12.04 LTS.
I am running Server 2012 HyperV v. 6.2.9200.16384