Deploy an updated, but immutable image.
Like, Partition1 has v1 and you boot, read only. Then the upgrade image goes in Partition2 and boots readonly.
You can still upgrade but every boot of the image is from the same fixed state. And you don't upgrade in-place.