Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I installed Debian with kernel 2.6.32-5-686 on a Hyper-V virtual machine. I had to add a legacy network card. I follow this tutorial to add Hyper-V driver but when I reboot with the new kernel i got this error:

BLKVSC_DRV: blkvsc_probe() ERROR!! register_blkdev() failed! ret -16

And at the very first boot log (that i can not copy because i did not find it in dmesg or boot log) i see a mount /dev error.

Thank you.

share|improve this question
What version of Debian are you running? That blog talks about a newer kernel than you mention; is there a particular reason? What do you mean by "crash"? Error messages? – Chris S Aug 28 '12 at 15:18
Debian GNU/Linux 6.0.5 (squeeze). I tried to recompile the kernel v. 2.6.36 as the blog said, but i did not unserstand why that version. During bootup I saw a list of number as matrix ex.[15 12 35 94 86] and after a few it freeze... – Tobia Aug 29 '12 at 6:35
I edited the topic because using a compile deb package i solve that boot freeze, however i still have some error... – Tobia Aug 29 '12 at 8:09
up vote 5 down vote accepted

Stay away from any in-kernel Hyper-V drivers based on anything let's around say 3.0, since early version were considered staging and were sometimes utterly unstable.

Hyper-V drivers got fully integrated upstream (moved out of staging) with 3.4. While Debian Wheezy (7.0) will be based on 3.2, it will contain a backport from Kernel 3.4, I'm using it here.

Thus said for squeeze: Install with legacy NIC and IDE only drives, then get the Wheezy kernel from squeeze-backports and reboot. Then you'll be able to use paravirt NIC, SCSI disks, additionally you'll get mouse integration and support for more than 1 vCPU.

share|improve this answer
Thank you very much, can you be a little more verbose about "then get the Wheezy kernel from squeeze-backports and reboot"? – Tobia Sep 11 '12 at 7:11
In corner cases like this I usually just fetch the latest kernel from and recompile it in the Debian Way™. For example, one of the backup servers I need to keep my eye on was very unreliable with Debian Squeeze default kernel; iSCSI support is a bit flaky on that one. I compiled my own kernel 3.x, now the server uptime is about one year, no problems whatsoever. – Janne Pikkarainen Oct 11 '12 at 15:37
@Tobia that might be good fodder for a separate follow-up question – Joel Coel Oct 11 '12 at 15:38

Debian Wheezy (7.0) contains a backport Hyper-V drivers from Kernel 3.4

But the Hyper-V kernel modules, at minimum:

  • hv_vmbus
  • hv_utils
  • hv_storvsc
  • hv_netvsc

are missing in the installer image of Debian Wheezy created before 2012-11-13


You need use .iso created after 2012-11-14, or the .iso by Arnaud Patard

See details here.

share|improve this answer

Check this out: the kernels there have the storvsc ata_piix fix ;)

share|improve this answer
Seems good, but is there also i386 version? – Tobia Oct 12 '12 at 6:36

Here is how to install Debian 7 (wheezy) on hyper-V. Currently, the netinst image doesn't contains the hyper-v drivers. (tested with netinst beta 2). You may replace your network card by a legacy network card, but it won't be enough since the debian Netinst does not detect the disk, so you can't install anything.

The solution I use is to download the Debian 6 netinst "business card". Add a "legacy network card", and boot on the install disc.

When netinst ask you for the hostname for your new system, switch to another console (Alt-F2) and type

echo wheezy > /etc/default-release

Then return to the first console (Alt-F1) and proceed. At the end of the installation, you will have a working Debian 7 (Wheezy), with modern kernel that support Hyper-V. So you may remove the legacy network card and use the native driver for network and disk.

share|improve this answer
By now this issue with thet netboot ISO has been resolved, you can now yank in the latest daily builds (and thus likely the final builds once it's you) and have working storage without additionaly hacking. – nokofi Mar 14 '13 at 12:31

With Debian jessie the hyper-v stuff is no more a problem, the modules are already integrated and are stable. You need only to compile and install the hyper-v tools (kvp and vss), I found this howto: and all will be fine ;)

share|improve this answer

If you are running Debian 6.0 (Squeeze), You can upgrade to 7.0 (Wheezy), it’s so simple:
just answer Y every time.
apt-get update
apt-get upgrade
nano /etc/apt/sources.list replace every squeeze with wheezy, ctrl+x, Y,enter.
apt-get update
apt-get upgrade
apt-get dist-upgrade
your new kernel will be selected, login, then you can “lsmod | grep hv” and see the hyper-v modules loaded (hv_vmbus, hv_netvsc, hv_blkvsc, hv_storvsc), connect your non-legacy network adapter and do “ip show link” then you’ll see it (you can be sure by checking the MAC).
But why stay there?, now you can go to Debian 8.2 (jessie) by following the same instructions but this time use “jessie” on your sourcelist.
I wasn’t able to go directly from 6 to 8.
If you have trouble with “public key is not available” then follow instructions from here.

Sometimes running on Hyper-v it throws two errors:
Error: Driver ‘pcspkr’ is already registered
SMBus base address uninitialized – upgrade bios or use force_addr=0xaddr

to get rid of those errors just blacklist two modules by:
echo ‘blacklist pcspkr’ >> /etc/modprobe.d/fbdev-blacklist.conf
echo ‘blacklist i2c_piix4’ >> /etc/modprobe.d/fbdev-blacklist.conf
then do:
update-initramfs -u


share|improve this answer

Your Answer


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.