Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

MacRumors

macrumors bot
Original poster
Apr 12, 2001
68,595
39,464


New M4-based Macs are reportedly unable to run virtual machines of older macOS versions prior to macOS Ventura 13.4, according to user reports and developer findings.

M4-MacBook-Pros-Thumb.jpg

According to an in-depth write-up by the Eclectic Light Company's Howard Oakley, security researcher Csaba Fitzl highlighted the issue, which has been documented in Apple Feedback and affects popular virtualization software including UTM. When attempting to run a virtual machine with an earlier version of macOS on M4 Macs, users encounter a black screen, and the VM fails to boot entirely.

The limitation appears to occur during early kernel boot processes, as indicated by Activity Monitor showing only one active virtual core despite multiple cores being allocated. This suggests the failure happens before the VM kernel can initialize additional cores.

The limitation is not an issue on M1, M2, and M3 Macs, all of which can successfully run VMs of macOS Monterey (12.0.1) and later versions (with some limitations), though Big Sur virtualization was never supported on Apple silicon Macs.

For users who rely on older macOS versions in virtual machines for testing or compatibility purposes, this limitation may be an important consideration before upgrading to M4-based Macs. Currently supported macOS versions for virtualization on M4 Macs include:
  • macOS Ventura 13.4 and later
  • macOS Sonoma 14
  • macOS Sequoia 15
Given the nature of the issue occurring early in the boot process, Oakley reports that a fix would likely require Apple to release updated IPSW files for older macOS versions, which would be unprecedented for the company, perhaps making it unlikely.

The restriction adds to existing virtualization limitations on Apple silicon Macs, such as the inability to run App Store applications in VMs. Apple did however introduce a notable enhancement to its virtualization framework in macOS Sequoia by enabling Mac users to sign into iCloud within macOS VMs.

Apple in October unveiled new M4 powered versions of its iMac, Mac mini, and MacBook Pro models. For more information on the virtualization issue, be sure to read Oakley's informative write-up.

Article Link: M4 Macs Unable to Run macOS VMs Earlier Than Ventura 13.4
 
Just add yet another wrinkle to the addage or user experience where macOS isn't really a legacy OS or an OS that supports legacy usage; it isn't like Windows where the UI might be modern and pretty but still allows for decades and decades of older software to run quite nicely; on macOS, you are lucky if you can run anything older than 2-3 years...this is yet another example of that.

So, I am not really surprised at this development; Apple wants its users and its developers to constantly be on the cutting edge in terms of hardware and software. If you want Unix/Linux legacy compability, macOS isn't where you will find it, you will be better off using an Open Source Unix/Linux OS instead...
 
It may not be an issue for really old os like macos9 and winxp, they cant use more than one core.
 
  • Sad
Reactions: locovaca
Just add yet another wrinkle to the addage or user experience where macOS isn't really a legacy OS or an OS that supports legacy usage; it isn't like Windows where the UI might be modern and pretty but still allows for decades and decades of older software to run quite nicely; on macOS, you are lucky if you can run anything older than 2-3 years...this is yet another example of that.

So, I am not really surprised at this development; Apple wants its users and its developers to constantly be on the cutting edge in terms of hardware and software. If you want Unix/Linux legacy compability, macOS isn't where you will find it, you will be better off using an Open Source Unix/Linux OS instead...

You’re no better on windows. There are tonnes of broken APIs. And definitely not on Linux. Try dealing with .so hell.

The only reason they appear to work better is because most windows apps that rely on broken APIs are full of if statements and crap. I’ve written enough in my time. And on Linux the tested configuration is at distribution level so someone has done that legwork. There are plenty of problems in the periphery. And let’s not forget the old ELF switch over of course.

I would be surprised if you can get any Linux stuff that is not just talking to kernel API/ABI to actually work after 4-5 years. Especially GTK/Qt stuff. Unless you static link the entire thing.
 
Last edited:
On ios after upgrading Apple teases you with a little cloud icon of abandoned apps. You can‘t copy the app over from the old to new device so you eventually lose them.
 
Maybe could be because of the switch to ARM v.9 architecture? Or do you think this is an artificial limitation?

I personally I’m not interested in running older OS, and if I need to, I have an old 2014 Mac mini sleeping and connected to the local network ready to be awaken from my new M4 Mac mini. But I can understand there might be cases where an older version might be needed.
 
On ios after upgrading Apple teases you with a little cloud icon of abandoned apps. You can‘t copy the app over from the old to new device so you eventually lose them.

IMHO, that's as much a developer issue as an Apple issue. OS's evolve and things get deprecated over time, and if developers want to continue to stay in business they need to adapt their apps; especially if they use undocumented features. If an OS is designed to maintain 100% backward compatibility it would rapidly become a mess; although I think OS developers should work to ensure established API functionality remains available for a reasonable amount of time.

I personally I’m not interested in running older OS, and if I need to, I have an old 2014 Mac mini sleeping and connected to the local network ready to be awaken from my new M4 Mac mini. But I can understand there might be cases where an older version might be needed.

I would think, if running on older hardware is mission critical, you have it around to be used as test mules. I do that with an Intel MBA, for example.
 
Just add yet another wrinkle to the addage or user experience where macOS isn't really a legacy OS or an OS that supports legacy usage; it isn't like Windows where the UI might be modern and pretty but still allows for decades and decades of older software to run quite nicely; on macOS, you are lucky if you can run anything older than 2-3 years...this is yet another example of that.

So, I am not really surprised at this development; Apple wants its users and its developers to constantly be on the cutting edge in terms of hardware and software. If you want Unix/Linux legacy compability, macOS isn't where you will find it, you will be better off using an Open Source Unix/Linux OS instead...
Apple has a completely different policy regarding legacy software and code than Windows, I’d even say they’re opposites.

This has it’s negative side, but also (in my humble opinion), it also has some benefits.

We were all surprised by how quick and graceful was the adoption of the new ARM64 architecture by developers, while on Windows the transition to ARM is way slower.

Also the big quantities of old code on Windows, and I’m not talking 6-7 years old but even older, might make it less efficient. And there’s the problem of the inconsistency of the UI across the system, something that macOS isn’t free of, but offers a much more cohesive and consistent experience.

As I said, I don’t think Apple cutting support of devices or apps so quickly is absolutely a good thing, and I think they should provide more legacy support from now to all Apple Silicon machines, including the M1. But cutting the cord to old (7+ years), useless code, is beneficial for the platform efficiency.
 
You’re no better on windows. There are tonnes of broken APIs. And definitely not on Linux. Try dealing with .so hell.

The only reason they appear to work better is because most windows apps that rely on broken APIs are full of if statements and crap. I’ve written enough in my time. And on Linux the tested configuration is at distribution level so someone has done that legwork. There are plenty of problems in the periphery. And let’s not forget the old ELF switch over of course.

I would be surprised if you can get any Linux stuff that is not just talking to kernel API/ABI to actually work after 4-5 years. Especially GTK/Qt stuff. Unless you static link the entire thing.
The point is, they work............
 
Just add yet another wrinkle to the addage or user experience where macOS isn't really a legacy OS or an OS that supports legacy usage; it isn't like Windows where the UI might be modern and pretty but still allows for decades and decades of older software to run quite nicely; on macOS, you are lucky if you can run anything older than 2-3 years...this is yet another example of that.

So, I am not really surprised at this development; Apple wants its users and its developers to constantly be on the cutting edge in terms of hardware and software. If you want Unix/Linux legacy compability, macOS isn't where you will find it, you will be better off using an Open Source Unix/Linux OS instead...
I like people who confuse macrumors with machumors
 
I imagine this is something to do with the fact that the older OS's don't support something (aka a new instruction set) in the newer M4s. rememember this is the first chip to move to armv9, plus apples custom instructions.
 
  • Like
Reactions: SFjohn and NetMage
I have a new M4 Mac mini. I have a macOS 10.4 Tiger VM in UTM. After having read about this problem I opened UTM and started the macOS 10.4 VM to see if it was still working. No problem at all. It booted fine, not black screen. I also have a macOS 9 VM. It also works fine. So this black screen problem must be for newer versions of macOS.
 
I have a new M4 Mac mini. I have a macOS 10.4 Tiger VM in UTM. After having read about this problem I opened UTM and started the macOS 10.4 VM to see if it was still working. No problem at all. It booted fine, not black screen. I also have a macOS 9 VM. It also works fine. So this black screen problem must be for newer versions of macOS.
Those guests are not using virtualization.
 
It may not be an issue for really old os like macos9 and winxp, they cant use more than one core.
This is not true. There were multi processor Power Macs in the classic Mac OS days. Software did have to be written to take advantage of the second processor, though. Windows XP is based on Windows NT/2000 which is very much multi processor aware.
 
The same issue happened with Parallels. I was unable to open my virtual machines with version 19. I had to upgrade to version 20. I was not at all happy. Creating new virtual machines was not a viable option. What Apple did with the M4 affected beyond just earlier MacOS versions. My existing virtual machines run fine after updating Parallels.
 
  • Like
Reactions: NetMage
The point is, they work............

On Thursdays, if the planets are aligned correctly, and you stand on one hand and make a mooing noise.

Seriously I think this is a meme at this point. I get the feeling people haven't worked on any long lasting products. I've got stuff that has been in production for over 30 years...
 
Quite possibly they may have deprecated some instruction the earlier M series were using in macOS 12.X before Apple stopped using it in macOS 13 after realising they were going to deprecate it in hardware.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.