Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've set up an instance of Ubuntu 12.04.1 LTS under Hyper-V 2012. However it seems to be nondeterministic as to whether or not it completes the boot process.

I get a Kernel Panic, "IO-APIC + timer doesn't work!", which from my research is caused by not having integration services correctly installed?

It was my understanding that the integration services were all now baked into the kernel? It should then be fine to update the OS (including any kernel updates, as I'm guessing that's what has happened)

Being able to rely on this successfully booting would be great as I intend on using ssh for crisis situations.

share|improve this question
    
Yes, Ubuntu 12.04 LTS has built in hyper-v support and should "just work" under Hyper-V. I've run it under Hyper-V 2008 R2 for some time. Even prior to this 10.04 LTS worked fairly well. I think the factor will be elsewhere, such as hardware or driver support of hardware you're running Hyper-V 2012 on. Do all your other VMs work fine? I'm curious if you ever found the true cause ... have any other details on your setup? I just setup some test VM installs of 12.04LTS 32-bit & 64-bit under Hyper-V 2012... –  Joshua McKinnon Dec 19 '12 at 4:52
    
No I haven't found the cause yet. It's running on a i5-3470 and I believe a Asus P8B75-M. All my Windows based VMs work flawlessly (Windows Server 2012, Windows Server 2008r2 and Windows 7) –  Technicolour Dec 23 '12 at 18:48
add comment

2 Answers 2

up vote 1 down vote accepted

The easiest way to get Ubuntu 12.04 running well under Hyper-V on the 2012 platform would be to download the Windows Azure Cloud Image - unfortunately as I check today (July 10 2013) the images are not available on the Ubuntu Cloud Images image store. I've filed a question on their answers site which you can follow to see if they restore the cloud images.

That said, let's discuss why you have an issue: 12.04.2 has an older kernel without the latest Hyper-V integration (kernel modules) that were baked into 12.10 and are in 13.04 as well. The cure is to get a newer kernel. As I said earlier, the easiest way to get the right image is to get an image built for Windows Azure - the Azure public cloud and your private Hyper-V server both run essentially the same hypervisor, so any instructions applicable to Azure are applicable to you.

To run on the Azure platform, aka the 2012 Hyper-V hypervisor, Microsoft recommends under their list of endorsed distributions of Linux that you follow a number of steps to update 12.04.x distributions to use a backported kernel and kernel modules. You do not need to install the walinuxagent or reconfigure GRUB, which is only necessary for Windows Azure. The full instructions are reproduced here with the walinuxagent and GRUB instructions removed:

  1. sudo sed -i "s,archive.ubuntu.com,azure.archive.ubuntu.com,g" /etc/apt/sources.list

    This step updates the mirrors to point to an Azure hosted mirror.

  2. sudo apt-add-repository ‘http://archive.canonical.com/ubuntu precise-backports main’

    This step adds the repository needed to get the kernel and agent changes.

  3. sudo apt-get update
  4. sudo apt-get install linux-backports-modules-hv-precise-virtual

    This step adds the update kernel and associated modules.

  5. sudo apt-get install hv-kvp-daemon-init

    This step adds the updated agent.

    NOTE: I have removed the walinuxagent from this command. It is not needed for private clouds, but is for Windows Azure. This update does however install the key value pair exchange which may be used for time sync and other things, but I am not entirely certain.

  6. This step removed as it pertains to modifying GRUB to run more efficiently on Windows Azure.
  7. (recommended) sudo apt-get dist-upgrade
  8. sudo reboot

A final note: these instructions add a new repository to your Ubuntu machines and you should be aware of the effect this has. Ensure that the first command runs correctly (I have not tested it myself in the past week) to replace archive.ubuntu.com with azure.archive.ubuntu.com. I have performed these steps myself but I cannot say they will work in the future. Just be aware that the goal of the first step is to point your Ubuntu distribution to use a new set of default repositories designed to backport support for Windows Azure and the 2012 Hyper-V hypervisor.

share|improve this answer
add comment

I've just managed to install Ubuntu Server 12.04.1 under Hyper-V 2012 without problems. So, Ubuntu definitively works (with certain settings).

I used the 64 bit version and installed a "minimal virtual machine" (in the CD boot screen under "Modes").

If this doesn't work, I would guess it's some issue with your CPU.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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