Boot from external firewire disk

I want to run NixOS on my iMac, but i still need to migrate some stuff from macOS before i can wipe it.

Since a Mac is not very flexible i can’t just switch the disk, so i thought i could attach an external disk via firewire 800. I put an SSD into the external disk enclosure and tried to boot. It fails.

The external disk enclosure has also a USB connection. Interestingly booting from USB works. So it should be a problem with firewire!

Since i didn’t got it working this weekend i installed NixOS fresh today (after backup), but i still get the same error!

Like the screenshot shows, the kernel is already bootet from EFI /boot partition, but /root and swap can’t be found. So the firewire connection in general works. I also can mount the partitions using the UUIDs using the NixOS Install live CD. So mounting a partition on external firewire disk is also not a problem from bootet NixOS. Is there a difference in initrd?

firewire_ohci is also part of boot.initrd.availableKernelModules. what else could be missing?

In general, a Mac can boot macOS from firewire. So NixOS should work too probably.

I’d suspect it’s because FireWire drivers are blacklisted by default for security reasons:
https://nixos.org/nixos/manual/options.html#opt-boot.initrd.luks.mitigateDMAAttacks

I set this to false, but system rebuild don’t changed anything. I don’t use luks on this install.

I set boot.initrd.kernelModules = [ "firewire_ohci" ];, so it should be definitely loaded. Still same error.

Update: As a workaround i installed NixOS on the iMac next to macOS.