Install RemixOS on Hyper-V virtual machine

Sometimes you just need quickly deploy Android x86 server in your production environment using Microsoft Hyper-V virtualization. Now you can do it with Remix OS.

Installation to Hyper-V virtual machine is a bit tricky, but possible.

First of all create Generation 1 VM with at least 6 Gb HDD. I’ve tested VM with 2 Gb of RAM.

After creation of VM do not power on it.

Connect created VHD disk to any windows machine (Disk Management -> Right Click -> Attach VHD)

Initialize it as MBR disk.

Format it in FAT32 file system.

Detach VHD.

Boot VM with Legacy ISO. Do not choose Resident or Guest mode

RemixOS-installboot

Press TAB button. Edit your boot string to:

/kernel initrd=initrd.img root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive quiet INSTALL=1 nomodeset vga=791

You can replace 791 with any 16bit color depth code. More codes can be found at http://pierre.baudu.in/other/grub.vga.modes.html

Chose sda1 partition

RemixOS-installdisk

Do not format it.

Chose yes for GRUB installation.

Skip EFI GRUB2 installation.

Choose yes for making system directory read-write.

Choose yes for creating user data image.

Enter size of data.img. Maximum is 2047 because we formatted our dist to FAT32 file system.

You can run you Android-x86. It’ll take a while, do not panic.

RemixOS-installfinish RemixOS-installlang

Configure it as you wish.

RemixOS-installcompleted

The last thing you need to do is eject ISO from VM and edit created GRUB entries.

Shutdown your VM and eject ISO.

Once again attach VHD to Windows machine.

Edit \grub\menu.lst

You need to delete extra digits after kernel path, for example if you used vga=791 previously you need to replace kernel791 with kernel. Also you need to add desired vga mode again. So your menu.lst should look like:

default=0
timeout=6
splashimage=/grub/android-x86.xpm.gz
root (hd0,0)

title Remix OS 2016-01-14
kernel /android-2016-01-14/kernel vga=791 quiet root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset SRC=/android-2016-01-14
initrd /android-2016-01-14/initrd.img

title Remix OS 2016-01-14 (Debug mode)
kernel /android-2016-01-14/kernel vga=791 root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset DEBUG=2 SRC=/android-2016-01-14
initrd /android-2016-01-14/initrd.img

title Remix OS 2016-01-14 (Debug nomodeset)
kernel /android-2016-01-14/kernel vga=791 nomodeset root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset DEBUG=2 SRC=/android-2016-01-14
initrd /android-2016-01-14/initrd.img

title Remix OS 2016-01-14 (Debug video=LVDS-1:d)
kernel /android-2016-01-14/kernel vga=791 video=LVDS-1:d root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset DEBUG=2 SRC=/android-2016-01-14
initrd /android-2016-01-14/initrd.img

Detach VHD and boot your VM.

RemixOS-installbooting

Happy Remix OS experience!

Update (17 Oct 2016): latest versions of RemixOS have Hyper-V support. If you have problems with mouse pointer capture in latest versions you can try following:

  1. Start Termux terminal
  2. Get root access with su command
  3. Stop Hyper-V mouse driver with rmmod hid_hyperv command

35 Replies to “Install RemixOS on Hyper-V virtual machine”

  1. Hi, thanks a lot for the info! I tried it with remix 32 bit version, but it didn’t work. 64bit did work, but the mouse is not being captured. Do you have an idea how to solve that.

    Thanks again!

    1. Hello, due to my research it is not possible to allow RemixOS to capture mouse pointer.
      Regarding 32-bit version, never tested it.

  2. Dmitry, thanks for this informative guide. This works a lot better than everything else I have seen.

    I installed the newest Beta from Remix that contains Marshmallow, 20160726. I installed this in my Hyper-V running on Windows 10, with the VHD located on my second, smaller SSD.

    I followed your instructions and they worked well, but in my VM, I removed the default network adapter and added a legacy network adapter connected to my Virtual switch, I added the Remote FX 3D Video Adapter, and use vga=792 (as 791 was too low color bit for the desktop to display correctly).

    The new Marshmallow-based OS is much smoother, and it has a lot of experimental options, including mapping to keys for movement, screen clicks, and even swiping and multi-touch. Most of the features work OOB, too.

    Thank you again, I could not gotten this working in VM using the usual suspects online – everyone had extremely simple answers, such as simply adding the vga= kernel option, or other nonsense. Your step by step approach worked perfectly.

    Cheers!

  3. Thanks for this guide.!! But I got stuck in the ANDROID _ (blink) with the following error message.

    intel_powerclamp: Intel powerclamp does not run on family 18 model 1
    intel_rapl: driver does not support CPU family 18 model 1

    I’m running this on my SAMSUNG NOTEBOOK SERIES 3 (NP305E5Z-S01N) which is powered by AMD A4.

    Is that any CPU arch problem. Do you have any advise to solve this?

    1. These messages are about power saving features and should not affect OS work. Have you double checked your boot string?

  4. I can’t seem to get this working on my Surface Book. The language selection screen is discoloured and 50% off-screen. I tried different VGA modes but the outcome is the same (I have the same problem with other approaches like installing Android x86 directly in the VM via ISO).

    Any suggestions?

    1. I have had such errors with 791 mode (16-bit colors), but after I’ve changed to 24-bit everything worked fine.

  5. I have a question.When I reboot according to you step, there is
    [ 0.334173] intel_rapl: no valid rapl domains found in package 0.
    Thank you !

    1. This message is not a real problem. This message appears on working systems as well. Which boot string do you use?

  6. Thank you for this guide. I’m trying to install it on a Xeon hyper-v server. I downloaded this version: Remix_OS_for_PC_Android_M_64bit_B2016091202. I created and formatted a 32 GB MBR FAT32 hard drive. When I booted it for the first time, the console was displayed briefly, then it started to display this message:

    NOTE: *begin / *end is to describe the text format

    *begin flashing white*
    early console in decompress_kernel
    input_data: 0x00000001d1f3b4
    input_len: 0x000000004ebd77
    output: 0x00000001000000
    output-len: 0x0000000011f9958
    run_size: 0x00000000e56000

    Decompressing Linux…. Parsing ELF…. done.
    Booting the kernel.
    *end flashing white*
    *begin black*
    [ 0.451165] intel_rapl: driver does not support CPU family 6 model 32
    Writing speed Test …
    Cannot detect the writing speed. System may fail to boot up. To continue, press Enter.
    *end black*

    Any idea on what’s causing this? Any suggestion to work around it?

    1. I got past that by quickly pressing tab. I tried vga=791 and the screen was half-width, so I tried vga-794, which worked. I got it booted, but now I see the above point about capturing the mouse. If there is no way to capture the mouse and you don’t have a touch screen, there doesn’t seem to be any way to use this, or am I missing something?

      1. There is still no way to capture mouse, but you can actually move cursor by pressing left button and moving your mouse. It is totally uncomfortable, but works.

        1. I noticed that it is possible to move the mouse by holding down the button, but it’s not usable. Too bad. I was using remote desktop. I also tried using the hyper-v manager directly. It didn’t make any difference. I sent a feature request to remix os to support hyper-v.

          Thanks for your effort.

      2. Daryl,

        Did you ever get this booted up?

        I’ve followed these directions to a T, and also variations of leaving the script the way it was, and ADDING what was missing (from Dmitry’s boot string), and am left on the RemixOS boot screen endlessly, each time.

        I’m sharing out 2 cores of an i7 for it, and giving it plenty of memory.

        Anything special you did other than the =794 to get the latest version booted up? Noting that the boot string is slightly different in the newer (and x64) version of RemixOS for sure.

        Paul

        1. I’ve got such issues when I’ve rebooted VM with Ctrl+Alt+Del, without properly shutting it down. I’ve resolved such problems with new vhd and new installation.

        1. Hallo Dmitry,
          the mouse pointer does not move. Bottom right by placing the mouse arrow icon tells me that the mouse has not been acquired.

          Another problem, do not connect to the network, so I can not run the google services.

          1. Hello, as I wrote in the post update: try stopping hid_hyperv kernel module. It should allow Hyper-V capture your pointer.

  7. This didn’t work for me. I got stuck on the “Remix OS” banner before the installation guide started. After three hours I gave it up.

    1. Sometimes I got such problem, if previously I’ve reseted VM and my FS was corrupted. Please try clean reinstallation without resetting VM or pressing Ctrl+Alt+Del.

  8. Hi, is installed, but works only in txt mode 🙁
    root@remix_x86_64:/ # uname -a
    Linux localhost 4.4.19-android-x86_64 #1 SMP PREEMPT Wed Oct 12 10:02:01 CST 2016 x86_64

    1. Hello, Semen,
      I’ve got such error when I have incorrectly prepared vhd drive for RemixOS. Please double check, that you’ve formatted it as FAT32, and disconnected from other machine.

  9. Great instructions Dmitry,

    I was installing from Remix_OS_for_PC_Android_M_64bit_B2016101201.iso and had problems booting after the configuration phase.

    Following the same instructions, up to changing the boot parameters, I had the iso create the partition and format it ext4 and install.

    Afterwards I used a Knoppix iso to edit the menu.lst just as shown above and was able to boot properly.

    Thanks for showing me the way though. Wouldn’t have been able to get to the finish without your document.

  10. Hallo,
    I have a problem when reboot after edit menu.lst. I receve this message :

    [ 0.256356] intel_rapl: no valid rapl domains found in package 0.

    ANDROID _

    stops here, the boot does not continue, the cursor flashes after ANDROID _

    This is menu.lst :

    default=0
    timeout=6
    splashimage=/grub/android-x86.xpm.gz
    root (hd0,0)

    title Remix OS 2016-10-12
    kernel /RemixOS/kernel vga=792 quiet root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset SRC=/RemixOS
    initrd /RemixOS/initrd.img

    title Remix OS 2016-10-12 (Debug mode)
    kernel /RemixOS/kernel vga=792 root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset DEBUG=2 SRC=/RemixOS
    initrd /RemixOS/initrd.img

    title Remix OS 2016-10-12 (Debug nomodeset)
    kernel /RemixOS/kernel vga=792 nomodeset root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset DEBUG=2 SRC=/RemixOS
    initrd /RemixOS/initrd.img

    title Remix OS 2016-10-12 (Debug video=LVDS-1:d)
    kernel /RemixOS/kernel vga=792 video=LVDS-1:d root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive nomodeset DEBUG=2 SRC=/RemixOS
    initrd /RemixOS/initrd.img

    There is a solution ?

    Thanks in advance

    Baldini Roberto

  11. I followed the instructions and got up to “Do you want to install Boot Loader GRUB?” and when I select yes the VM freezes. If I select skip and go through with the install it freezes at 6%. What is happening? (I am installing Remix OS 32-bit so I used “/kernel initrd=initrd.img root=/dev/ram0 androidboot.hardware=remix_x86 androidboot.selinux=permissive quiet INSTALL=1 nomodeset vga=791” for the boot string)

Leave a Reply