Running Debian in Windows Server's Hyper-V
This page explain how to use Debian under Microsoft Hyper-V (Windows Server 2008).
Microsoft Virtual PC is a non-free (proprietary) software. It isn't supported by Debian. It's probably wiser to use a free [:SystemVirtualization:Virtualization] tool.
Boot Standard Kernel:
LAN network card:
Detect hard drives:
- Passing vga=XXX may cause some problem when you switch from X11 to console.
The display is drawn very slowly during the installation (under Lenny, for newt only, not for installgui). But the installation process itself isn't longer
There is a [#step-by-step-installation step by step guide] below, but here are the compatibility notes.
None required, currently
The emulated device is a "Digital Equipment Corporation DECchip 21140 [FasterNet]" PCI id:1011:0009.
The device (or driver) has no link detection. So network-manager will show an unplugged device. Even though it's working ! (known upstream by Gnome as bug [http://bugzilla.gnome.org/show_bug.cgi?id=418745 #418745]). ?BR If you lose Network connection then left click on the nm-applet then click on "Wired Network" :
The mouse is working well. (the scroll button doesn't).
However, you can't use use the mouse inside your machine if you connect to the server using RDP, unless you install the Integration services... Which can't be downloaded for free, you need to pay for extra support. (The error message says "Mouse not captured in Remote Desktop session"). It looks like :
- Microsoft only wants you to used blessed guest operating systems (like Windows and Suse)
- Microsoft wants you to use their Hyper-V Management console (only available under Windows !) inline:no-mouse.gif
Display Adapter / Video
The Xorg server uses vesa driver (since Microsoft has developed a weird proprietary device [#pci-1414-5353 PCI:1414:5353]).
It works quite well under both Etch and Lenny (Xorg 7.3). However:
- Using xrandr causes the Xserver to restart.
- vga= works, but you can't switch between X11 and the console (it causes the system to crash).
- Under Lenny, the Emulated screen always pretend to be 1600x1200... which is anoying if you have a smaller screen (you can force it in attachment:xorg-lenny.conf.txt )
Hyper-V doesn't seems to provide audio emulation, at all.
- (not covered... use Hyper-V's suspend feature.)
Step by Step Installation
Download Debian ISO image
Pick the Installation that best fits you needs, from [http://www.debian.org/CD/]. I've picked the NetInst CD (at the time of writing, [http://cdimage.debian.org/debian-cd/4.0_r3/i386/iso-cd/debian-40r3-i386-netinst.iso debian-40r3-i386-netinst.iso]).
Create the VM
. If you haven't installed Hyper-V, check [#install-hyperv Installing Hyper-V] below.
Launch "Microsoft Virtual PC" in Start Menu > Administrative Tools > Hyper-V Manager.
- The first time you run Hyper-V, you need to accept their specific attachment:EULA.txt: inline:EULA.gif inline:Hyper-V_Console.gif
- Select the your server (on the left pane)
Go to Menu > Action > New > Virtual Machine. inline:wizard_1.gif
- Choose a name for your Virual Machine inline:wizard2_name.gif
- Select the amount or RAM for the Vritual Machine (128Mb is enough for text only. 512Mb is recommended for GUI/Desktop). inline:wizard3_ram.gif
Select the Network you have created during Hyper-V initial configuration (If the drop down menu is empty, clse the wizard, and go to Menu > Action > Virtual Network Manager). inline:wizard4_net.gif
- Select a name and location for the disk image. You can change the maximum disk space allocated, but it isn't important since the space is allocated as needed. (Don't go below 6Gb unless you know exaclty what your are doing, not to shoot a bullet in your own foot). inline:wizard5_hd.gif
- You can select the installation media for your VM inline:wizard6a_install_from_iso.gif
- Review the summary, and click ok (or back ;). inline:wizard7a_summary.gif
Enabling networking requires two steps:
- Add a virtual switch
Add a (so called) Legacy Network Adapter (The other one, named Network Adapter requires to install Microsoft's Integration services).
Add Virtual Network
If you don't have one yet, you have to add a virtual network (a kind of virtual switch).
In "Hyper-V Manager", go to menu Action > Virtual Network Manager.
- Select "External" network, then click on "Add". inline:virtual-network_1-add.gif
Give it a name, like My Virtual Network. Then select the pyhsical network interface that it should be connected to (i.e bridged). inline:virtual-network_2-property.gif
Add a Network Adapter
The installation wizard don't offer to a a network installation, so you have to add it manually :
- Select your on Virtual machine in "Hyper-V Manager", then select Settings.
- On the left panel, select "Add Hardware"
Select Legacy Network Adapter. inline:property_add-legacy-nework_1.gif
Then select the virtual network (i.e switch) to which the adapter should be connected. inline:property_add-legacy-nework_2-bind.gif
If you are reading this page, you probably already have Hyper-V installed ! for the other, you should follow Microsoft's instructions :
How to Install Windows Server 2008 Hyper-V ?BR ~-[http://www.microsoft.com/windowsserver2008/en/us/hyperv-install.aspx]-~
Microsoft has already provided an update. Apparently, you must install it to have a supported Hyper-V installation ([http://www.microsoft.com/downloads/details.aspx?FamilyID=F3AB3D4B-63C8-4424-A738-BADED34D24ED&displaylang=en Update for Windows Server 2008 x64 Edition (KB950050)])
Note that for some odd reasons, Microsoft doesn't provides a version of Hyper-V under 32bit platform (even though it [http://www.microsoft.com/windowsserver2008/en/us/scalability-ent.aspx can use 64Gb of RAM]).
That's It !
$lspci -nn 00:00.0 Host bridge : Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled) [8086:7192] (rev 03) 00:07.0 ISA bridge : Intel Corporation 82371AB/EB/MB PIIX4 ISA [8086:7110] (rev 01) 00:07.1 IDE interface : Intel Corporation 82371AB/EB/MB PIIX4 IDE [8086:7111] (rev 01) 00:07.3 Bridge : Intel Corporation 82371AB/EB/MB PIIX4 ACPI [8086:7113] (rev 02) 00:08.0 VGA compatible controller : Microsoft Corporation Unknown device [1414:5353] 00:0a.0 Ethernet controller : Digital Equipment Corporation DECchip 21140 [FasterNet] [1011:0009] (rev 20)
PCI 1414:5353 VGA device
Here's are two quotes from Microsoft Integration Service's s3cap.inf regarding the device 1414:5353 :
This is the INF file for installing the Hyper-V VGA Cap driver
Microsoft Emulated S3 Device Cap.
and a compulsory lspci -d 1414:5353 -vvv output :
00:08.0 VGA compatible controller: Microsoft Corporation Unknown device 5353 (prog-if 00 [VGA]) Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Region 0: Memory at f8000000 (32-bit, non-prefetchable) [size=64M]
You can also have a look at attachment:Xorg-lenny.log.txt .
- Microsoft Hyper-V front pages
Commercial Product page ?BR ~-[http://www.microsoft.com/windowsserver2008/en/us/virtualization-consolidation.aspx]-~
[wiki:qemu Qemu]'s qemu-img can convert [http://www.microsoft.com/technet/virtualserver/downloads/vhdspec.mspx vhd] images.