Friday, November 15, 2024

M4 Macs Can’t Virtualize Older macOS

Howard Oakley:

Running a macOS VM for any version before 13.4 Ventura on an M4 Mac results in a black screen, and the VM fails to boot. This is true whatever settings are used in the virtualiser, even if it’s set to boot the VM in Recovery mode. It’s also true when that VM has been built on that Mac: although that appears to complete successfully, when first run that VM opens as a black screen and never proceeds with personalisation and setup.

Currently the only way to run a VM with macOS prior to 13.4 Ventura is to do so on a host with an M1, M2 or M3 chip.

[…]

The first versions that can run in VMs are macOS 12 Monterey, although prior to 12.4 they can sometimes be a bit fractious. They also have major limitations, such as not supporting shared folders with the host.

Previously:

Update (2024-11-18): See also: MacRumors (Hacker News).

Update (2024-11-22): Csaba Fitzl:

Apple confirmed that it’s a bug and they plan fixing it. 🥳

9 Comments RSS · Twitter · Mastodon


A ton of my work involves testing and experimenting in older releases of macOS, especially those that are completely fresh installs. This means being able to virtualize any release of macOS with save-states is essential to me. I don't see how I could do my work on an Apple Silicon mac with its limited virtualization options, and I'm not sure what I'm going to do when Intel macOS is dropped, probably next year.


The lack of support for older macOS VMs on M4 Macs is a major setback for developers needing legacy environment testing. It's surprising to see this limitation, especially when M1 to M3 chips handle it just fine. This might push users to hold on to earlier models for broader compatibility.


Probably, some CPU instruction was changed or removed in the M4 (but we have no idea what that might be, since we don't have any real documentation for the chip).

There should be some way for the virtualization system (provided exclusively by Apple as well), to intercept this changed or removed instruction and then convert it to some other call or just ignore it.

Howard's suggestion of issuing revised IPSW's is wrong.


Of course Apple could support virtualizing older releases of macOS. The fact that they don't is yet another example of them either not knowing or not caring about the actual needs of their users.


@Mike I’m not sure it’s an instruction change, or you’d see older software not functioning as expected. I haven’t heard of such issues on m4.


It's simple, really—if it's not a feature you think Apple employees or the proles would benefit from, then it's just not guaranteed to work. See also the recent clusters around advanced networking-related features.

(Apple employees are, of course, all using the latest operating systems at all times, except when backporting minimal fixes to older ones ...)


tim-cook-we-love-the-mac.gif


macOS 15.2b4 came out, looks like they have actually recognized the issue - so there is hope they might actually fix* it.

* And sadly, a small chance that they ignore it or make it worse.


Has someone checked if it's fixed in 15.1.1?

Leave a Comment