For hosters who use Windows Azure Pack along with System Center VMM 2012 R2, they might find that sometimes they need to support a XYZ Linux distribution for their customers. However they’ll quickly find they can’t get that distribution to display correctly on the Azure Portal as the only option to choose is “Other Linux”. Here’s a SQL query that anybody can use to inject a custom Operating System into VMM’s database:
INSERT INTO [dbo].[tbl_IL_OS]
('EBAB54C0-A9FA-4A3F-A21C-94775B96A6E5' /* Generate UUID */
,'Debian GNU/Linux 6 (64-bit)' /* Limited to 64 Chars */
,'Debian GNU/Linux 6 (64-bit)' /* Longer description of Linux Distro */
,'amd64' /* Use x86 for i386, amd64 for x86_64 */
,'28' /* This remains constant */
,'otherLinux64Guest' /* This is meant for VMware, go lookup the VMX spec files for this value */
,'1') /* Leave this at one, that's what the other OSes looked like */
If you installed VMM 2012 R2 with a different SQL database name, adjust the USE statement accordingly.
To make your Linux Template deployments easier, you now have the option of using the Windows Azure Linux Agent in place of the regular SCVMM Linux Agent.
However, please do not install both agents on your Linux template. Installing both of them can cause things to go awry, so you have been warned…
Recently Microsoft announced Generation 2 Virtual Machines which really is an UEFI guest without the emulated PCI bus. Initially the only supported Operating Systems were:
- Windows 8 (Integration Services Update Required)
- Windows 8.1
- Windows Server 2012 (Integration Services Update Required)
- Windows Server 2012 R2
Well, now you can add pretty much any Linux distribution to the list right now. Thanks to the hard work being done by the Linux Integration Services team, they’ve got the mainline Linux kernel working right on Hyper-V under a Generation 2 platform. However the only distribution that will install correctly inside a Generation 2 Virtual Machine is OpenSuSE 13.1.
However if you want your Linux distribution to run inside a Generation 2 VM right now, you’ll have to install it manually via debootstrap or something similar. One thing to keep min mind is if your kernel is older than 3.11, you’ll need to either backport specific changes or upgrade to a newer mainline version of the kernel before you can even proceed to install your favorite distribution inside a generation 2 virtual machine.
Integration components wise, most of the modules will load just fine except hyperv_fb, the framebuffer device driver for Hyper-V guests. Unfortunately hyperv_fb is broken under a generation 2 VM hence why you’ll need to have EFI framebuffer support compiled in your kernel or you won’t get any video at all! The same goes for GRUB, it’ll also need efi_uga and efi_gop modules built in your bootx64.efi GRUB image. And oh, did I forget to mention that you’ll also have to disable Secure Boot as Hyper-V doesn’t support any way to loading public certificates into the Secure Boot database?
So if you want to take the plunge on having a Linux Generation 2 VM, be my guest. Start reading those git commit logs and start cherry picking! Remember, your mileage may vary. 😉