I’ve detailed some of my adventures getting a NixOS-Pi3 running on BTRFS-root with subvolumes:
My goal is to get it booting directly from a compressed subvolume (as opposed to booting from the BTRFS root, or from the FAT partition, etc.) – mostly just because I think it should be possible.
However, as mentioned I am still having trouble with a specific scenario:
- the Pi boots / works great from BTRFS root
- the Pi boots / works great from BTRFS in a subvolume
- If I add compression (zstd), the initial SD card boots (I imagine because it’s not using BTRFS compression at this point, since I manually create the subvolumes and copy contents in a script), but after
nixos-installit goes into a boot loop, with the error:
ERROR: arch-specific fdt fixup failed - must RESET the board to recover. FDT creation failed! resetting ...
It looks like u-boot supports zstd decompression, and I have the following in my u-boot config:
Does anyone know why compression would prevent me from booting the second time (after essentially
nixos-install --root / && reboot)? It seems to find and read the
initrd just fine (I can post some pics of the boot screen if it would be helpful).
I tried the
copyKernels setting thinking that may do the trick, but no change in behavior.
Thanks for any help or suggestions. I’ve been tinkering with this for nearly a year now and have just run out of ideas.