In this post I will be providing a precompiled Linux Kernel with the Hyper-V Synthetic Devices. This kernel was made using kernel.org sources for 2.6.32.2 and a kernel patch from linux-vserver.org vs2.3.0.36.27. I removed excess hardware support to reduce the size. Additionally I also removed support for IPv6.
For more information on Linux VServer please refer to the project page here. Linux-VServer is a container based virtualization, it is very lightweight, and since it uses a shared kernel with working Hyper-V Synthetic devices then you can run different distributions under it to access the synthetic devices.
If you would rather not have this VServer functionality please follow the compile instructions for your distribution of choice to compile the kernel.
DOWNLOAD AND INSTALL KERNEL IMAGE
# wget http://blog.allanglesit.com/downloads/linux-image-2.6.32-vs2.3.0.36.27_hv.vserver.1.2_amd64.deb
# dpkg –i linux-image-2.6.32-vs2.3.0.36.27_hv.vserver.1.2_amd64.deb
CONFIGURE MODULES TO LOAD AT BOOT
# echo –e “hv_vmbus\nhv_storvsc\nhv_blkvsc\nhv_netvsc” /etc/initramfs-tools/modules
hv_vmbus
hv_storvsc
hv_blkvsc
hv_netvsc
# update-initramfs –u –k 2.6.32-vs2.3.0.36.27
CONFIGURE NETWORKING
# nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto seth0
iface seth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
REPLACE NETWORK ADAPTER AND POWER ON GUEST
VERIFY RUNNING KERNEL
# uname –a
VERIFY LOADED MODULES
# lsmod | grep hv_
VERIFY NETWORK CONFIGURATION
# ifconfig | grep seth –C 1
VERIFY STORAGE PERFORMANCE
# dd if=/dev/zero of=/root/testfile bs=4M count=1000
INSTALL THE VSERVER TOOLS TO ACCESS VSERVER FUNCTIONALITY
# apt-get install util-vserver