quickemu-project / quickemu

Quickly create and run optimised Windows, macOS and Linux virtual machines
MIT License
10.88k stars 478 forks source link

bug: the windows-11.conf does not get properly populated by quickget windows 11 #1512

Closed iopq closed 1 week ago

iopq commented 1 week ago

I confirm this bug has not already been reported

Describe the bug When I run quickemu --vm windows-11.conf I get

qemu-system-x86_64: -drive media=cdrom,index=0,file=windows-11/windows-11.iso: Could not open 'windows-11/windows-11.iso': No such file or directory

in fact the quickget windows 11 command doesn't actually download a thing called windows-11.iso, it gets the following files:

disk.qcow2  OVMF_VARS.fd  unattended  unattended.iso  virtio-win.iso  Win11_24H2_EnglishInternational_x64.iso  windows-11.log  windows-11-monitor.socket  windows-11.ports  windows-11.sh

To Reproduce Steps to reproduce the behaviour:

  1. quickget windows 11
  2. quickemu --vm windows-11.conf
  3. see the error

Expected behaviour it should just run the correct .iso file

Quickemu output Run quickemu or quickemu and include the output of the failure below:

Quickemu output ```text Quickemu 4.9.6 using /nix/store/dv9jkgnn5grk05927ysszwzck25vgdwn-qemu-9.1.1/bin/qemu-system-x86_64 v9.1.1 - Host: NixOS 24.11 (Vicuna) running Linux 6.6.59 desktop - CPU: AMD Ryzen 5 3600 6-Core Processor - CPU VM: host, 1 Socket(s), 2 Core(s), 2 Thread(s) - MSR: WARNING! Ignoring unhandled Model-Specific Registers is disabled. echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs If you are unable to run macOS or Windows VMs then run the above 👆 This will enable ignoring of unhandled MSRs until you reboot the host. You can make this change permanent by running: 'quickemu --ignore-msrs-always' - RAM VM: 8G RAM - BOOT: EFI (Windows), OVMF (/nix/store/qfnyd8x0kz5z0h9j7m4zx32ahrg811i4-OVMF-202408-fd/FV/OVMF_CODE.fd), SecureBoot (off). - Disk: windows-11/disk.qcow2 (64G) Looks unused, booting from windows-11/windows-11.iso - CD-ROM: windows-11/virtio-win.iso - Display: SDL, virtio-vga-gl, GL (on), VirGL (on) @ (1280 x 800) - Sound: intel-hda (hda-micro) - ssh: On host: ssh user@localhost -p 22220 - WebDAV: On guest: dav://localhost:9843/ - smbd: On guest: smb://10.0.2.4/qemu - Network: User (virtio-net) - Monitor: On host: socat -,echo=0,icanon=0 unix-connect:windows-11/windows-11-monitor.socket - Serial: On host: socat -,echo=0,icanon=0 unix-connect:windows-11/windows-11-serial.socket - Process: ERROR! Failed to start windows-11.conf as windows-11 qemu-system-x86_64: -drive media=cdrom,index=0,file=windows-11/windows-11.iso: Could not open 'windows-11/windows-11.iso': No such file or directory ```

System information Run quickreport and include the output here; if you can't run quickreport, please provide the output of the following:

Quickreport output ```text ---------------------------------- Quickemu 4.9.6 ---------------------------------- Distro: NixOS 24.11 (Vicuna) Kernel: Linux 6.6.59 x86_64 Memory: 16G GPU: - NVIDIA Corporation TU106 [GeForce RTX 2060 Rev. A] (rev a1) ---------------------------------- curl 8.10.1 ---------------------------------- Libraries: libcurl/8.10.1 OpenSSL/3.3.2 zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0 nghttp2/1.63.0 Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd ---------------------------------- QEMU 9.1.1 ---------------------------------- Available CPUs: 486 (alias configured by machine type) 486-v1 Broadwell (alias configured by machine type) Broadwell-IBRS (alias of Broadwell-v3) Broadwell-noTSX (alias of Broadwell-v2) Broadwell-noTSX-IBRS (alias of Broadwell-v4) Broadwell-v1 Intel Core Processor (Broadwell) Broadwell-v2 Intel Core Processor (Broadwell, no TSX) Broadwell-v3 Intel Core Processor (Broadwell, IBRS) Broadwell-v4 Intel Core Processor (Broadwell, no TSX, IBRS) Cascadelake-Server (alias configured by machine type) Cascadelake-Server-noTSX (alias of Cascadelake-Server-v3) Cascadelake-Server-v1 Intel Xeon Processor (Cascadelake) Cascadelake-Server-v2 Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES] Cascadelake-Server-v3 Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES, no TSX] Cascadelake-Server-v4 Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES, no TSX] Cascadelake-Server-v5 Intel Xeon Processor (Cascadelake) [ARCH_CAPABILITIES, EPT switching, XSAVES, no TSX] Conroe (alias configured by machine type) Conroe-v1 Intel Celeron_4x0 (Conroe/Merom Class Core 2) Cooperlake (alias configured by machine type) Cooperlake-v1 Intel Xeon Processor (Cooperlake) Cooperlake-v2 Intel Xeon Processor (Cooperlake) [XSAVES] Denverton (alias configured by machine type) Denverton-v1 Intel Atom Processor (Denverton) Denverton-v2 Intel Atom Processor (Denverton) [no MPX, no MONITOR] Denverton-v3 Intel Atom Processor (Denverton) [XSAVES, no MPX, no MONITOR] Dhyana (alias configured by machine type) Dhyana-v1 Hygon Dhyana Processor Dhyana-v2 Hygon Dhyana Processor [XSAVES] EPYC (alias configured by machine type) EPYC-Genoa (alias configured by machine type) EPYC-Genoa-v1 AMD EPYC-Genoa Processor EPYC-IBPB (alias of EPYC-v2) EPYC-Milan (alias configured by machine type) EPYC-Milan-v1 AMD EPYC-Milan Processor EPYC-Milan-v2 AMD EPYC-Milan-v2 Processor EPYC-Rome (alias configured by machine type) EPYC-Rome-v1 AMD EPYC-Rome Processor EPYC-Rome-v2 AMD EPYC-Rome Processor EPYC-Rome-v3 AMD EPYC-Rome-v3 Processor EPYC-Rome-v4 AMD EPYC-Rome-v4 Processor (no XSAVES) EPYC-v1 AMD EPYC Processor EPYC-v2 AMD EPYC Processor (with IBPB) EPYC-v3 AMD EPYC Processor EPYC-v4 AMD EPYC-v4 Processor GraniteRapids (alias configured by machine type) GraniteRapids-v1 Intel Xeon Processor (GraniteRapids) Haswell (alias configured by machine type) Haswell-IBRS (alias of Haswell-v3) Haswell-noTSX (alias of Haswell-v2) Haswell-noTSX-IBRS (alias of Haswell-v4) Haswell-v1 Intel Core Processor (Haswell) Haswell-v2 Intel Core Processor (Haswell, no TSX) Haswell-v3 Intel Core Processor (Haswell, IBRS) Haswell-v4 Intel Core Processor (Haswell, no TSX, IBRS) Icelake-Server (alias configured by machine type) Icelake-Server-noTSX (alias of Icelake-Server-v2) Icelake-Server-v1 Intel Xeon Processor (Icelake) Icelake-Server-v2 Intel Xeon Processor (Icelake) [no TSX] Icelake-Server-v3 Intel Xeon Processor (Icelake) Icelake-Server-v4 Intel Xeon Processor (Icelake) Icelake-Server-v5 Intel Xeon Processor (Icelake) [XSAVES] Icelake-Server-v6 Intel Xeon Processor (Icelake) [5-level EPT] Icelake-Server-v7 Intel Xeon Processor (Icelake) [TSX, taa-no] IvyBridge (alias configured by machine type) IvyBridge-IBRS (alias of IvyBridge-v2) IvyBridge-v1 Intel Xeon E3-12xx v2 (Ivy Bridge) IvyBridge-v2 Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS) KnightsMill (alias configured by machine type) KnightsMill-v1 Intel Xeon Phi Processor (Knights Mill) Nehalem (alias configured by machine type) Nehalem-IBRS (alias of Nehalem-v2) Nehalem-v1 Intel Core i7 9xx (Nehalem Class Core i7) Nehalem-v2 Intel Core i7 9xx (Nehalem Core i7, IBRS update) Opteron_G1 (alias configured by machine type) Opteron_G1-v1 AMD Opteron 240 (Gen 1 Class Opteron) Opteron_G2 (alias configured by machine type) Opteron_G2-v1 AMD Opteron 22xx (Gen 2 Class Opteron) Opteron_G3 (alias configured by machine type) Opteron_G3-v1 AMD Opteron 23xx (Gen 3 Class Opteron) Opteron_G4 (alias configured by machine type) Opteron_G4-v1 AMD Opteron 62xx class CPU Opteron_G5 (alias configured by machine type) Opteron_G5-v1 AMD Opteron 63xx class CPU Penryn (alias configured by machine type) Penryn-v1 Intel Core 2 Duo P9xxx (Penryn Class Core 2) SandyBridge (alias configured by machine type) SandyBridge-IBRS (alias of SandyBridge-v2) SandyBridge-v1 Intel Xeon E312xx (Sandy Bridge) SandyBridge-v2 Intel Xeon E312xx (Sandy Bridge, IBRS update) SapphireRapids (alias configured by machine type) SapphireRapids-v1 Intel Xeon Processor (SapphireRapids) SapphireRapids-v2 Intel Xeon Processor (SapphireRapids) SapphireRapids-v3 Intel Xeon Processor (SapphireRapids) SierraForest (alias configured by machine type) SierraForest-v1 Intel Xeon Processor (SierraForest) Skylake-Client (alias configured by machine type) Skylake-Client-IBRS (alias of Skylake-Client-v2) Skylake-Client-noTSX-IBRS (alias of Skylake-Client-v3) Skylake-Client-v1 Intel Core Processor (Skylake) Skylake-Client-v2 Intel Core Processor (Skylake, IBRS) Skylake-Client-v3 Intel Core Processor (Skylake, IBRS, no TSX) Skylake-Client-v4 Intel Core Processor (Skylake, IBRS, no TSX) [IBRS, XSAVES, no TSX] Skylake-Server (alias configured by machine type) Skylake-Server-IBRS (alias of Skylake-Server-v2) Skylake-Server-noTSX-IBRS (alias of Skylake-Server-v3) Skylake-Server-v1 Intel Xeon Processor (Skylake) Skylake-Server-v2 Intel Xeon Processor (Skylake, IBRS) Skylake-Server-v3 Intel Xeon Processor (Skylake, IBRS, no TSX) Skylake-Server-v4 Intel Xeon Processor (Skylake, IBRS, no TSX) Skylake-Server-v5 Intel Xeon Processor (Skylake, IBRS, no TSX) [IBRS, XSAVES, EPT switching, no TSX] Snowridge (alias configured by machine type) Snowridge-v1 Intel Atom Processor (SnowRidge) Snowridge-v2 Intel Atom Processor (Snowridge, no MPX) Snowridge-v3 Intel Atom Processor (Snowridge, no MPX) [XSAVES, no MPX] Snowridge-v4 Intel Atom Processor (Snowridge, no MPX) [no split lock detect, no core-capability] Westmere (alias configured by machine type) Westmere-IBRS (alias of Westmere-v2) Westmere-v1 Westmere E56xx/L56xx/X56xx (Nehalem-C) Westmere-v2 Westmere E56xx/L56xx/X56xx (IBRS update) athlon (alias configured by machine type) athlon-v1 QEMU Virtual CPU version 2.5+ core2duo (alias configured by machine type) core2duo-v1 Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz coreduo (alias configured by machine type) coreduo-v1 Genuine Intel(R) CPU T2600 @ 2.16GHz kvm32 (alias configured by machine type) kvm32-v1 Common 32-bit KVM processor kvm64 (alias configured by machine type) kvm64-v1 Common KVM processor n270 (alias configured by machine type) n270-v1 Intel(R) Atom(TM) CPU N270 @ 1.60GHz pentium (alias configured by machine type) pentium-v1 pentium2 (alias configured by machine type) pentium2-v1 pentium3 (alias configured by machine type) pentium3-v1 phenom (alias configured by machine type) phenom-v1 AMD Phenom(tm) 9550 Quad-Core Processor qemu32 (alias configured by machine type) qemu32-v1 QEMU Virtual CPU version 2.5+ qemu64 (alias configured by machine type) qemu64-v1 QEMU Virtual CPU version 2.5+ base base CPU model type with no features enabled host processor with all supported host features max Enables all features supported by the accelerator in the current host Recognized CPUID flags: 3dnow 3dnowext 3dnowprefetch abm ace2 ace2-en acpi adx aes amd-no-ssb amd-psfd amd-ssbd amd-stibp amx-bf16 amx-complex amx-fp16 amx-int8 amx-tile apic arat arch-capabilities arch-lbr auto-ibrs avic avx avx-ifma avx-ne-convert avx-vnni avx-vnni-int16 avx-vnni-int8 avx2 avx512-4fmaps avx512-4vnniw avx512-bf16 avx512-fp16 avx512-vp2intersect avx512-vpopcntdq avx512bitalg avx512bw avx512cd avx512dq avx512er avx512f avx512ifma avx512pf avx512vbmi avx512vbmi2 avx512vl avx512vnni bmi1 bmi2 bus-lock-detect cid cldemote clflush clflushopt clwb clzero cmov cmp-legacy cmpccxadd core-capability cr8legacy cx16 cx8 dca de decodeassists ds ds-cpl dtes64 erms est extapic f16c fb-clear fbsdp-no flush-l1d flushbyasid fma fma4 fpu fred fsgsbase fsrc fsrm fsrs full-width-write fxsr fxsr-opt fzrm gds-no gfni hle ht hypervisor ia64 ibpb ibrs ibrs-all ibs intel-pt intel-pt-lip invpcid invtsc kvm-asyncpf kvm-asyncpf-int kvm-asyncpf-vmexit kvm-hint-dedicated kvm-mmu kvm-msi-ext-dest-id kvm-nopiodelay kvm-poll-control kvm-pv-eoi kvm-pv-ipi kvm-pv-sched-yield kvm-pv-tlb-flush kvm-pv-unhalt kvm-steal-time kvmclock kvmclock kvmclock-stable-bit la57 lahf-lm lam lbrv lfence-always-serializing lkgs lm lwp mca mcdt-no mce md-clear mds-no misalignsse mmx mmxext monitor movbe movdir64b movdiri mpx msr mtrr no-nested-data-bp nodeid-msr npt nrip-save null-sel-clr-base nx osvw overflow-recov pae pat pause-filter pbe pbrsb-no pcid pclmulqdq pcommit pdcm pdpe1gb perfctr-core perfctr-nb pfthreshold pge phe phe-en pks pku pmm pmm-en pn pni popcnt prefetchiti pschange-mc-no psdp-no pse pse36 rdctl-no rdpid rdrand rdseed rdtscp rfds-clear rfds-no rsba rtm sbdr-ssdp-no sep serialize sgx sgx-aex-notify sgx-debug sgx-edeccssa sgx-exinfo sgx-kss sgx-mode64 sgx-provisionkey sgx-tokenkey sgx1 sgx2 sgxlc sha-ni skinit skip-l1dfl-vmentry smap smep smx spec-ctrl split-lock-detect ss ssb-no ssbd sse sse2 sse4.1 sse4.2 sse4a ssse3 stibp stibp-always-on succor svm svm-lock svme-addr-chk syscall taa-no tbm tce tm tm2 topoext tsc tsc-adjust tsc-deadline tsc-scale tsx-ctrl tsx-ldtrk umip v-vmsave-vmload vaes vgif virt-ssbd vmcb-clean vme vmx vmx-activity-hlt vmx-activity-shutdown vmx-activity-wait-sipi vmx-any-errcode vmx-apicv-register vmx-apicv-vid vmx-apicv-x2apic vmx-apicv-xapic vmx-cr3-load-noexit vmx-cr3-store-noexit vmx-cr8-load-exit vmx-cr8-store-exit vmx-desc-exit vmx-enable-user-wait-pause vmx-encls-exit vmx-entry-ia32e-mode vmx-entry-load-bndcfgs vmx-entry-load-efer vmx-entry-load-pat vmx-entry-load-perf-global-ctrl vmx-entry-load-pkrs vmx-entry-load-rtit-ctl vmx-entry-noload-debugctl vmx-ept vmx-ept-1gb vmx-ept-2mb vmx-ept-advanced-exitinfo vmx-ept-execonly vmx-eptad vmx-eptp-switching vmx-exit-ack-intr vmx-exit-clear-bndcfgs vmx-exit-clear-rtit-ctl vmx-exit-load-efer vmx-exit-load-pat vmx-exit-load-perf-global-ctrl vmx-exit-load-pkrs vmx-exit-nosave-debugctl vmx-exit-save-efer vmx-exit-save-pat vmx-exit-save-preemption-timer vmx-flexpriority vmx-hlt-exit vmx-ins-outs vmx-intr-exit vmx-invept vmx-invept-all-context vmx-invept-single-context vmx-invept-single-context vmx-invept-single-context-noglobals vmx-invlpg-exit vmx-invpcid-exit vmx-invvpid vmx-invvpid-all-context vmx-invvpid-single-addr vmx-io-bitmap vmx-io-exit vmx-monitor-exit vmx-movdr-exit vmx-msr-bitmap vmx-mtf vmx-mwait-exit vmx-nested-exception vmx-nmi-exit vmx-page-walk-4 vmx-page-walk-5 vmx-pause-exit vmx-ple vmx-pml vmx-posted-intr vmx-preemption-timer vmx-rdpmc-exit vmx-rdrand-exit vmx-rdseed-exit vmx-rdtsc-exit vmx-rdtscp-exit vmx-secondary-ctls vmx-shadow-vmcs vmx-store-lma vmx-true-ctls vmx-tsc-offset vmx-tsc-scaling vmx-unrestricted-guest vmx-vintr-pending vmx-vmfunc vmx-vmwrite-vmexit-fields vmx-vnmi vmx-vnmi-pending vmx-vpid vmx-wbinvd-exit vmx-xsaves vmx-zero-len-inject vnmi vpclmulqdq waitpkg wbnoinvd wdt wrmsrns x2apic xcrypt xcrypt-en xfd xgetbv1 xop xsave xsavec xsaveerptr xsaveopt xsaves xstore xstore-en xtpr ---------------------------------- CPU ---------------------------------- Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 43 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 12 On-line CPU(s) list: 0-11 Vendor ID: AuthenticAMD Model name: AMD Ryzen 5 3600 6-Core Processor CPU family: 23 Model: 113 Thread(s) per core: 2 Core(s) per socket: 6 Socket(s): 1 Stepping: 0 Frequency boost: enabled CPU(s) scaling MHz: 85% CPU max MHz: 4208.2031 CPU min MHz: 2200.0000 BogoMIPS: 7186.16 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca sev sev_es Virtualization: AMD-V L1d cache: 192 KiB (6 instances) L1i cache: 192 KiB (6 instances) L2 cache: 3 MiB (6 instances) L3 cache: 32 MiB (2 instances) NUMA node(s): 1 NUMA node0 CPU(s): 0-11 Vulnerability Gather data sampling: Not affected Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Reg file data sampling: Not affected Vulnerability Retbleed: Mitigation; untrained return thunk; SMT enabled with STIBP protection Vulnerability Spec rstack overflow: Mitigation; Safe RET Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected ```
lj3954 commented 1 week ago

Quickget successfully downloaded the windows ISO, as opposed to you downloading it yourself after a failure, correct?

iopq commented 1 week ago

Quickget successfully downloaded the windows ISO, as opposed to you downloading it yourself after a failure, correct?

Yes, but as opposed to the Windows 10 script, it didn't correctly start it after just the two lines I typed

lj3954 commented 1 week ago

Are you completely sure the ISO successfully and fully downloaded, as opposed to throwing an error and prompting you to download it yourself? Does pointing the config file to the correct path allow the VM to boot correctly?

Looking at the code, I don't believe it shouldn't be possible for this issue to occur.

iopq commented 1 week ago

Are you completely sure the ISO successfully and fully downloaded, as opposed to throwing an error and prompting you to download it yourself? Does pointing the config file to the correct path allow the VM to boot correctly?

Looking at the code, I don't believe it shouldn't be possible for this issue to occur.

I have the .iso downloaded just fine, it did complete. I do run into a separate issue later when installing, though:

https://github.com/quickemu-project/quickemu/issues/1475

but this isn't related to the issue at hand since the iso actually booted into the installer after I changed the .conf file

The only thing I can think of is I restarted the installer a few times because the virt drivers were taking hours to download and they finally finished when I downloaded through a proxy

lj3954 commented 1 week ago

That would probably do it. You restarted the download enough times for Microsoft to ratelimit you while getting the URL for the Windows ISO, making quickget skip the step and set the ISO filename to a default value. That's not going to be an issue that we can fix.

iopq commented 1 week ago

That would probably do it. You restarted the download enough times for Microsoft to ratelimit you while getting the URL for the Windows ISO, making quickget skip the step and set the ISO filename to a default value. That's not going to be an issue that we can fix.

The .iso is already downloaded and the file is 100% complete, it seems you should be able to skip that step once you already get an iso

lj3954 commented 1 week ago

Quickget has a --create-config flag that can be used with existing ISOs. Otherwise, it will always get a URL, expecting to require a download. The only way it will determine you already have the correct ISO already downloaded is if it (curl) has a filename & size to check for, which would require getting a URL.