Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
UTM – Virtual Machines for iOS and macOS (github.com/utmapp)
342 points by eiiot on Aug 31, 2023 | hide | past | favorite | 169 comments


I used this a couple of weeks ago to install Windows 11 ARM on macOS (Ventura on a new M2), looking to replace Fusion. It was disappointing:

* Integration tools like copy/paste between VM and host, or file sharing, didn't work

* Graphics constantly glitched, often going to a grey screen. There seemed no way to recover, and I had to force restart the VM

The drivers / assistant tools have a 2012 date on them.

I'm aware it's a free product and I have no right to expect anything (and I don't; I went back to Fusion.) And perhaps the situation would improve if I or others financially supported the project, which seems a better response to issues :) Nevertheless I went in hoping I could replace the commercial VM solutions, which on Mac have required yearly updates that deliver almost no new value, with something open source -- and I can't yet.


Copy paste definitely works. I go back and forth all day. Did you install the SPICE tools?

https://docs.getutm.app/guest-support/windows/#windows-xp-an...

I've also not seen any graphical errors, I'm not trying to play games though. I just use it for basic desktop apps.


I did install them. I noticed they had a 2012 date, which surprised me. Maybe the wrong ones are available?


I use it as a really nice qemu wrapper, and if you treat it as one it’s amazing.


But you can't edit any of the qemu arguments?

I wanted to run some risv emulation, and I need to remove some device from the default args UTM has, and nope. Not editable.

Unless I'm missing something..


I think the VM has to be switched off, not just suspended for the arguments to be editable. There are also some flags that UTM insists on and won't let you remove, which actually seems kind of reasonable - QEMU is really low-level and it's possible to run it in modes where UTM won't be able to connect to it.


Do you have copy-paste and shared folders working in Fusion (with a Windows ARM VM)? Last I checked VMware Tools did not support those features yet.

Edit: The Fusion 2023 Tech Preview [1] installs the full VMware Tools and supports copy-paste.

1. https://customerconnect.vmware.com/downloads/get-download?do...


That's of no surprise, because OpenGL does not work. Pretty useless, considering how many apps use that nowadays.


Maybe connecting through MS RDP tool would offer a better UX


How can you go back to Fusion on Apple silicon? No copy paste, no display scaling, no file share... It's horrible.


I'm using the Fusion 13 Tech Preview, which has all of those bar file sharing, so I'm just using git to transfer :)

It has one glitch where the screen goes black sometimes when changing apps (maybe a new DirectX context or something), but that's easy to resolve by just resizing the window a few pixels to change the VM resolution. I usually use my VMs fullscreen so this is a slight adjustment to normal, but it's workable until they release Fusion 13's official version.


Wdym you’re using git?


UTM is great, and once snapshot capability is added [1] it will become my default recommendation for sure. Until then sticking with Parallels. NOTE: An unofficial snapshot manager exists [2].

1: https://github.com/utmapp/UTM/issues/5484

2: https://github.com/Metamogul/UTM-Snapshot-Manager


As someone who would always practice the habit of doing development within VMs as opposed to my actual system for a number of reasons, I tried UTM and played with it for a long time to host ARM64 Linux VMs on my M1 Macbook Pro, however the file sharing issues plagued me - with the most common problem being, having my shared folders disappear suddenly from the guest VMs, and having to do workarounds to get them back, quite often. Next, I tried VMWare Fusion, but it has the same problem. After that I tried Parallels, which seemed too expensive, so I jumped to Lima.

I am glad to have found Lima - it also is based on QEMU and made bringing up linux VMs very easy and provided network sharing out of the box. Now all my development lies within these Lima VMs and I am happy to report I never had a problem. I know I could do display forwarding if needed but I am good with these headless instances for now (thanks to VSCode).


I've been using a similar setup for a while now. I just use SFTP for file sharing. Never bothered to try UTM's file sharing feature.


While this is a good alternative, some tools like git clients and other things that I run on the host system can't be worked out via SFTP


Use sshfs.


this seems like a perfect use case for NFS. zero network problems to mess with anything (because it's a virtual network between host and VM), it's very easy to set up, and it should be quite fast indeed. 9p would be another option, I suppose, though I don't know of any 9p servers for MacOS.


APFS supports copy on write snapshots today, for any filetype. I would think that snapshot features in UTM would simply wrap that functionality.

as simple as `cp -c`

though if that were true, I guess it would be implemented already.


Hah, I was going to say that I've successfully faked a limited form of snapshots using clonefile, and then turns out that's what the implementation-in-progress is doing.


Does it support TPM emulation, and ansible/vagrabt?


Looks like they added TPM just last month: https://github.com/utmapp/UTM/issues/3082


The biggest problem with UTM is that it works great for some people, and works terribly for others.

Seriously, scroll up and down on the threads here on this page, and you'll see a bunch of people saying "I wish I could use UTM, but it doesn't work / is unusably slow" and a bunch of people replying "weird, it works great for me."

My experience: UTM has literally never worked for me. I just tried to do a bog standard Ubuntu ARM install on my M1 2021 Mac, following the guide here https://docs.getutm.app/guides/ubuntu/ and it failed. I'm staring at a blinking cursor on a black screen.

Sadly, the people for whom it works great can't really provide any useful technical support for the people for whom it doesn't work.

I even paid $10 for UTM on the Mac App Store, like a sucker, hoping that I could get some tech support that way, but the only tech support channel is their Discord, which is full of randos saying "lol, works for me, skill issue."

My recommendation: Give UTM a try! Either you'll love it, and save a bunch of money, or it won't work at all, like me, and you'll just have to pay $100/year for Parallels. Parallels is probably gonna just work.

If Parallels doesn't work for you, you can reach out to them and talk to a person who can help, because they want you to keep paying to renew your Parallels license. They're incentivized to help you succeed.


> Sadly, the people for whom it works great can't really provide any useful technical support for the people for whom it doesn't work.

I tried the latest debian (downloaded it off their website) and have had no issues, aside from one bizarre one. If you set your boot VM above a specific size, not even a large one, I mean like 30GB to 100GB (I forgot how much) then your VM boots really slow. And if you set it large enough, your VM will never boot. Adding a second drive of any size will not trigger this bug at all.


There's also Virtualbox.


Work issued me an M1 MacBook Pro, but all my development is under Linux. Linux has been my preferred environment since the late 90s. While I find the MacBook Pro hardware to be nice, I find macos clumsy and frustrating, and my productivity severely drops.

So, I run Fedora (aarch64) under UTM full screen. It works acceptably well, and I often forget I'm on a mac.

I just wish macos would get out of the way, and not sometimes knock you out of full screen mode.


I would definitely keep an eye out for Fedora Asahi Linux


The Linux -> macOS experience tbh is really either about putting up with macOS' issues and adjusting to them, or patching things up with third-party solutions to make it tolerable. Or a bit of both. I've learned to adapt to it since it's a shame to miss out on the reliable battery life.

Maybe there's a solution out there somewhere that would let you stay in full screen mode.


> I've learned to adapt to it since it's a shame to miss out on the reliable battery life.

Is the long battery life a feature you use often, or is it more of a "I'm glad it's there, just in case I need it" feature?


Maybe around once a week, sometimes twice? It's not so often, but on occasions when I have to, it's nice to have long, reliable battery life since they're usually the times when there's also a notable lack of power outlets, or it's inconvenient to set up to plug and charge.

But yeah, I can imagine myself in the same situations with UTM running nonstop and it'd still have enough battery life.


What specifically makes your productivity drop? I find having a terminal running bash on my mac is more or less same/same as being in linux. Occasionally the utils will not support a cli argument I am used to, but that's more of a versioning issue than a mac/linux issue, and one I have seen many times in my career sometimes just moving between boxes within a company.

The biggest headaches, though they aren't that big, is really about ARM vs x86, sometimes you will come across a package that just isn't supported on ARM, though that is increasingly rare.


I really don't like mac os's graphical shell. I am constantly frustrated by how terrible its window management and virtual desktop support is.

I also find developing on a mac is so frustrating. The package management experience is just such a downgrade.

And then there are the apps. All my daily apps are open source, and the apps I use just tend to work so much better on linux then on mac os (if they are even available on mac os!)


The defaults are terrible. I use rectangle for window snapping, mos for mouse scrolling, and alt-tab for saner alt tab behavior.

Why you can’t toggle between different instances of the same app by default is beyond me. But hey, we get more emojis!


> Why you can’t toggle between different instances of the same app by default is beyond me.

I’m not entirely clear on what your requirement here is. Historically, Mac OS X/OS X/macOS has had a different app and windowing model compared to Linux. If you’re looking to switch between windows of a single app, you can use the keyboard shortcut Cmd + ~ (that’s Command and tilde). There are also trackpad gestures to see all windows of an application (swipe down with three or four fingers) and switch.


Look into better touch tool for window management. I agree that was a pain and hard to get used to.


Rosetta works surprisingly well even on Apple's Virtualisation framework in Linux VMs. I've not come across a codebase that I can't develop locally on Apple Silicon in some capacity, whether that be on a VM or not. We've got a pretty annoying C++ repo to build that was very much written with the intention of only supporting x86 on Linux, and it wasn't too much of a hassle to set up an ARM Ubuntu VM through UTM and make a few minor tweaks to the build process (mainly just spoofing uname -m) to get things going.

Same goes for some .NET Framework apps we have; I've found an ARM Windows VM has been indistinguishable from x86 Windows.


I’m not the OP, but for me I yearned for two things: my favourite window manager and a system whose source code was easily within reach. I rarely use the latter and the former is something I could be coaxed away from over time, but really there’s little reason to change from a free and open system in 2023 when everything works so well.

I make do with being an XPS peasant compared to the beautiful rounded rectangles used by my peers on the basis that my machine is completely available to me in every way possible thanks to source code.


Any time the file dialog opens in macos my productivity drops to 0 for a few minutes while I try to do basic things like go up a directory or open my home directory.


I’d suggest that you lookup and learn keyboard shortcuts. Going up a directory is Cmd + Up Arrow, going to Desktop is Cmd + Shift + D, going to Documents is Cmd + Shift + O, going to Downloads is Cmd + Option + L, Cmd + Shift + G to bring a Go text input that understands ~ for home folder as well as autocompletes on tab, and so on. While macOS is not as keyboard friendly as Windows or Linux, it’s not totally devoid of it either.

If you’d like to have a more powerful experience with file dialogs, the paid application Default Folder X [1] is worth it.

[1]: https://stclairsoft.com/DefaultFolderX/index.html


A little dramatic. Put it in list mode and you’re good. Or drag the folder you want into the window.


I wouldn't call it dramatic, I feel like windows and linux (Caja, specifically for me) are mostly intuitive and natural but Finder is bizarrely alien and unproductive. There's not a native version of Caja to install so finder kind of makes lost in general.

Also Samba shares seem to mount perfectly on windows/Caja but on Finder there is some weird issue where after it working a few days suddenly you can't connect unless you use the terminal.


Cmd+shift+g brings up a dialog where you can type arbitrary paths to jump to. Cmd+(up arrow) goes up a directory. Took me way to long to figure these out, seems small but they definitely are productivity boosters :)


If you open the Finder preferences, you can add few useful things, like your $HOME to the sidebar.


you can also just drag any folder to the sidebar and it will be added there for you.


Right-click on the folder in the title bar of the finder window.

Click the parent directory or the home directory.


How much of a performance hit would you estimate you take from doing that? Seems like a nice solution if not too much


M1+ is quite fast hardware. If not for lack of hardware compatibility with projects based on x86/x64, it'd be the best option.

I think Parallells give you more, but I do a big window in UTM over 2 displays which works quite well and doesn't break rest of the OS X flow. Mic doesn't work, you occasionally have correct audio output, but OS X audio daemons sucks so it's a crapshoot if you get audio and where/how it's output. You don't get 3d accelleration I think, but haven't tried. It's not for games or Teams (neither is OS X).

But it works reasonably well for software that runs on arm64, which on Linux may limit you a bit. But you get to make things work either on OS X or Linux arm64, and the rest works well. You may not notice much overhead compared to OS X on M1+.

As with everything, you can make it work for you, but it's not for gaming, CAD, some proprietary or limited projects, etc. Should be fine for development and sysadmin stuff.

If something works on Linux arm64 on M1, it's quite well supported you might say. So you get to weed out some fluff, but also some nice things.


I've found Rosetta works really well with VMs using Apple's Virtualisation framework, to the point that I've not had any issues building niche proprietary x86-only C++ libraries like network card drivers. The only annoyance was spoofing uname -m and/or setting architecture build flags everywhere since build systems will try to target arm64, but actually getting things to build was far less painful than I thought it would be. I'm thoroughly impressed.

https://developer.apple.com/documentation/virtualization/run...


Given the multiple perf/$ boost of ARM on cloud hosts (e.g. AWS Graviton), that hardware compatibility can be put to work for recurring monthly profitability at the expense of helping OSS ecosystem learn that ARM exists.

https://www.theregister.com/2023/08/08/amazon_arm_servers/


I'm not doing any super heavy cpu workloads nor any heavy 3d graphics, so I don't really notice any issues.

Surprisingly, the battery lifetime is still excellent.


Asahi Fedora is supposed to come out in the next few days. There’s hope!


What’s stopping you from dual booting it?


Currently using Ashai on Arch Linux. The lack of Thunderbolt support is a deal breaker, as I need to use external monitors for work.

Still excited to see progress but I’m probably not going to be able to use Linux on a Mac for another 12 months.


You can't dual-boot on Apple Silicon Macs, outside of the experimental Asahi Linux.


As Asahi stabilizes (especially with their new Fedora remix), that is my plan.


In my case, their MDM software of choice doesn't run on Linux.


UTM has been a solid hypervisor for me for the past 2 years, and it's received several great functionality and feature improvements over that time too.

But perhaps my favourite aspect of UTM is that it stands for Universal Turing Machine (arguably the best name ever for a virtualization product).


What I don't like about Parallels and VMWare, is that they push all of those integrations between OS, like openings Windows from Windows in macOS. Or opening some documents from macOS right in Windows. I prefer to have VM isolated from my main macOS. So it is always going through all configurations and trying to figure out what I need to turn off.


Parallels has a single option in the Security settings tab: "Isolate VM from macOS". It disables all cross-machine integrations.


I have flashbacks from when I had parallels installed, and it would constantly try to open any file I double clicked with Notepad on Windows.


I realize that "for iOS" comes from the github project blurb., but I think that it's pretty misleading. The iOS installation options are basically a jailbreak (impossible on recent CPU/iOS versions) or semi-tethering and re-loading/signing the app every few days.

https://docs.getutm.app/installation/ios/#summary


With an Apple dev account you can sideload apps that last for a year FWIW. That’s what I do.


There's an app called reprosion that I've used in the past that can do the signing on your iOS device and even automate it. (I used it to load a semi-tethered jailbreak) The limit is 7 days. The app itself doesn't have to be reinstalled, just the signing cert.

I am very excited for sideloading to get implemented in the EEA, since that'll make this much easier.


> jailbreak (impossible on recent

Just think about that. Apple has successfully made hardware that they can distribute to 1 billion+ people, many of whom have something to gain by jailbreaking, yet not a single person has managed it.


This isn't because the software is secure, it's because nation-state actors outbid both Apple and the rest of the community for exclusive access to software vulnerabilities. New vulns often don't hit the jailbreak community for months or even years after the NSA has already used them to rifle through your shit.

Furthermore, to achieve what the jailbreak community would consider a usable jailbreak, you need to string together several different vulnerabilities or bypasses into a single exploit chain. Nation-state actors will settle for just attacking iMessage directly, which gives them all your text messages, but is entirely useless for loading unsigned code or injecting tweaks into apps.

To make matters worse, the UK is mulling a bill that would give them veto rights on security updates, specifically so that their old exploits would continue to work until they've bought new vulns.


> to rifle through your shit.

I keep pcap files of all my network traffic to protect myself against this. If anyone has been targeted by the NSA and can send me example traffic, then please do.

I so far haven't caught anyone doing anything nefarious, but with terabytes of traffic logged it's a bit of a needle in the haystack task. I keep the logs, because even if now their traffic is well hidden, I'm sure future analysis techniques will reveal them if they're there.


> I keep pcap files of all my network traffic to protect myself against this.

How does this work if you receive the payload via HTTPS? Do you MITM all your apps? (advanced version: can the payload be encrypted using an application-level Diffie-Hellman? e.g. if a JavaScript does a DH exchange and decrypts the payload with it)


I run everything in a recorded VM, allowing me to replay all the code on my machine to get those keys if I need to.


Sorry, you store terrabytes of traffic, and then _also_ store all memory read/writes for all your browsing using a VM?

What tooling do you use to record the VM? I'm unable to, with simple googling, find any tooling for VMs to do this, with all my results either being point-in-time snapshotting or video recording related.

How much data does that generate in a month?

No offense, but this claim just sounds fantastical to me.


That sounds interesting, what is the technical solution for this? Are the logs extremely huge?


s/your/journalists and family members of politicians/


... that we know of.


NSO Group entered the chat.


Being semi-tethered is arguably less hokey than being jailbroken if your aim is just to sideload apps.

It also works without all that but doing so is just the slowest of the 3 ways to run it.


I can't wait to see how EU sideloading will work. I hope they do it properly.


If you're running VMs on Mac for a development environment what you want is OrbStack: https://orbstack.dev/


Note that the product will be $8 per dev per month for commercial use once beta concludes.


Why does everything needs to be a subscription? I don't mind paying, but I'm not signing up of yet another subscription.


I get it — subscriptions suck, but I've explained why in the "Why a subscription?" box here: https://docs.orbstack.dev/faq#free


Fair, I should have found that.

Personally I disagree with the "Major version upgrades". To me that what I want, you release a product, I buy it knowing what it contains and what it does. My expectations are that I get security fixes for some period of time, but other than that the "no new features" is a feature all on its own.

I might be in the minority, but I'd pay $150 up front, rather than a $8 per month, knowing full well that I might need to pay another $100 the next time macOS is updated. It's not the money as much as it is the mental overhead of yet another subscription.

Customers need to be able to keep track of their subscriptions and after four or five that's it, you lose track and the money just disappear out of your account every month. Say that: Well the App Store lists all your subscriptions... is missing the point, because not all of my subscriptions are going to be centrally managed by Apple, Google or some one else. Again, it might just be me, but I believe that companies are losing out on sales because they're not offering straight up purchases. There's just no way to track sales lost because of it, so it's not on anyone's radar.

Edit: I checked the pricing on VMWare Fusion, it was release in 2020, it might have been cheaper on release, but let's assume it's not, that's $199 up front, I'd still be able to us it and I'm saving money. I can then upgrade it for $99, but I don't have to, unless I also upgrade my laptop to an M-series. So it's cheaper for me to buy an objectively better product. I might even get a discount if I buy bulk licenses or I'm already a VMWare customer. I get why subscriptions are attractive to the developers, but they provide no value to the customer.


> but I've explained why in the "Why a subscription?" box here

No you haven't, you've just regurgitated the usual argument made by people peddling subscriptions.

Its always the same old story, and charities do the same thing when seeking donation subscriptions...

The person selling the subscription says "oh, but its only $8 a month that's only half a Starbucks coffee"

Meanwhile, the REALITY for the person on the receiving end of the salesdroid is always the same ...."your sub is not the only thing going on with my life bud".

And its very true in IT, sub to this for $x, sub to that for $y, sub to that for $z, and soon enough you are "talking real money" as the old saying goes. And then if you are expecting the company to pay for an employee then that adds up exponentially in-line with the number of employees.

So, yeah, subscriptions suck ... for a real and valid reason.


agree with comments but a starbucks coffee is not $16.


Not yet.


Appreciate the transparency. Fwiw, I don't understand from the FAQ what's your opposition to jetbrains model, which has been universally praised for its friendly compromise of user vs developer needs. As the other commenter mentioned, a) subscriptions get too many and b) subscription model means I have to keep paying forever. It makes it crystal clear I am not buying and I am not owning my tool.

(that being said, I always appreciate and recognize the freedom of producer to charge whatever model they choose to, there's no moral qualms here:)


And maybe it is! We'll have to see how this all works out. I could very well be wrong about that.

In my opinion, JetBrains' perpetual fallback model is more of a psychological thing than something you'd actually utilize — at least I'd never consider staying on an old version myself, but maybe that's just me.

I've also talked to other devs, who mentioned that users staying on ancient versions because they don't want to pay again can be a major support burden.

One thing worth considering is that I plan to offer (optional) cloud services integrated into the app.

OrbStack is also relatively high-maintenance due to all the components it bundles.


It's not that, it's like others have said up the thread – the mental overhead of subscriptions is super annoying. (Sure, not if it was the only subscription you have, but it isn't.)

I let Jetbrains lapse a lot. But certainly not when I am actively using it. If I start using it regularly again (which I do, intermittently over the years) then I subscribe again.

But the thing is, that also solves the elephant in the room that devs don't want to talk about: a huge portion of subscription revenues comes from providing absolutely no value at all to customers. It's people paying for a subscription, being too busy to notice the charges -- or worse, too busy to figure out how to cancel them even thought they do notice, and mean to.

And devs can claim this is ethical, because they disclosed the subscription recurrence, and the responsibility lies with the customer to track all their subscriptions diligently, across all their platforms and billing methods, and cancel them whenever they stop using them.

And some people do that. But most do not.

So the other way to look at it is that subscription software models are just a scam. A way to exploit people who lack the organization, or have two jobs and kids, or whatever — and get money out of them without providing any value at all. For months, or even years in many cases. Of course it is great for your bottom line. But is it ethical? Even if you think it is, is it a cool thing to do?

I think both arguments make sense. It is debatable.

But personally, I would only want to do subscription billing if I had some means (perhaps via opt-in telemetry) to automatically detect when the product hasn't been used at all during the billing period, and not charge anything in those cases.


TBH, I had the same issue with nestbox. I'd love to have something like that, but monthly_cost*36 months is a lot of money!


Yup. And given how well it works already and the feature set, I’d say it’ll be well worth the money.


Crazy for what seems to be an alternative GUI for Docker. It's almost as much as we pay for Parallels licenses so we can use Vagrant on Apple Silicon. There's nothing "slow and clunky" about these VMs either.


I responded down here, but it's much more than an "alternative GUI for Docker": https://news.ycombinator.com/item?id=37335646

Of course, you're free to build your own with a VM and at least a couple months of full-time work to get the same feature set, just like with Dropbox :) Not saying it's for everyone.


> nothing "slow and clunky"

You obv. haven't experienced the difference.


I'd say Lima and Colima should be enough for most use cases:

https://lima-vm.io/

https://github.com/abiosoft/colima


Thanks for mentioning OrbStack! Happy to answer questions as the dev.


I visited your site and don't understand why OrbStack is a thing. It says it's a replacement for Docker Desktop but how is it better?


It's a few things:

1) Runs containers / VMs ("linux machines"). Here you get a linux instance with access to your complete filesystem (everything is mounted), similar to I guess WSL

2) Full docker compatible + docker-compose

3) As of this week kubernetes support

Everything is blazing fast to start (think 100-200ms). Aside that, there's one thing that's awesome: networking.

Every container gets a unique IP. No more portmapping.

Every containers also gets a unique hostname (+ip) -> testapp.orb.local

Every every docker-compose gets a unique subdomain -> web.testcompose.orb.local


The docs have more info: https://docs.orbstack.dev/

And a comparison: https://docs.orbstack.dev/compare/docker-desktop

I think you'll find something you like in there :) To name a few: Performance, CPU usage/power efficiency, automatic domain names for containers, access to volumes and image files from macOS, native app, and more.


Is running a MacOS VM within scope of what you want to build?


I don't want to say "never" to macOS or Windows VMs, but so far my plan is to focus on Linux and its applications (containers, Kubernetes, etc.).


Hey, I just switched from Linux to MacOS and I wondered how to best set up a work environment on MacOS. I don't really want to use brew as the sandboxing on MacOS seems to be much worse than I expected it to be e.g. as far as I see you can only prevent the access of $HOME/Desktop, $HOME/Documents and $HOME/Downloads. I found out that using Canonical Multipass allows you to easily set up ubuntu VMs and this I think it is a good way to create a working environment for development and of course by using it one can improve the sandboxing as everything is executed inside a vm.

-------

Now to come to the point your OrbStack seems to be really similar to Canonical Multipass, so I wondered how they do they compare to each other? Why should I prefer to use OrbStack over Canonical Multipass (besides the possibility of being able to run other distributions than ubuntu)?


For a tool tooting its own horn with claims like the one below, the lack of vagrant support is glaring.

> No matter the use case, OrbStack has you covered with features that simplify your workflow and help you move faster.


There's a feature request for Vagrant support: https://github.com/orbstack/orbstack/issues/105

Hasn't been that common of a request, and honestly I've never used Vagrant so not familiar with its benefits. People are already using OrbStack machines and its "orb" command to build dev envs with setup scripts, and cloud-init support will also be added: https://github.com/orbstack/orbstack/issues/38

I think cloud-init will be more useful since it's already widely used for setting up servers, whereas Vagrant is only for dev envs, but correct me if I'm wrong.


Plenty of companies use Vagrant. OrbStack's pricing is almost as much as an annual Parallels license for each of our devs. Most places using Vagrant will be using VirtualBox on Intel, or Parallels on Apple Silicon. So you haven't seen many requests because Vagrant users already have a solution and OrbStack wouldn't save enough money to ever switch to it.


As much as I think you should support Vagrant in your tool, that isn't the point I was making - whether it's worth supporting is something you need to decide for yourself.

The point I was making is this: Your claim is

> No matter the use case, OrbStack has you covered with features

But you don't support a common, cross-platform tool that's been around for ages and is used for managing developer environments - including running containers.


We looked at Orbstack, saw that there is no Vagrant support, and moved on.

I'll bet there are many other companies with a similar thought.

Orb stack is too young to warrant piling on the tickets, vs just assuming it is immature.


Fair. Another part of it is that I'm more focused on containers at the moment.


Can I make complex network setups with this? My biggest grievance with UTM is that I can only have 1 network interface on a VM.


Can you give an example? OrbStack currently sets up an IPv4+6 interface linked to a "unified bridge" with both the macOS host and other Linux machines on it, plus NAT to the outside world: https://docs.orbstack.dev/machines/network

You're also free to create your own interfaces on the Linux side, of course.


You can have as many as you like, but you have to pass them as arguments in the VM configuration. It's not intuitive but the instructions are here:

https://github.com/utmapp/UTM/issues/2722


Can second this, been loving it since I switched, has been great. VMs and Docker in one!


Great to hear! Quick question for you actually: what's the value prop of having VMs and containers in one? I've been having a hard time with that from a marketing perspective.


Less tools and software to keep up to date!


Looks really interesting, I will try to see whether we can benefit from it in our web-dev environments!


Someone pointed me to Lima which is a bit like wsl2 for macos: https://lima-vm.io

Not sure what is used underneath but it worked great for me.


Either QEMU or Virtualization.framework, pickable on vm creation.

colima is a layer upon lima that sets up a VM the easy way docker-machine/boot2docker style.


UTM is great for basic stuff but performance has been abysmal so not really viable as a workhorse in my day to day.

Nothing beats Parallels on Mac, worth every penny.


If you're on apple silicon and the VM is x86, I agree the performance is abysmal. I'm pretty sure this is just a QEMU issue and not really the fault of UTM. If your VM is aarch64, the VM performance is amazingly great and I can't recommend UTM enough.


I also experienced performance problems with Arch Linux ARM through UTM. Parallels seems to perform much better for me.

One issue might be that only OpenGL 2.1 is supported: https://github.com/utmapp/UTM/issues/4285


I love UTM.

It works great for my needs. I mostly develop infrastructure automation and configuration tooling and I run all my VMs in terminal mode. The wide availability of arm64 distros and OSes makes this easy.

I also use it to run a tiny pi hole instance when I'm traveling.


> I also use it to run a tiny pi hole instance when I'm traveling.

That's such a good idea. I used to run one using a raspberry pi, which got lost during the house move, so would love to do that.

Is is better than running it via Docker, e.g. from the resource usage pov? Do you have any good resources/tutorial to share?

PS. In pre-Apple Silicon times I used it to play with old versions of Windows, but now DosBox seems like a better choice for Win 3.11 or 95.


May I recommend a Dell Wyse thin client from eBay as a replacement for the rPi? They can be had for around $30, and they come with an 8GB onboard eMMC storage as well.


What's the advantage of spinning up an entire VM to run a local Pi Hole instance instead of just setting up a firewall or using a browser blocker like uBlock Origin? I was under the impression that spinning up a Pi Hole instance is really only necesary if you own devices which don't allow for such things, like smart TVs and other internet-connected appliances.


This is not a case of one or the other. I do all of the above and more.


...while you're traveling? Can you provide more details? I'm having a hard time wrapping my head around your use case.


Two things I love about UTM:

- The serial window.

- The ability to truly lock the mouse to the window.

I wanted to use it on my work provided machine, but when hooked up to my monitor, the performance was lacking (21:9, 1440p). Performance also felt the same across an M1 MacBook Air, an M2 MacBook Air, and an M2 MacBook Pro, so it felt like something was up, not that the machine just couldn't handle it.

Sadly, Parallels was the only thing I tried that performed well when connected to that monitor.


Shooting from the hip, all of those CPUs have very similar single core performance...the more expensive chips scale out, rather than up.

(yeah, there's a single core speed improvement across generations, it's just not earth-shattering)


Running Manjaro-i3 minimal edition quite well apart from expected lacks. But I don't need 3d accelleration.


It only lacks support to spin up/down multiple VMs via a simple configuration file (like Vagrant, for instance). If I want to spin up a small lab with N VMs with specific private IPs and the like, UTM is not the most dev-friendly tool. I think there's place for some tool in between UTM and QEMU.


I can't say enough nice things about UTM. Especially if you've ever tried using QEMU manually, you'll appreciate how much heavy lifting UTM is doing for you. (It's basically impossible to run QEMU "correctly" on macOS. It randomly crashes, issues non-existent instructions, or freezes in IO for seconds at a time, all of which are problems UTM doesn't have.)

Yes, I imagine there are fancier commercial VMs out there, but UTM is free and open source, and it works great. (I'm not a light user, either, I use it for Linux kernel work, and never had any cause to complain.)


Since this is essentially QEMU: does anyone here have a working build of the QEMU guest utilities for Windows? No matter what one tries, they're all severely broken. Or alternatively, anything that can run Windows 7 x32 on an Apple Silicon machine.

(Why? Because I need to run Samsung ODIN, which is windows-only)


I think what would be amazing would be if one day it is possible to run macOS on an Apple Silicon iPad. This seems like it would be something that many people would want, so I guess there are technical issues preventing this. In another thread, the absence of JIT support has been mentioned for example.


Memory is another issue. There isn’t much extra TAM on the iPad. I ran UTM in my iPad Pro once and crashed it when trying to use a VM with too much RAM.


Used this to create a Debian VM on my M2 Mac mini. Works great.


What settings are you using to get 3d acceleration working with full panel resolution? I've tried dozens of settings/image combinations trying to get this to "work great" and have failed.


With a desktop env? I have only been able to get terminal environments working on my M1 MBP


Yes, the process is the same as any other Linux desktop environment.

There are a bunch of VM images you can download at https://mac.getutm.app/gallery/


I’ve been using it to run Kali Linux ARM edition for the Pen-200 course. And it works really well, everything just feels snappy. My only grape is the scaling and hi-res screens is less refined than for example vm-guest tools from VMware. But these can be fixed from the guest vm itself.


It’s impressive for what it is. But after noodling around with UTM and Fusion, I subscribed to Parallels, and it’s on a whole different level. I used it years and years ago to emulate x86 on PowerPC Macs, and it’s the gold standard. Night and day.


Great project. Just hoping for command line attach/detach of USB devices and we can use it in our CI setup for some stuff.


Doesn’t have hypervisor on non-jailbroken iOS devices. It’s really a shame, otherwise I’d had my Linux iPad dream device.


I used UTM extensively when creating an almost-no-touch tool for developers to setup their Macbook devices at the company I work for.

There's really no other convenient way to do this. It was awesome to be able to run the tool on a fresh MacOS install, test the effects, make some changes, then do it all over again with little fuss.

Thanks UTM!


I wish Apple would drop the 2 VM limit for virtualized macOS.

UTM is really nice for running Xcode as a build server, but being limited to two VMs sucks. I build lots of software with old macOS versions because I still support macOS versions that Apple no longer supports.


It's amazing the level of abuse the average Apple developer tolerates.

There's money to be made on Apple's platforms, to be sure, but putting up with nonsense like VM limits and what-not is insanity.

I remember a time when it was against the EULA to virtualize OSX at all. Finally, perhaps a decade late, Apple grants virtualization to the commoners and people rejoiced - Stockholm Syndrome-esque.

Apple gets away with this not just because people accept it, they welcome it.

Meanwhile, most other platforms bend over backwards to make development easy.


It's as if Apple's purpose is a "don't make me think" level of end user experience and trust, and their assumption is engineers will need to invest extra effort to enable that priority.

It's not just Apple. Developer-experience focused web frameworks make one time creation easier, at the expense of users who run it every time. The priority is upside down.

Thankfully, for hardware, wallet-share shows there's money to be made from giving users a curated experience at the cost of nominal incremental developer effort.

And the resurgence of SSR (new old hotness?) shows the same can hold true on the tech stack.


It's not mutually exclusive though.

A developer can be allowed to spin up N vm's and Apple can still provide an amazing end-user experience.

It's just a EULA thing... there's no technical reason. It's "just because".


They could just sell it as an add-on. I paid a lot of money to have more RAM in my machine, I'd pay again to be able to use that RAM to run more VMs. (I would of course still complain about it)


> Apple grants virtualization to the commoners and people rejoiced

Nobody rejoiced. Everyone who virtualises macOS complains about the limit. It's a shame, they made it so much easier to create macOS VMs on M2 (Metal finally just works!!), but then they crippled them on purpose (no iCloud, no App Store, max 2 VMs enforced by the virtualisation framework)

I wonder if you could go after them on anti-competitive grounds? I'm pretty sure the machines that Xcode cloud run on are not limited to 2 VMs.


I use this to run pi-hole on Debian on my old Mac mini which also hosts our network Time Machine.


This is a great reminder for me to get off the Parallels "Give me $70 every year for absolutely nothing" train. Thank you @eliot!

Has anyone found a reasonably painless way to migrate their disk images from Parallels to UTM?


> Has anyone found a reasonably painless way to migrate their disk images from Parallels to UTM?

These instructions may do the trick: https://github.com/utmapp/UTM/issues/4927#issuecomment-16294...


> absolutely nothing

They do release new versions that maintain compatibility with the latest versions of macOS, and Parallels Tools updates that maintain compatibility with the latest versions of Windows and Linux.

So not nothing... but I agree $70/year is a bit much for maintenance updates.


Besides running Windows 11 VM, I use UTM to run Windows 98 on ARM-based MacBook. Great for playing old games on modern Mac devices.


Too bad jit isn’t working on iOS 17 because of the new personalized developer disk images for debugging.


If only this was on the iOS App Store…


yes, I'm confused... what's new or interesting in this post? People have been using UTM for years.


Poster seems? to be a dev interested in Macs. So probably boosting a favorite tool.


Why? I haven't ever used the iOS store, but having a git repo should befar better as an option so you can verify that it is made properly, and not infected with a little extra tracking and such whenever it's added to the iOS store.


By not being on the App Store, it becomes a significant hassle to get it running.

https://news.ycombinator.com/item?id=37334977


a git repo isn't that useful if you have to buy a $1000 device to build it. There's plenty of people with iOS devices, but only linux laptop and desktop computers.


My understanding is that JIT support for faster emulation requires a developer debugging-related entitlement which is not available in distributed apps.


Can't wait for Apple to enable side loading so my iPad will become useful one day with this.


Even then you won't be able to get good performance without jailbreak because Apple makes doesn't let any third party app use JIT.


That’s the whole point of the third party app stores that are coming next year. Apple will only be able to control apps on their app store.


My iPad Pro is a pro consumption device. I want a productivity device. :(


OpenBSD

Anyone have tips on how to boot OpenBSD with UTM?


What exactly is the problem? I had no problems booting FreeBSD. I don't think OpenBSD is any different.


You mind sharing the instruction guide to how you installed FreeBSD within UTM on Apple Silicon.

OpenBSD won’t even initialize on UTM/AppleSilicon for me.


The FreeBSD qcow2 can be used directly without running an install. The one that I used was FreeBSD-13.2-RELEASE-arm64-aarch64.qcow2

For OpenBSD, the installer works after adjusting the devices in the guest.

https://cdn.openbsd.org/pub/OpenBSD/7.3/arm64/install73.img

  - UTM / Create New Virtual Machine / Virtualize / Other
  - Select 'Skip ISO boot' / Continue
  - Hardware / (adjust as needed) Continue
  - Storage / (adjust as needed) Continue
  - Shared Directory / Continue
  - Select 'Open VM Settings' / Save
  - Right-click on Devices/Display and select Remove
  - Devices / New / Serial
  - Drive / New / Import and select install73.img
  - Edit the VM again and move the second VirtIO Drive to the first position by right-clicking on it and selecting 'Move Up'
If you feel inclined, hop on to the UTM Discord and the folks there (me included) should be able to help out.


Is there a way to use Vagrant with UTM?


There's an open issue [1]. A scripting interface has since been added [2], and updated [3], so there's progress.

[1] https://github.com/hashicorp/vagrant/issues/12518

[2] https://github.com/hashicorp/vagrant/issues/12518#issuecomme...

[3] https://github.com/hashicorp/vagrant/issues/12518#issuecomme...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: