You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: KNOWN_ISSUES.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,3 +70,23 @@ This applies to **all CNI plugins** where the upstream network provides DHCP (br
70
70
```
71
71
72
72
Cocoon detects when CNI returns no IP allocation and automatically configures the guest for DHCP — cloudimg VMs get `DHCP=ipv4` in their Netplan config, and OCI VMs get DHCP systemd-networkd units generated by the initramfs.
73
+
74
+
## Windows VM requires Cloud Hypervisor v50.2
75
+
76
+
Cloud Hypervisor v51.x has a regression ([#7849](https://github.com/cloud-hypervisor/cloud-hypervisor/issues/7849)) that causes Windows to BSOD (`DRIVER_IRQL_NOT_LESS_OR_EQUAL` in `viostor.sys`) when DISCARD/WRITE_ZEROES features are advertised with default-zero config values, violating virtio spec v1.2. The fix (PR #7852) is merged but not yet included in any release.
77
+
78
+
**Recommendation**: use Cloud Hypervisor **v50.2** for Windows VMs.
79
+
80
+
## Windows VM requires virtio-win 0.1.240
81
+
82
+
virtio-win 0.1.271+ network drivers are incompatible with Cloud Hypervisor due to incomplete virtio-net control queue implementation ([#7925](https://github.com/cloud-hypervisor/cloud-hypervisor/issues/7925)). CH only handles `CTRL_MQ` and `CTRL_GUEST_OFFLOADS`; all other commands (`CTRL_RX`, `CTRL_MAC`, `CTRL_VLAN`, `CTRL_ANNOUNCE`) return `VIRTIO_NET_ERR`.
| 0.1.285+ | Fail-fast: NdisMRemoveMiniport(), Problem Code 43 |
89
+
90
+
0.1.285 introduced commit `50e7db9` ("indicate driver error on unexpected CX behavior") with zero-tolerance on control queue errors. Root cause is a CH bug — correct fix is to return `VIRTIO_NET_OK` for unsupported commands instead of `VIRTIO_NET_ERR`. No upstream PR exists yet.
91
+
92
+
**Recommendation**: use virtio-win **0.1.240** for Windows VMs on Cloud Hypervisor.
@@ -168,6 +168,7 @@ Applies to `cocoon vm create`, `cocoon vm run`, and `cocoon vm debug`:
168
168
|`--storage`|`10G`| COW disk size (e.g., 10G, 20G) |
169
169
|`--nics`|`1`| Number of network interfaces (0 = no network) |
170
170
|`--network`| empty (default) | CNI conflist name (empty = first conflist) |
171
+
|`--windows`|`false`| Windows guest (UEFI boot, kvm_hyperv=on, no cidata) |
171
172
172
173
### Clone Flags
173
174
@@ -276,6 +277,35 @@ Cloudimg VMs receive a NoCloud cidata disk (FAT12 with `CIDATA` volume label) co
276
277
277
278
The cidata disk is **automatically excluded on subsequent boots** — after the first successful start, the VM record is marked as `first_booted` and the cidata disk is no longer attached, preventing cloud-init from re-running.
278
279
280
+
## Windows Support
281
+
282
+
Cocoon supports Windows guests via the `--windows` flag:
283
+
284
+
```bash
285
+
cocoon vm run --windows --name win11 --cpu 2 --memory 4G --storage 40G <cloudimg-url>
- Skips cloud-init cidata disk generation (Windows does not use cloud-init)
292
+
293
+
### Requirements
294
+
295
+
- Cloud Hypervisor **v50.2** (v51.x has a Windows regression — see [KNOWN_ISSUES.md](KNOWN_ISSUES.md))
296
+
- virtio-win **0.1.240** drivers pre-installed in the image (see [KNOWN_ISSUES.md](KNOWN_ISSUES.md))
297
+
298
+
### Image Preparation
299
+
300
+
Windows images must be prepared manually — Microsoft licensing prohibits automated distribution of Windows disk images. See [`os-image/windows/`](os-image/windows/) for the complete build guide and `autounattend.xml` for unattended installation.
301
+
302
+
### Post-Clone Networking
303
+
304
+
-**DHCP networks**: no action needed, Windows DHCP client auto-configures
305
+
-**Static IP**: configure via SAC serial console (`cocoon vm console`)
306
+
307
+
For more details, see the [Cloud Hypervisor Windows documentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/windows.md).
cmd.Flags().String("storage", "10G", "COW disk size") //nolint:mnd
143
143
cmd.Flags().Int("nics", 1, "number of network interfaces (0 = no network); multiple NICs with auto IP config only works for cloudimg; OCI images auto-configure only the last NIC, others require manual setup inside the guest")
144
144
cmd.Flags().String("network", "", "CNI conflist name (empty = default)")
145
+
cmd.Flags().Bool("windows", false, "Windows guest (UEFI boot, kvm_hyperv=on, no cidata)")
0 commit comments