Inspired by the recent release of Ubuntu Linux 25.04 in native Arm64 form, I set out to get it working on my Snapdragon X-based Surface Laptop 7 three different ways: In the Windows Subsystem for Linux, in a Hyper-V virtual machine, and, if possible, in a dual-boot configuration. I was only partially successful. WSL installed Ubuntu 24.04, not 25.04, and I was only able to get upgraded to 24.10. The Hyper-V install went fine, though I never did figure out how to fix the screen resolution; it was stuck at a non-ideal 1024 x 768.
And then I tried the dual-boot configuration.
If you follow me on Instagram, you may have seen the result. If not, I discussed it briefly in the most recent Windows Weekly. In short, I was just curious to see whether this was even possible. So I used Rufus (which also comes in a native Arm64 version) to create a USB-based installation disk for Ubuntu Linux 25.04, and then I shut down all the apps that were running and used Settings (System > Recovery > Advanced startup > Restart now) to reboot into the Windows Recovery Environment, which would let me at least try to boot from the USB disk.
Yeah, that didn’t work. I’d never seen the blue screen depicted above, but it seemed like a problem I could bypass easily enough. Pressing the Windows key as prompted didn’t do anything, and the link to the virtual keyboard in the lower-right of the screen was likewise useless, as that keyboard doesn’t even have a Windows key. So I made a note of the error code and Googled the problem. I learned a couple of things.
First, this error was almost certainly related to me putting Surface Laptop in the Dev channel of the Windows Insider Program so I could test new features early. A Microsoft blog post for a January Dev channel build notes that “A 0xc0e90001 error will occur when booting into Windows Recovery (WinRE) on Arm64 PCs” and that “this will be fixed in the next Dev Channel flight.” Whether that ever happened or not is unclear, but my PC, which was at that moment in the Dev channel, certainly still had this problem.
Second, Microsoft claims to have fixed this problem. This post to the Microsoft Community forums has a reply from a Microsoft employee who links to a cumulative update, also from January, that “makes improvements to the Windows recovery environment in Windows 11 version 24H2.” The support article notes that “This update is available through Windows Update. It will be downloaded and installed automatically.” I didn’t see it in Windows Update’s Update history, and it wasn’t being offered. But there is a Windows Update Catalog link in there that points to a downloadable CAB file. So I tried that.
You can’t just double-click a CAB to “run” it. You can extract it. Or you can just run it from the command line. So I did that, using:
dism /online /add-package /packagepath:windows11.0-kb5053117-arm64_e4200815e4f012838695ce0f302da38a93ed1703.cab
And, yeah. That didn’t work either.
I could be…