only use two partitions, one for /boot, one for /writable.
/boot contains all readonly parts as images with having the modules separately in a modules.img file that the initrd loop mounts early during boot (and later move mounts to /lib/modules on the running system).
readonly rootfs partitions are replaced by squashfs images that reside in the /boot partition.
/boot/a/vmlinuz
/boot/b/vmlinuz
/boot/a/initrd.img
/boot/b/initrd.img
/boot/modules-a.img
/boot/modules-b.img
/boot/system-a.squashfs
/boot/system-b.squashfs