> ⚠️ Please note This is a work in progress guide (WIP) created to crowdsource user experience about using Windows in Qubes, optionally with Qubes Windows Tools ("QWT"), following up on this github issue.
Please contribute too ! It's easy: edit this wiki page (the edit/'pen' icon at the bottom of the post), copy the content of the user report template at the end of this post and paste it in the relevant "Contributed user reports" Windows sections. Even is someone has already added a report with the same version of Windows (and optionally QWT) it's perfectly fine to add another report as your use case (/features you use) might differ.
See this issue. (tl;dr; feasible but not straightforward).
Windows ISOs can be downloaded directly from Microsoft (eg. here for Win10).
Unofficial "debloated" ISOs from projects like reviOS or ameliorated can be found on the net, although obviously you should consider them even "unsafer" than MS provided ISOs. Alternatively, one could download an official ISO and run scripts/apply patches before installation. Some of the "tweaks" might end up being too much depending on the qube's planned usage though (eg. no appx functionality in ameliorated windows - so the installation of Windows Store apps is impossible, even with powershell).
Simple Windows install (gui based): follow the steps under "Installation procedure" in this community guide (TODO: the guide should be updated, the "works"/"doesn't work" sections are outdated because QWT now works on R4.x).
Alternatively, on R4.0 you may use @elliotkillick's qvm-create-windows-qube scripts. R4.1 support is unknown (see this issue).
Don't forget to qvm-clone
your qubes from times to times. Windows being Windows, it's easy to do something that renders your windows qube unusable (eg. BSOD, boot loop, ...).
Known issues:
qvm-start vm --cdrom ...
(or using the gui). The solution is to disable hibernation in Windows with the following command in a command prompt (that command is included in QWT's setup but it's necessary to run it manually in order to be able to open QWT's setup iso/cdrom in Windows).powercfg -H off
qvm-prefs [windows-qube] qrexec_timeout 300
QWT works on Qubes OS R4.x thanks to the great work of @jevank et al. QWT's main features are:
c:
to the qubes' private volume (to be able use the qubes as a TemplateVM).Changelog/commits are here.
Compiled rpm/iso are available here (until QWT eventually makes its way as an official Qubes package). Alternatively building QWT is easy and doesn't take much time - just follow those instructions.
In order to install QWT we need to be able to access the setup .exe in the windows qube. This is usually done by attaching the QWT iso to the qube but alternatively you could download the .exe from the network (web site, remote network share, or even inter-vm-networking); the latter is outside the scope of this wiki though, as attaching the iso is a lot simpler:
with the GUI: in your windows qube's "Qubes Settings", go to the "Advanced" tab, choose "Boot qubes from CD-ROM", then "from file in qubes" and choose the qube and path where you have downloaded/installed/built QWT (the path is /usr/lib/qubes/qubes-windows-tools.iso
if installed from the rpm).
or with the CLI:
In the qube where you have the QWT iso run:
sudo losetup -f /path/to/the/iso
(the path is /usr/lib/qubes/qubes-windows-tools.iso
if installed from the rpm).
In dom0, assuming the qube where you've run the losetup
command above is named qwt
and your windows qube is named win10
, start your windows qube with:
qvm-start win10 --cdrom qwt:loop0
Note: if you've previously ran losetup
in the qwt
qube then loop0
might not be the right device (check the output of qvm-block
in dom0).
Again, don't forget to qvm-clone
your qube before you install QWT in case something goes south.
Setup/usage notes:
XEN PV drivers provide much faster disk and network IO performance. They're included in QWT's setup but aren't selected by default as they are unstable on some setups. In case you decide to install them, XEN's drivers setup will ask to restart the system during QWT's setup: choose "restart later" to allow QWT's installer to complete the installation.
USB support must be enabled for the qube in dom0 in order to be able to attach USB devices (devices under "USB Devices" in the graphical widget, or devices attached with qvm-usb
); in dom0, run:
qvm-features [windows-qube] stubdom-qrexec 1
qvm-features [windows-qube] audio-model ich6
qvm-block
) should work when XEN PV disk drivers are installed: the attached block device is then shown as a regular disk volume in Window; there won't be a "safely remove" feature though (eg. "eject device") so you must be certain that any copied data is sync'ed before detaching the block device. So when possible it is recommended to attach usb devices like flash disks as a usb device rather than a block device.Note: some content in QWT's community documentation is outdated as the documentation hasn't been updated yet to reflect the newer R4.1 release and QWT's current development/features (contributors welcome).
Optimize resources for use in virtual machine as "vanilla" version of Windows are bloated; eg:
[details="R4.1 / Windows 7 Pro SP1 updated until Oct 2020 / QWT 4.1.67 of 2022-02-14"]
@GWeck; date: 23 Feb 2022, updated 24 March 2022
Windows: - installed from scratch as template VM - build/iso: Windows7ProfSP1.iso of 2016-05-28, downloaded from Microsoft - updated using WinFuture Patch kit "WinFuture_7SP1_x64_UpdatePack_2.107_Januar_2020-Vollversion.exe" and manual updates after that - ram used when installing: 4GB - ram usage after install: 4GB - disk space usage after install: 27GB
QWT: - first installation - installed just after completing the update horror to get the system current - features selected during installation: - Base Xen PV drivers
no Network and no Disk drivers
Move User Profiles
build / use AppVM based on that template
seamless mode (dynamic via Que Manager and static via registry)
audio output (needs to activate Windows Audio Endpoint Builder service)
copy files between qubes (both directions in and out)
networking (for AppVM based on that template)
time/clock synchronization using qvm-features VMname timezone localtime
setting decent screen resolution for non-seamless mode using Alt-F8 key
features that don't work:
user migration from c:
to the qube's private volume (has to be done manually)
Xen disk and network drivers can be installed after completing the previous steps. This will probably cause Windows activation to become invalid, but the activation can be restored using the Microsoft telephone activation method. After this, USB devices can be attached and used, and booting is about two thirds faster.
Summary / notes: can be reasonably used in seamless mode; access to functions via XFCE menu or by hitting Windows keyboard key in a VM's window and thus displaying the Windows menu
[/details]
[details="R4.1 / Windows 21H2 / QWT 4.1.67 - Feb. 2022"] @taradiddles; date: 20 Feb 2022
Windows: - installed from scratch - build/iso: 21H2, downloaded from Microsoft - ram used when installing: 4GB - ram usage after install: 1.1GB - disk space usage after install: 12GB
QWT:
- first installation
- installed just after windows' first boot
- features selected during installation: Xen PV drivers
- features that were tested to work:
- copy/paste between qubes
- copy files between qubes
- attaching usb devices to the qube
- networking
- time/clock synchronization
- XEN PV disk driver
- XEN PV network driver
- features that don't work:
- user migration from c:
to the qubes' private volume
Summary / notes: "vanilla" windows really feels sluggish, it then takes a lot of time and patience to remove bloatware and optimize the vm to make it usable.
[/details]
[details="R4.1 / Windows AME 21H1 / QWT 4.1.67 - Feb. 2022)"] @taradiddles / 12 Feb 2022
Windows: - installed from scratch - build/iso: ameliorated 21H1 (downloaded ISO). - disk space required by the installer: min is 16GB, I've set it to 20GB - ram usage after install: <1GB - windows update status: disabled
QWT:
- first installation
- installed just after windows' first boot (windows AME has windows update disabled anyway).
- features selected during installation: Xen PV drivers
- features that were tested to work:
- copy/paste between qubes
- copy files between qubes
- attaching block devices to the qube (no 'eject' functionality)
- attaching usb devices to the qube
- networking
- time/clock synchronization
- XEN PV drivers
- features that don't work:
- user migration: the profile on c:
wasn't migrated (again, maybe because of AME tweaks).
Summary: windows AME is really snappy and works well so far but it lacks features like appx (windows store) that could make it a no-go for some. [/details]
[details="R4.1 / Windows 11 Pro 21H2 / QWT 4.1.67 of 2022-02-14"]
@GWeck; date: 23 Feb 2022, updated 16 March 2022
Windows: - installed from scratch as template VM, using TPM-disable patch during installation - build/iso: 21H2, downloaded from Microsoft - ram used when installing: 4GB - ram usage after install: 4GB - disk space usage after install: 15GB
QWT: - first installation - features selected during installation: - Base Xen PV drivers
no Network and no Disk drivers
Move User Profiles
copy files between qubes (both directions in and out)
audio output (somewhat scratchy)
user migration from c:
to the qubes' private volume Q:
networking (for AppVM based on that template)
qvm-features VMname timezone localtime
features that don't work:
seamless mode
Xen disk and network drivers can be installed after completing the previous steps. Contrary to Windows 7, activation did not become invalid. After this, USB devices can be attached and used, and booting is about one third faster.
Summary / notes: rather slow, as well on booting and shutdown as on using; installation requires disabling the check for TPM 2.0, using the trick described in Windows 11 in Qubes - using Windows 11 is a good motivation for migrating to Linux :-)
[/details]
The template below is meant to be improved ! It isn't exhaustive by any means and most of the fields aren't mandatory.
More detailed notes about a given Windows/QWT combination (eg. very detailed installation instructions, workarounds, hints/tips, user workflow, ...) should be posted to a separate post with a "Guide" tag and linked to this wiki page in the user report: that way the post's author is free to use whatever layout and amount of information he/she sees fit, and this keeps relevant questions/answers threads contained in a post rather than in the more "generic" comments here. That said it's OK to add a bit more "free text" to the template when contributing a report to avoid having to create a dedicated post with only a few lines.
(In case you want to change the template's text itself, please discuss any major changes in this post's comments).
> ⚠️ Copy the text in the text area below including the [details=...]
and [/details]
tags
[details="R4.x / Windows XXX / QWT XXX"]
@userxyz ; date: xx month year
Windows
- installed from scratch, or migrated from an older Qubes OS release ?
- build/iso [eg. '21H1', 'ameliorated 20H1', ...]
- disk space required by the installer [if known]
- ram used when installing [doesn't mean it is the required amount]
- ram usage after install [if known]
- disk space usage after install [if known]
- if display resolution was changed, does it work ?
- if audio was tested, does it work ?
- problems running the VM ?
QWT [optional]
- first installation or migration/re-installation over an older version ?
- installed just after windows' first boot, or after a full windows update ?
- features selected during installation if not the default choice [eg. Xen PV drivers].
- features removed during installation if not the default choice [eg. UAC].
- features that were tested to work [delete line that aren't relevant/not tested]:
- copy/paste between qubes
- copy files between qubes
- attaching *block* devices to the qube [with widget under "Data (Block) devices" or with `qvm-block`]
- attaching *usb* devices to the qube [with widget under "USB devices" or with `qvm-usb`]
- attaching audio input devices to the qube [with widget under "Audio Input"]
- networking
- time/clock synchronization
- XEN PV disk driver
- XEN PV network driver
- user migration from `c:` to the qubes' private volume to be able use the qubes as a TemplateVM).
- features that don't work [possibly with workarounds]: ...
Summary / notes [if any]:
Link to a specific post [if any - it could contain detailed instructions, known issues, workarounds, hints/tips, description of the author's workflow, productivity tips, ...]
[/details]