I’m trying to use Centos 9 (stream) as a guest OS with UTM on my Mac. My Mac is an M1, and I’m trying to enable Rosetta support.
There’s some things that the VM guest OS needs installed to work with the virtualization host, and one of them is the binary update-binfmts.
For Centos 9, I can’t figure how to find update-binfmts (which is “typically” in package binfmt-support).
Does anyone have experience with using Centos 9 as a VM OS in UTM with Rosetta? Do you know where I can find update-binfmts or the equivalent?
I have not had much luck with UTM rosetta and have gone with native aarch64 on the M series instead. The trick I found though is that changes in grub/kernel after RHEL-9.4 require the usage of UTM applehv versus the qemu one. For whatever reason if I updated Ubuntu/Fedora/CentOS Stream linux after a specific kernel/grub update, it would hang on boot. I ended up using the ‘experimental’ apple virtual machine and the systems work flawlessly.
I am using (the “experimental”) Apple Virtualization on an M1 Mac. I have Rosetta setup in UTM, and also mounted via virtiofs inside the Centos 9 Stream guest. That all seems to work fine.
My problem is I don’t understand how to register /media/rosetta inside the guest Centos as the emulator for x86_64 binaries. The instructions say to use the utility update-binfmts to register rosetta inside the guest OS, but I can’t find that binary or its parent package on Centos.
Is there another way to register rosetta in the guest OS to handle x86_64 binaries?
In the end the fact that centos 9 doesn’t really have support for mult-arch meant that even though I got binaries running with emulation, it was really painful and I don’t recommend it on this flavor of Linux. Ubuntu and Debian have much better, easier multi-arch support.