Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


Install Windows on any Wholesaleinternet preconfigured server using QEMU-KVM
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Install Windows on any Wholesaleinternet preconfigured server using QEMU-KVM

edanedan Member
edited April 2016 in Tutorials

WSI has Core2Duo box @ $10/month and they don't provide KVM services for their preconfigured server.

Preconfigured Servers Cannot be Modified: Our preconfigured servers are designed for quick deployment. Preconfigured servers hardware (CPU/RAM/HDD) or bandwidth cannot be added or modified. Operating system options for preconfigured systems are limited to available selections on order form. KVM services are not provided for preconfigured servers.

But WSI provide SystemRescueCD and we can install Windows or any other OS using QEMU but w/o KVM support. The Sysrcd lack of KVM module and it can only install 32 Bit OS (tested on WSI). Such a waste if we snap a preconfigured servers with more than 4GB RAM.

Previously I've asked them via their ticket system to add Grml https://grml.org/ (because of KVM module already enabled) and finally now they add it on their reload OS options, nice!

Start the Windows installation on WSI

First reload the OS and choose Grml. Open the SSH console using the password provided.

# CAREFULL Wipe your hard disks. Let say we want to install the Windows in /dev/sda

dd if=/dev/zero of=/dev/sda bs=1M count=1
partprobe

If you need temporary folder for the ISO. Need big RAM on this case. Depend on the ISO size.

mount -t tmpfs -o size=4000m tmpfs /mnt

Or if we have RAM less than 8GB we just need to creating small partition, put the ISO file there and don't touch it during Windows installations.

Note: My WSI $10 box have second HDD so just I put my ISO inside it.

Download the ISO to /mnt folder:

wget -P /mnt http://example.com/win8-64.iso

Download and extract the portable qemu-kvm. /tmp folder is enough for this portable qemu-kvm.

wget -qO- /tmp http://notfor.pro/content/files/vkvm.tar.gz | tar xvz -C /tmp

Excute the qemu-kvm:

/tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::3389-:3389 -m 2048M -localtime -enable-kvm -cpu host,+nx -M pc -smp 2 -vga std -usbdevice tablet -k en-us -cdrom /mnt/win8-64.iso -hda /dev/sda -boot once=d -vnc :1

Open the VNC viewer and visit your IP:1 to starting the installations.

Network and Driver

After finished, enable the RDP and turn-off the firewall temporary. You can add the network driver using:

pnputil.exe -a c\yourdriver.inf

Note: In my case Windows already have the driver but I still add the driver to the DriverStore .

WSI use static IP so we must set the IP provided by WSI manually. Example:

IP: 63.141.x.x
Gateway: 63.141.x.x
Subnet Mask: 255.255.255.252

And we need to use DNS server provided by WSI also. Pick one below.

# First DNS server
192.187.107.16
69.30.209.16

# Second DNS server
208.67.220.220
208.67.222.222

This is what the support staff tell me when I can't connect even I already enable the RDP, install the network driver, and turn-off the firewall temporarily but I am enabling the DHCP.

Those are the DNS we set, once the service is online the client can change them to whatever they wish to use. 

Double check everything and reboot your server.

Troubleshot

Qemu can boot existing Windows installations so you just need to load the Grml, extract the portable qemu-KVM and reconfigure the Windows again.

/tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::3389-:3389 -m 2048M -localtime -enable-kvm -cpu host,+nx -M pc -smp 2 -vga std -usbdevice tablet -k en-us -cdrom /mnt/win8-64.iso -hda /dev/sda -boot c -vnc :1

If you can't connect to RDP you can creating netsh script to set the static IP automatically during startup or logon.

Credit to WSI

WSI staff is very helpful on this process, from debugging, even they are willing to add Grml because of SystemRescueCD limitations.

How about another provider

You can use the same method on any other provider out there as long as they have rescue system. Eg. OVH (SYS, Kimsufi), Hetzner, Leaseweb, etc.

DigitalOcean seems have recovery ISO so perhaps you can install Windows on their VPS lineup. Let me know if you managed to install Windows on DigitalOcean.

[Source]

Edit: hope they get more sales because they are very helpful on this process :)

«13

Comments

  • A question, and thanks for the tutorial.

    All of these preconfigured servers, don't have KVM access, but have some kind of rescue mode, or OS reinstall functions?

  • edanedan Member
    edited April 2016

    @yomero said:
    A question, and thanks for the tutorial.

    All of these preconfigured servers, don't have KVM access, but have some kind of rescue mode, or OS reinstall functions?

    Yes they have rescue mode, they have two type SystemRescueCD (KVM disabled) and Grml (KVM enabled) so pick the Grml.

    And now WSI is limitless.

    Thanked by 1yomero
  • I am using libvirtd and qemu-kvm on Centos then install Windows on top. Is your method more efficient than this approach?

  • edanedan Member

    @david_W said:
    I am using libvirtd and qemu-kvm on Centos then install Windows on top. Is your method more efficient than this approach?

    Well yes and its more faster of course.

  • @edan said:
    Well yes and its more faster of course.

    Faster in terms of performance? According to my understanding, the method you posted still running Windows within KVM. May be Grml has less overhead than CentOS minimal?

  • edanedan Member

    @david_W said:

    @edan said:
    Well yes and its more faster of course.

    Faster in terms of performance? According to my understanding, the method you posted still running Windows within KVM. May be Grml has less overhead than CentOS minimal?

    No its installed directly to the box (bare metal sever). Grml is just to install the Windows.

  • @edan said:
    No its installed directly to the box (bare metal sever). Grml is just to install the Windows.

    Ah, I get it now, KVM is for running the Windows PE and have VNC access.

    Formatting my idle C2D box now xD

    /tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::3389-:3389 -m 2048M -localtime -enable-kvm -cpu host,+nx -M pc -smp 2 -vga std -usbdevice tablet -k en-us -cdrom /mnt/win8-64.iso -hda /dev/sda -boot once=d -vnc :1
    
  • edanedan Member
    edited April 2016

    david_W said: Ah, I get it now, KVM is for running the Windows PE and have VNC access.

    Formatting my idle C2D box now xD

    And now I am running Windows in my $10 box. Its Dell Optiplex 760 :)

    Thanked by 1netomx
  • Thank you for sharing this, the awesome folks at verelox now have this as well in their cp.

    Thanked by 1Verelox
  • edanedan Member

    @raptorpeanutbuttr said:
    Thank you for sharing this, the awesome folks at verelox now have this as well in their cp.

    It more faster to install using this method compared to using virtual media in iDRAC, ILO etc.

    Most provider use DHCP, tested on OVH (SYS, Kimsufi) and Online.net so we don't need to configure the static IP. We just need to enable the RDP and disable the firewall temporarily. Please note when enabling the firewall don't use the "Use recommended settings" because sometimes it block the RDP again but visit the "Turn Windows Firewall on or off" and enable it from there.

  • RodneyRodney Member

    edan said: Eg. OVH (SYS, Kimsufi), Hetzner, Leaseweb, etc.

    Hetzner offers KVM for free for 2 hours (or longer if the device is not needed elsewhere or you're willing to pay) so you could use that. They also have windows ISOs available for mounting. I don't think a Windows installation should take longer than an hour so that's probably the easiest method of installing windows with your own license.

  • edanedan Member

    Rodney said: Hetzner offers KVM for free for 2 hours (or longer if the device is not needed elsewhere or you're willing to pay) so you could use that. They also have windows ISOs available for mounting. I don't think a Windows installation should take longer than an hour so that's probably the easiest method of installing windows with your own license.

    Yes the easiest is using KVM over IP. I also use that method in the past but it still slower when mapped the virtual media. Let say the ISO file size is 3.5GB and with home connections 10mbps for download and upload 1mbps it can take aged (not every people have 100mbps+ upload speed). Sometimes I use KVM over IP if I can't connect to RDP and fix the problems (missing the network driver etc.).

    On my case I put the ISO in my other machine with 1Gbps connections so using wget to download the ISO it only take minutes.

  • RodneyRodney Member

    If they have the ISO on their Samba share you can just use that. (They have Windows, ESXi and some Linux distros)

  • spammyspammy Member

    I tried to launch the QEMU and got this:

    Could not access KVM kernel module: No such file or directory
    failed to initialize KVM: No such file or directory

    Any idea?

  • FredQcFredQc Member

    I don't see Grml in the reload list ?

  • edanedan Member
    edited May 2016

    @spammy said:
    I tried to launch the QEMU and got this:

    Could not access KVM kernel module: No such file or directory
    failed to initialize KVM: No such file or directory

    Any idea?

    So you are using SystemRescueCD. Remove the

    -enable-kvm

    And change the cpu options to use qemu32 or qemu64, the -cpu host options only available if KVM module loaded.

    So it should:

    /tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::3389-:3389 -m 2048M -localtime -cpu qemu32,+nx -M pc -smp 2 -vga std -usbdevice tablet -k en-us -cdrom /mnt/win8-64.iso -hda /dev/sda -boot once=d -vnc :1
    

    FredQc said: I don't see Grml in the reload list ?

    Yes seems only available in my account. Here is their reply about it:

    We don't use dhcp servers. All of our ips have to be statically set. So if you decide to use qemu to reload an OS how exactly are you planning on setting the ip addresses, because while you are in QEMU your network adapter is a virtualized network adapter, if you set the ip addresses on this virtualized network adapter the changes won't stick when you reboot into the real OS because it will be a new adapter (the real physical network adapter).

    I really don't want to enable something for everyone until this is fixed, because we will have a lot of people who install windows and will then ask us to fix their network settings.

    While in QEMU actually you will find the network adapter name, eg. "Ethernet". We can creating netsh scripts during logon, if Ethernet belong to QEMU than our real adapter usually Ethernet 2, if you are not sure you can add multiple ethernet name. Delete the scripts after we can connect to RDP.

    netsh interface ipv4 set address name="Ethernet 2" static 63.141.x.x 255.255.255.252 63.141.x.x
    
    netsh interface ipv4 set dns name="Ethernet 2" static 192.187.107.16
    
    netsh interface ipv4 add dns name="Ethernet 2" 69.30.209.16 index=2 
    
  • spammyspammy Member

    edan said: So you are using SystemRescueCD.

    Thanks for your help, nope I am using the grml though (2014.11, is that the version you have)? Not sure why KVM is not enabled.

    I will try to use the sysrescue to see if I can get any luck there.

  • tyktyk Member

    Hi,
    What's the difference between this way and directly use qemu install windows on Debian?

  • spammyspammy Member

    @tyk said:
    Hi,
    What's the difference between this way and directly use qemu install windows on Debian?

    If you read a few posts above the answer is right there:

    https://www.lowendtalk.com/discussion/comment/1662407/#Comment_1662407

  • spammyspammy Member

    edan said: So it should:

    /tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::3389-:3389 -m 2048M -localtime -cpu qemu32,+nx -M pc -smp 2 -vga std -usbdevice tablet -k en-us -cdrom /mnt/win8-64.iso -hda /dev/sda -boot once=d -vnc :1

    I can confirm this works, happily installing Windows now :)

  • _Nic_Nic Member

    Can I use this way for custom Linux installation (manual disks partitions configuration) with Linux netinstall .iso?

  • edanedan Member

    spammy said: Thanks for your help, nope I am using the grml though (2014.11, is that the version you have)? Not sure why KVM is not enabled.

    Is the CPU support virtualization? if yes than its weird.

    Please run:

    /tmp/kvm-ok

    spammy said: I can confirm this works, happily installing Windows now :)

    I am using task scheduler to setup the static IP.

    _Nic said: Can I use this way for custom Linux installation (manual disks partitions configuration) with Linux netinstall .iso?

    Yes, you can to install any OS actually.

    Thanked by 1_Nic
  • isalemisalem Member
    edited May 2016

    aaah ... my E6550 supports Virtualization, but i found out its disabled in the bios .. i'm guessing i'll have to go the other way then without it

    Unless someone knows a way to enable it without the need to go there? :P

    EDIT: Nevermind, a ticket to support quickly solved this! Punching through setup now, thanks! :)

  • edanedan Member

    isalem said: EDIT: Nevermind, a ticket to support quickly solved this! Punching through setup now, thanks! :)

    Bingo! :)

  • spammyspammy Member

    @edan said:

    spammy said: I can confirm this works, happily installing Windows now :)

    I am using task scheduler to setup the static IP.

    Sorry to bring this thread up again, but may I know why you need to do that? Can you just set static IPs in the IPv4 configuration in Windows and static DNS as well?

    The reason why I am asking is I have this weird issue that when I boot up through QEMU everything works fine, I was able to log into the server through VNC viewer and the internet works.

    Once I set up the static IP the connection is lost to the Internet (however I can still see Windows in the VNC viewer), however when I reboot the server just never come back up. I have enabled ping and RDP but it doesn't respond to ping nor RDP.

    Tried it no less than 10 times so far with no luck :(

  • edanedan Member
    edited May 2016

    spammy said: Sorry to bring this thread up again, but may I know why you need to do that? Can you just set static IPs in the IPv4 configuration in Windows and static DNS as well?

    The reason why I am asking is I have this weird issue that when I boot up through QEMU everything works fine, I was able to log into the server through VNC viewer and the internet works.

    Once I set up the static IP the connection is lost to the Internet (however I can still see Windows in the VNC viewer), however when I reboot the server just never come back up. I have enabled ping and RDP but it doesn't respond to ping nor RDP.

    Tried it no less than 10 times so far with no luck :(

    What is your network interface name when in QEMU? eg. Ethernet. If Ethernet belong to QEMU usually when we booting the real HW it become Ethernet 2 or Ethernet 3 than you can creating netsh scripts and set the static IP during logon/startup for this network device name, I am using task scheduler. Example scripts:

    netsh interface ipv4 set address name="Ethernet 2" static 63.141.x.x 255.255.255.252 63.141.x.x
    
    netsh interface ipv4 set dns name="Ethernet 2" static 192.187.107.16
    
    netsh interface ipv4 add dns name="Ethernet 2" 69.30.209.16 index=2 

    The IP address order: client IP, subnet mask, and gateway IP.

    You can try to use similar step with this http://www.howtogeek.com/138159/how-to-enable-programs-and-custom-scripts-to-run-at-boot/ make sure to execute the scripts again if it fails "if the tasks fails, restart every" under settings

    Thanked by 1spammy
  • spammyspammy Member

    @edan said:

    You can try to use similar step with this http://www.howtogeek.com/138159/how-to-enable-programs-and-custom-scripts-to-run-at-boot/ make sure to execute the scripts again if it fails "if the tasks fails, restart every" under settings

    Another question, is there any way to get the VNC to work on PC rather than tablet? I changed the VNC to -usbdevice mouse but for some reason when I used the VNCViewer on PC the program gets disconnected after a second, tried it on multiple PC and both RealVNC and RoyalTS as well.

    It works perfect on my tablet though, just using tablet as a device to edit scripts and so on might not be the easiest thing in the world.

  • edanedan Member
    edited May 2016

    spammy said: Another question, is there any way to get the VNC to work on PC rather than tablet?

    I don't think any differences between PC vs tablet, I found zero problems when connected to the VNC using PC (TightVNC).

    Thanked by 1spammy
  • pepijndpepijnd Member
    edited June 2016

    @spammy said:

    @edan said:

    You can try to use similar step with this http://www.howtogeek.com/138159/how-to-enable-programs-and-custom-scripts-to-run-at-boot/ make sure to execute the scripts again if it fails "if the tasks fails, restart every" under settings

    Another question, is there any way to get the VNC to work on PC rather than tablet? I changed the VNC to -usbdevice mouse but for some reason when I used the VNCViewer on PC the program gets disconnected after a second, tried it on multiple PC and both RealVNC and RoyalTS as well.

    It works perfect on my tablet though, just using tablet as a device to edit scripts and so on might not be the easiest thing in the world.

    Also had some problems with VNC. Try to use TightVNC. If port 1 doesn't work, try 5901. (I use port 1 on the command line and 5901 in TightVNC. I don't know why it works.)

    Edit: Tested on Kimsufi KS-4C and it works fine.

    Thanked by 1spammy
  • emre22emre22 Member

    for me it works only with 512 ram only and during the vnc installation at "windows is starting" my vnc viewer -> connection gracefully closed

    can somebody help me out with that?

Sign In or Register to comment.