Home > Hyper-V, Hyper-V R2, Linux, Windows 2008 R2 > Ubuntu Server 10.4 in Hyper-V

Ubuntu Server 10.4 in Hyper-V

Source

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.4, 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 seth0
iface seth0 inet dhcp

or, for a static IP address:

Auto seth0
iface seth0 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_

Test procedure

For my test I used Windows Server 2008 R2 Hyper-V, and 32-bit Ubuntu Server 10.4 (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.

Erreur : aucune carte réseau détectée

On this error message, choose <Continue>.

Once the virtual machine installed and started, the steps outlined above are fairly simple to implement:

initramfs

interfaces

After a reboot (sudo reboot), we have many assets on the network map seth0 synthetic, and other drivers loaded:

Réseau et drivers Hyper-V

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.

Advertisements
  1. Aaron West
    May 11, 2010 at 2:36 am

    That was very helpful; thanks!

    If you’re configuring for static, don’t forget to:
    echo nameserver myISPNameServerAddress >> /etc/resolv.conf

  2. Mohamed Fawzi
    May 11, 2010 at 11:29 am

    Thanks Aaron

  3. Aaron West
    May 11, 2010 at 6:14 pm

    Unfortunately, the synthetic ethernet driver apparently kept dropping the network within a minute of starting my backup to it, whether I used Samba or iSCSITarget as my destination for the backup, and I had to fall back to using the Legacy Network Adapter, which worked fine, if a bit slow. Ubuntu 10.04 x64 (desktop version), kernel 2.6.32-22.

    • JWB
      June 29, 2010 at 5:26 pm

      Hey Aaron, this happened to me as well! It totally stinks doesn’t it! Any resolution of this issue anybody??

  4. Dave
    May 17, 2010 at 7:25 am

    I’ve made these changes and things seem to work. Now I would like to add the Xen Citrus Project Satori mouse drivers. I try this but get the message “Vmbus driver not isntalled! Please install it and rerun.” but “lsmod | grep hv_” shows the module loaded just fine. Has anyone added the synthetic mouse driver successfully? Ideas? Thanks, Dave

  5. May 20, 2010 at 11:18 am

    Thank you very much. GREAT!!! 😀

  6. Graham
    June 21, 2010 at 9:41 pm

    Nice one! Works perfect following your guide 🙂
    Thanks very much indeed

  7. Mohamed Fawzi
    June 22, 2010 at 4:36 pm

    you should thank pascals not me

  8. June 30, 2010 at 7:06 am

    thanks for ur tutorial its very help me

  9. Mike Cunneen
    July 3, 2010 at 1:05 pm

    Your guide is excellent. However, your IP address config has typos in your instructions (but it is correct in your test screenshots):
    iface inet static seth0
    Should instead be:
    iface seth0 inet static

    and

    iface inet dhcp seth0
    Should instead be:
    iface seth0 inet dhcp

    Also you have some capital letters in there whereas it should all be lower-case.
    Again, your screenshots are fine so you obviously fixed this but forgot to update your most excellent and helpful guide. Thanks for writing it!

  10. Mohamed Fawzi
    July 3, 2010 at 2:00 pm

    Thanks alot for the correction, I updated the post

  11. Hans Molin
    August 11, 2010 at 1:33 pm

    Everything works for me except if I try to use Network Adapther instead of Legacy Network Adapter, Ubuntu can’t seem to find it.

    I’ve changed /etc/network/interfaces, tried both dhcp and static.

  12. August 25, 2010 at 8:27 pm

    I am trying to install latest ubuntu server on 2008 r2 hyper-v, getting no connectivity. tried redoing it several times. Same result with legacy as well as synth with method mentioned here but same result.

    Here is error i get when i start vm, any idea what it could be?

    • Banshee
      September 1, 2010 at 11:11 am

      I have the same problem and the same error. The only difference that network works OK with Legacy Network Driver but with seth0 – no results.

    • Banshee
      September 1, 2010 at 11:38 am

      Wow! Fixed the problem. It’s easy:

      on my VM network interface was eth2 instead of seth0 (check by ifconfig -a). Fixed /etc/network/networks and it is up and running (with hyper-v network adapter, not legacy)

  13. emoriver
    September 2, 2010 at 9:00 am

    Hi Mohamed, your post is very interesting and is one of the few around that treats such a hot argument…! However following exactly your instructions my Ubuntu 10.04 VM seems not to detect seth. If I do a “lsmod | grep hv_” I can see that modules are up and running as your screenshot, but the network is not detected. The VM is plugged to a virtual internal network and Hyper-V is running on a Windows Server 2008 R2 machine. Any idea…?

    Thanks

    • Marco Paolantonio
      April 9, 2011 at 9:24 pm

      Wow! Fixed the problem. It’s easy:
      on my VM network interface was eth2 instead of seth0 (check by ifconfig -a). Fixed /etc/network/networks and it is up and running (with hyper-v network adapter, not legacy)

      Check this out.. it right there in the questions of others 🙂

  14. joni
    October 8, 2010 at 7:30 am

    bolt. Doesn’t work, there is no such device writes.
    The version ubuntu same as well as at you all actions just the same as at you

  15. joni
    October 8, 2010 at 7:34 am

    sorry. All works remarkably. Only not seth0 and eth0 so at me has earned.

  16. z28pwr
    November 13, 2010 at 2:09 am

    It appears that Ubuntu has changed something since in version 10.04 the adapter came up as seth0 but now in version 10.04.1 it’s coming up as eth0.

  17. aamst
    December 22, 2010 at 9:32 am

    Thank you very much for your article. It’s working now on my test VM on Ubuntu 10.04 server. I just want to add that when you add new lines in etc/initramfs-tools/modules you should press Enter after the last line, it did not worked without it in my case.

  18. February 11, 2011 at 5:18 pm

    this worked great, thanks

  19. February 11, 2011 at 11:46 pm

    Thank you, this saved some headache

  20. mat
    March 22, 2011 at 4:21 pm

    How stable is it at load? – If it runs without die-ing network adapters and failing filesystems (controllers) – Care to tell us your server configuration?

    (We have several IBM x3650, Xeon L5420, experiencing with Ubuntu but not RHEL 5.6 or Scientific Linux 5.6)

  21. Mohamed Fawzi
    March 23, 2011 at 8:41 am

    I did not get the chance to run it in production environment, I will check with our Data Center team and get back to you. I know they have multiple Hyper-V Servers running Linux and hosting production Mega Web Sites

  22. Mohamed Fawzi
    March 23, 2011 at 11:24 am

    just checked with my team..They have 2 VMs with RHEL and they are working great

  23. Burt
    May 18, 2011 at 3:39 pm

    Just tried this on 11.4 (Natty) and bingo all working…been driving me mad since Friday. Only difference on mine is as a previous post mine wanted eth0. Thank you so much for this post 🙂

    • Rob
      June 10, 2011 at 8:57 am

      Bert, I’ve just put 11.04 on too but having problems with the synthetic nic dropping. Seems to be random times. I’ve triied to reinstall the legacy nic which gets an ip from dhcp but has no connectivity grr..

      • Thorsten
        June 27, 2011 at 10:44 pm

        Hello Rob, I have the same problem here. When I use the legacy network card, the vm guest gets an ip from dhcp and for a few seconds, I can ping the vm from the network. But then there is no connectivity to the network from the vm.
        With the synthetic nic everything works fine for a day or two. Then the network stops responding and I must reboot the vm.
        Is somebody here with the same problems and can help? With Ubuntu Server 10 I don’t have these problems, only with the current release 11.04.

  24. Paul MaC
    June 25, 2011 at 1:22 pm

    Great article.

    I’m using kernel 2.6.38 and eventually got this working.

    Instead of showing up as seth0 my nic came in as eth1. Checked “dmesg” log and it showed an entry saying that it was renaming network interface from eth0 to eth1.

    All good. 🙂

  25. Riyas
    July 1, 2011 at 4:27 pm

    Working …thanks

  26. August 1, 2011 at 12:17 pm

    Amazing help, thank you.

    For me the interface was detected as ‘eth1’ and not seth0, after amending the /etc/network/interfaces file to configure ‘eth1’ it came up first time.

    Cheers,
    James

  27. August 8, 2011 at 1:28 pm

    Hello

    Did you try to upgrade the kernel with Hyper-V drivers loaded ?
    I did not find the way to do this on my Ubuntu 10.04 LTS without corrupting my / partition.
    Is there something to deactivate before upgrading the kernel ?

    Thanx

  28. February 27, 2012 at 1:43 pm

    Thank You It works gr8 !!! 🙂

  29. July 4, 2013 at 4:48 am

    just wondering if anyone has tried this with Windows 8 Pro Hyper-V?
    the initial install works, I add the ip info and add the info to the modules file, I sudo reboot, and it looks like I get a kernel dump. wondering if anyone else has the same experience?

  30. GeorgeA
    July 27, 2015 at 2:14 pm

    Works in Win8, but had to bridge internal switch to wifi adapter with manual ip addressing, and setup a different manual ip address on linux eth1 interface that shows up ( but the same subnet ), ( different from the internal switch manual ip.

    none of the other solutions out there worked, might depend on your adapter manufacturer.

  1. May 3, 2010 at 10:27 pm
  2. May 4, 2010 at 3:32 am
  3. May 31, 2010 at 7:01 pm
  4. June 17, 2010 at 5:24 pm
  5. August 15, 2011 at 8:22 pm
  6. September 7, 2013 at 7:40 am
  7. November 12, 2015 at 6:00 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: