OSTree comes with optional dracut+systemd integration code that
ostree= kernel command line
argument in the initramfs, and then sets up the read-only bind
/usr, a bind
mount on the deployment's
/sysroot to the physical
/, and then finally uses
mount(MS_MOVE) to make the deployment root appear to be the
root filesystem before telling systemd to switch root.
If you are not using dracut or systemd, using OSTree should still be possible, but you will have to write the integration code. Patches to support other initramfs technologies and init systems, if sufficiently clean, will likely be accepted upstream.
A further specific note regarding sysvinit:
OSTree used to support recording device files such the
/dev/initctl FIFO, but no longer does.
It's recommended to just patch your initramfs to create this at