Settings

Theme

Quickemu: Quickly create and run optimised Windows, macOS and Linux VMs

github.com

197 points by teekert 4 days ago · 43 comments

Reader

downut 15 hours ago

> quickget windows 10 Downloading Windows 10 (English International) - Parsing download page: https://www.microsoft.com/en-us/software-download/windows10I... - Getting Product edition ID: 2618 - Permit Session ID: ea2e2386-932a-44f2-b9b1-da7629b3d601 - Getting language SKU ID: 16068 - Getting ISO download link... - URL: https://software.download.prss.microsoft.com/dbazure/Win10_2... #################################### #################################################################################################### 100.0% Downloading VirtIO drivers... #################################################################################################### 100.0% Downloading Spice drivers... #################################################################################################### 100.0% #################################################################################################### 100.0% #################################################################################################### 100.0% Making unattended.iso Making windows-10.conf - Setting windows-10.conf executable

To start your Windows virtual machine run: quickemu --vm windows-10.conf

> quickemu --vm windows-10.conf ERROR! QEMU 6.0.0 or newer is required, detected 10.1.2.

dang a day ago

Related. Others?

Quickemu: Quickly run optimised Windows, macOS and Linux virtual machines - https://news.ycombinator.com/item?id=39188432 - Jan 2024 (133 comments)

mmastrac a day ago

I've been trying to do something similar to set up Windows VMs with developer tools. This would be awesome if there was a way to inject a `ps1` script where we could go through the awkwardness of installing choco and various dev tools.

For anyone interested, the magic incantation in the autoattend.xml is:

    <settings pass="specialize">
    <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
        <RunSynchronous>
        <RunSynchronousCommand wcm:action="add">
            <Order>1</Order>
            <Path>cmd /c powershell.exe -ExecutionPolicy Bypass -File A:\scripts\setup-dev.ps1 &gt; \\.\COM1</Path>
            <Description>Run dev setup script</Description>
        </RunSynchronousCommand>
        </RunSynchronous>
    </component>
    </settings>
Redirecting to COM1 is a fun hack I discovered that allows you to remotely monitor these from build scripts.

Even better would be figuring out how to slipstream the choco packages into the ISO - it's not super reliable to install these packages in my recent experience.

peter_d_sherman 3 days ago

Brilliant!

This may just become my next most favorite project on GitHub!

For anyone who would create their own OS, or just experiment with other OS'es, this could be a godsend!

The set of ideas which gives rise to this tool are brilliant, and while I haven't reviewed all of the code for potential security implications (as I would want to if I were deploying it to a production server in a business environment) -- it looks very well thought out at first glance!

Extra kudos for having a flake.nix (for us Nix users!)

(If you're using NixOS or the Nix package manager, you can download it here https://search.nixos.org/packages?channel=25.11&query=quicke... , i.e., "$ nix-shell -p quickemu")

And extra extra kudos for having Alpine, Nix, ReactOS, TinyCore and OpenBSD as downloadable OS choices!

In the future, I'd love to see Windows XP, Windows 2000, and Windows NT too (assuming that Microsoft would permit that!) -- but that would just be the icing on the cake!

Short review: There's potentially something for everyone here! (Well, any OS person! Could Minix 3 be added in the future? :-) )

Long review: Will definitely have to watch this project in the future, to see where it goes!

  • ryandrake a day ago

    My first reaction was: Fuck! Terrible timing!! I just spent the last few days (during some time off from work) manually setting up macOS and Windows qemu VMs on my homelab running Proxmox, just to see if I could do it. And navigating all the janky, old tutorials, forums full of "try this" junk, hitting roadblock after roadblock (ProTip: macOS versions > Monterey will NOT run on Ivy Bridge processors in a virtualized environment) and trying to filter out and dodge AI garbage advice, was a real slog. Why didn't I see this article the first time it made the rounds on HN???

    My second reaction was in line with yours. This is awesome. Bookmarked already. +1 for the suggestion of doing more ancient Windows versions.

    • 2setIntrsction 14 hours ago

      lol I just moved from the same setup to a fully Nix based homelab.

      Proxmox was a good start but I don’t need it (I think)

fraserphysics a day ago

I thought that macOS was proprietary, and that apple only allowed it to be run on apple hardware. Just last month, I used incus to test a software package in 6 Linux distributions. I want to also test the package in macOS. Must I get a license from apple to do that with Quickemu?

  • mmastrac a day ago

    Officially? You can't get a license.

    Unofficially? https://github.com/kholia/OSX-KVM

  • eek2121 a day ago

    hackintoshes have been a thing forever. Apple hopes to kill them off with the transition to arm...SPOILER: they won't.

    • trollbridge 17 hours ago

      The problem is that macOS ARM uses extra features that don't exist on CPUs outside of Apple Silicon. So you can run virtual macOS ARM on a macOS host (such as inside UTM), but not on anything else.

      There isn't currently a real ecosystem of non-Apple ARM machines anyway.

    • Wowfunhappy 20 hours ago

      Uh, I think they will! A few people will just keep running older versions forever, but anyone who wants a modern Mac operating system is going to be out of luck once Intel support is dropped next year.

      Intel-based Macs were fundamentally commodity hardware. You can buy AMD GPUs which are very close to what Apple shipped. Select the right components, add a few software patches, and everything just kind of works.

      By contrast, you can't get an Apple Silicon GPU. And on ARM, macOS doesn't support software rendering at all. Graphics alone are going to kill any future Hackintosh prospects, because even if you can get Darwin to boot on your ARM laptop, you won't be able to display anything.

      An an aside, Apple never seemed to try very hard to kill personal Hackintoshes, I really don't think they cared. Now it's going to happen incidentally.

hoppp 3 hours ago

I feel the need for this as I went from raw dogging qemu commands to using virt-manager and its still not perfect.

westurner 3 days ago

IOMMU GPU passthrough with device selection would be a helpful feature: https://www.google.com/search?q=gpu+passthrough+qemu

LXD manages qemu VMs and supports snapshotting, live migration, and a number of storage drivers: https://news.ycombinator.com/item?id=45270468

virtio-gpu-rutabaga works with Android VMs on qemu, but does it work with Win/Mac/Lin: https://news.ycombinator.com/item?id=42921315

  • subscribed 3 days ago

    I would love that so much. That's the feature I wanted to play for the longest while, but the shortage of time just doesn't let me.

    That would be a jixe step up.

utopiah 12 hours ago

I'll keep it in mind but honestly learning the basics of QEMU is probably a safe bet. It's a bit like bash, you might like it or not but decades later it's still there, on most devices. Plenty of tools rely on it and getting the basics right is really a matter of following a 15min tutorial.

tempodox a day ago

I have to try this. All my previous attempts to get to grips with qemu left me with the impression that it’s strictly for rocket scientists. This might ease the learning curve for me.

clircle a day ago

Is this less buggy than UTM on apple silicon?

  • c-hendricks 3 hours ago

    I'm not even sure it supports aarch64 hosts. There doesn't seem to be anything in there re: Arch ARM which sucks because that's a bit of a pain to set up.

    For something that is a bash wrapper over qemu these limitations are surprising.

  • blacksmith_tb 16 hours ago

    Is UTM buggy on Apple Si? I have been running an aarch64 Ubuntu VM on my M4 Mini for a while without any problems. Haven't tried macOS or Win guests though.

binary132 21 hours ago

This type of thing always makes me think about an alternate timeline where Docker never got popular because VM runtimes and tooling did everything Docker can do, better.

vjay15 14 hours ago

Really useful tool, OSS for the win!!!

yinyang_in 16 hours ago

How does it differ from Vagrant ?

dontdieych 21 hours ago

No support for aarch64 host? (Asahilinux)

dartharva 17 hours ago

No Windows binaries, even as qemu itself fully supports Windows hosts?

999900000999 a day ago

I'm a little confused as to why projects like this support macOS since at a minimum it's a TOS violation.

Doing stuff like this, and integrating it into the main project puts the whole thing at risk.

The only real reason to MacOS is it's tight integration with Mac hardware.

Weird flex...

  • pamcake 21 hours ago

    I don't see any legitimate existential risk for the devs or project?

    ToS are only relevant for those who are a party to it - this is the users responsibility.

    Historically, while Apple is protective of their IP they have not been acting like Nintendo with regards to emulators and hackintosh and such in court.

    Weird concern unless you can point to actual threats or precedence.

    > Weird flex

    On the contrary, it's a legitimately useful feature that has popular demand.

    • 999900000999 19 hours ago

      It's arguably violating Apple's IP rights, they have taken down similar projects.

      https://www.xda-developers.com/i-tried-running-macos-inside-...

      In the article it's mentioned a docker version of this got a dmca takedown.

      Apple does not license MacOS for use on hardware they don't sell. It can be argued this feature does not have any legitimate functionality.

      At the same time, if you must decide to violate the license terms of OSX it should be done in a separate fork.

      GitHub will just delete the whole project if Apple ever catches wind of it and complains. The DMCA isn't exactly a court proceeding, usually the content host determines the juice isn't worth the squeeze.

      That sucks for everyone who decides to use it for legitimate purposes.

      To be blunt Apple gate keeps there software and build tools behind expensive hardware. If you disagree, use different software.

      Edit: Given I'm 90% sure they aren't running Arm OSX anyway, this is going to be irrelevant in about 2 years.

  • steelbrain 19 hours ago

    > I'm a little confused as to why projects like this support macOS since at a minimum it's a TOS violation.

    As others have pointed out, emulating macOS is only a ToS violation if done on non-Apple hardware, and this tool supports macOS. There is a legitimate usecase of running macOS VM on macOS.

    Sure, you could use some apple-provided emulation tool instead of QEMU but that's a matter of choice, not a violation of ToS.

    Disclaimer: I'm not a lawyer. This is not legal advice.

  • rekttrader 21 hours ago

    It’s for running MacOS on Apple hardware. Apple has their own container tech now, Qemu just makes it easy to run everything else including MacOS

    • amelius 21 hours ago

      But an emulator should be able to run it on any other hardware where the emulator suite runs, imho.

      Otherwise it's not an emulator but some kind of pass-through mechanism.

  • Brian_K_White 16 hours ago

    weird reaction

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection