feat(preinit): support alternative roots#4
feat(preinit): support alternative roots#4RaitoBezarius wants to merge 5 commits intotelent:mainfrom
Conversation
In A/B schemas, it is possible to have multiple rootfs. Thus, it is necessary to let the B kernel preinitialize either the A rootfs or the B rootfs failing to mount the A rootfs. Ideally, we should also try to switch to the B rootfs if we cannot start up the init on the A rootfs, but that's a FUTUREWORK. Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
|
If I understood correctly what this does, supplying |
That's correct! |
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
I have it all the time in front of my nose :'( otherwise. Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
|
OK, this work, but the altroot is semi-useless to be honest because of how UBI works. If the first UBI device is not attached (failure), the second UBI failure will be attached and The interesting commit is Though, it's important to notice that kernel A and B will boot in priority on UBI A. Ideally, the next step is to have an overlayfs to mount rootfs_data on the top of UBI A and make changes persist to that UBI rather than to UBI A and go to a failover mode like OpenWRT where, if, the overlayfs prevent the boot, we can always enter the device into a mode where the personalization is ignored. It bring forth a bunch of questions on how to deploy Liminix systems in production "safely" tbh. |
…of/liminix:openwrt-update-to-v23.05.2 into main Reviewed-on: https://gti.telent.net/dan/liminix/pulls/4
In A/B schemas, it is possible to have multiple rootfs.
Thus, it is necessary to let the B kernel preinitialize either the A rootfs or the B rootfs failing to mount the A rootfs.
Ideally, we should also try to switch to the B rootfs if we cannot start up the init on the A rootfs, but that's a FUTUREWORK.