External boot disks still don’t work properly with M1 Macs
The M1 boot process is <i>very</i> different from Intel macs. In fact, they do not support external boot disks at all, by design. This is because the built-in firmware is extremely minimal, and does not contain drivers for anything but the internal SSD. It doesn&#x27;t even have a keyboard driver, or any kind of GUI other than showing the Apple logo and &quot;Entering startup options&quot; text, and some error screens. All of this is by design, for security - UEFI is an enormous hairball of code, especially on Intel macs, and almost impossible to secure properly for that reason.<p>When you boot into the &quot;Startup Options&quot; menu, you are booting into a special macOS partition in the internal SSD. M1 Macs use macOS as the moral equivalent of the UEFI setup menu. That boot picker that looks like the UEFI boot picker on Intel Macs? Yeah, that&#x27;s a full-screen app on macOS made to look similar.<p>So how does external boot work?<p>The &quot;blessing&quot; process done by the Startup Options screen involves copying the entire macOS Preboot partition - iBoot2 OS loader, Darwin kernel, auxiliary CPU&#x2F;device firmwares, device tree, and some additional stuff - to the internal SSD. It then creates a local, signed boot policy that allows system firmware to boot this macOS install.<p>You aren&#x27;t booting from an external disk. You are booting from the internal SSD, with the root filesystem on the external disk.<p>Additionally, the integration of the macOS user credentials with the SEP means that you can&#x27;t &quot;just&quot; take an install made on another machine and use it on a separate one. It involves importing user credentials into the local machine. This process isn&#x27;t implemented properly yet.<p>As you might expect, this entire mechanism introduces a ton of corner cases around updates, boot selection, etc., and it is still very buggy and broken. The M1 launch was, when you look at details such as this, very obviously rushed.<p>Further reading for those interested:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;AsahiLinux&#x2F;docs&#x2F;wiki&#x2F;M1-vs.-PC-Boot" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;AsahiLinux&#x2F;docs&#x2F;wiki&#x2F;M1-vs.-PC-Boot</a>
<a href="https:&#x2F;&#x2F;github.com&#x2F;AsahiLinux&#x2F;docs&#x2F;wiki&#x2F;SW:Boot" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;AsahiLinux&#x2F;docs&#x2F;wiki&#x2F;SW:Boot</a>
<a href="https:&#x2F;&#x2F;github.com&#x2F;AsahiLinux&#x2F;docs&#x2F;wiki&#x2F;SW:Storage" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;AsahiLinux&#x2F;docs&#x2F;wiki&#x2F;SW:Storage</a><p>I&#x27;m actually eagerly waiting for Apple to fix this in future system firmware releases, because my plan for installing Asahi Linux for end users with a minimal amount of fuss is to abuse the mechanism to adopt foreign macOS installations. This elides the current need to have a completely wasted, 60+GB macOS install as a dummy to actually launch Linux (we could clean it up and resize it to get the space back, but it still makes for a very annoying install process that I&#x27;m hoping to avoid).<p>On the plus side, this dual-booting mechanism is very cleverly designed to separately secure <i>different</i> OSes, so you do not need to downgrade security on your machine to install an unsigned OS like Linux. It is a separate OS with a separate security policy. You can keep your macOS install fully secure, and capable of running iOS apps and other actions that require secureboot, and install Linux (or another macOS with a custom kernel, kexts, etc) in parallel, completely unintrusively. So kudos to Apple for designing this whole thing, and for opening it up for us to use :)