Documentation : Windows-10 installation on Qubes R4.0

For someone looking tutorial document for Windows-10 installation on Qubes R4.0
Change <*> part to your current circumstance.

Notice
0. This installation process is based on Qubes R4.0 and QWT 4.0.1-3.

  1. I recommend you to use Windows-10 as AppVM based on TemplateVM. If you don’t, there will be several restriction such as lowering possiblity of BSOD, working QWT correctly, and decreasing your effort for software update.

  2. Please backup Windows VM in each process (I mean cloning). If you fail to start VM after OS installation or QWT several times, I recommend you to delete VM and restore(clone) again. This will significantly reduce your time.

  3. After successful installation to QWT, you could do these things below…
    3-1. Copy/Paste clipboard between fedora/debian linux VMs.
    3-2. Copying files between fedora/debian linux VMs.
    3-3. Attaching USB storage to Windows VM.

  4. Though successful installation to QWT, you couldn’t do these things below…
    4-1. Sound support.
    4-2. Copy/Paste clipboard between Windows VMs.
    4-3. Copying files between Windows VMs.
    4-4. Attaching USB device. (except storage/ meaning USB passthrough not working)
    4-5. Seamless mode. (Only Windows 7 support)
    4-6. GPU accerlation.
    4-7. Above 2560x1600 screen size
    4-8. Support some keyboard layout (some special key for changing your language could not work)

  5. Some of issues remain after successful QWT installation…
    5-1. Sometimes, QWT not working correctly after second reboot from QWT installation or Windows updates. (This could be temporary solved via Windows-10 recovery mode setting on Windows TemplateVM. Just hit ‘continue’ button on Template-VM. This will tempoary enable successful QWT start on first boot)
    5-2. Rarely, Windows could be crashed on shutdown not even qvm-kill working afterall, requiring entire system(Qubes OS) reboot.

Windows 10 Installation process

1. dom0 : qvm-create -C TemplateVM -l <color> -property virt_mode=hvm <windows-template>

2. dom0 : qvm-prefs <windows-template> vcpus <number/ you want to assign cpu cores>

3. dom0 : qvm-prefs <windows-template> memory <dram capacity/ must at least 4096 > && qvm-prefs <windows-template> maxmem <dram capacity/ same memory size should be assigned as prior command>

4. dom0 : qvm-volume extend <windows-template>:root 50G

5. dom0 : qvm-volume extend <windows-template>:private 40G

6. dom0 : qvm-prefs <windows-template> netvm  <netvm name>

7. dom0 : qvm-prefs  <windows-template> kernel ''

8. qvm-start <windows-template> --cdrom=<windowsiso-vault>:/path/to/windows-10-iso <windows-template>

# several restart after the first part of the windows installation process ends

9. dom0 : qvm-prefs <windows-template> qrexec_timeout 10000

10. dom0 : qvm-start <windows-template>

Installing Qubes Windows Tools

11. dom0 : sudo qubes-dom0-update enablerepo=qubes-dom0-current-testing qubes-windows-tools (if you didn't download QWT yet)

12. <windows-template>-administrative priviledge : netplwiz / uncheck 'Users must enter a user name and password…'. And shutdown

#starting from Windows-10 2004, you would need to change registry settings to make checkbox for autologin#

13. dom0 : qvm-start <windows-template>

14. <windows-template> : You need to find Xen Windows Driver 9.0.0 (or above) version and download *xenvbd* and *xenbus* on system drive (:C)

15. <windows-template> : Install *xenvbd* and *xenbus* driver. And shutdown.

16. dom0 : qvm-start <windows-template> --install-windows-tools

17. <windows-template>-administrative priviledge : Check CD-ROM. Uncheck *Xen storage driver* and *Move of user data to Drive D* install QWT in it.
#Please don't push 'reboot' button until entire installation process ends#

18. qvm-features <windows-template> gui 1

19. qvm-start <windows-template>

Reference

  1. Github : Qubes Windows Tools (QWT) on R4 #3585
    https://github.com/QubesOS/qubes-issues/issues/3585
  2. Qrexec Agent Starts Incorrectly and too Early on Windows 10 HVM #5462
    https://github.com/QubesOS/qubes-issues/issues/5462https://github.com/QubesOS/qubes-issues/issues/5802
1 Like

Hi @Subots! Thanks for taking the time. This exact issue is being addressed in a contribution to the qubes-doc here

But it’s about to to merged onto the documentation. Maybe you can still go there and propose changes.

Installation

step 1 should be “–property” (two hyphens)

step 9, you have twice, should only be after --cdrom=xxxxx

The current documentation for this is living on the community documentation:

Feel free to address your feedback there as that should be the most up-to-date resource on the matter. Perhaps by opening up a github pull request to suggest improvements.

This doesn’t exist on my system:

/sys/firmware/acpi/tables/MSDM

@deeplow: Thanks for those updated links. I followed the instructions, which worked up until steps 8-10 in Installing Qubes guest tools in Windows 10

After installing the tools, shutting down, and running:

dom0] qvm-features windows gui 1

I can no longer get the windows vm to appear. It says it is running, but not gui. So i run:

dom0] qvm-start-gui windows

This returns:

windows: Starting GUI (stubdomain)
Connecting to VM's GUI agent: .connected
windows: Starting GUI
windows: Sending monitor layout
windows: Failed to send monitor layout: b'connect: No such file or directory\n'

and then the windows gui popped up (this took a few tries of qvm-killing the Qube and redoing the above).

So now i’m in windows, but if i try to qvm-copy to it, i get “Request refused” and copy paste from another Qube similarly does not work.

I run the qubes windows tool installer, which confirms it is already installed. So i click “repair” and then reboot. This time the GUI comes up no problem. But still no qubes tools functionality to move data between qubes.

I used to be able to get a fully functional Windows Qube with this defunct tool: GitHub - elliotkillick/qvm-create-windows-qube: Spin up new Windows qubes quickly, effortlessly and securely
Not sure how these instructions differ or what changed.

I don’t know much about particular debugging on this.I simply followed the instructions as well.

But check out this image on the QWT settings I used:

Originally posted here.

Step 7 on the link you posted read " not selecting the Xen PV disk drivers and the Move user profiles (which would probably lead to problems in Windows, anyhow)." So mine looked different - red X’s next to those 2 items.

Maybe I should try again including them?

1 Like

I’ve just successfully setup a Windows 10 VM after having failed previously with similar problems to you. I was followed the instructions on these pages (as mentioned by @deeplow above):

In the last successful attempt I did a few things differently - I don’t know which (if any) made the difference.

  1. After installing Windows 10, I ran:

    qvm-prefs windows-10 qrexec_timeout 300

    This is mentioned in the instructions for installing Windows 7, but not for Windows 10.

  2. When installing Qubes Windows Tools, I waited for the installations of the .Net Framework to finish before clicking on the Install button for the Xen driver.

  3. On the first start of the Windows VM after installing Qubes Windows Tools I waited until the VM CPU dropped to around 0% before shutting it down again (there no GUI at this stage). Hopefully this gave whatever startup processes were running time to do their thing.

After all that the next time I started the VM it all seemed to be working (GUI, file copy, clipboard copy/paste).

1 Like

Interesting. I remember having ran that command as well. But somehow it didn’t make it onto the instructions. @GWeck

I created a pull request, also stating that USB support is working.

1 Like