ostree-remount: Remount /etc rw if needed
When we remount `/sysroot` as read-only, we also make `/etc` read-only. This is usually OK because we then remount `/var` read-write, which also flips `/etc` back to read-write... unless `/var` is a separate filesystem and not a bind-mount to the stateroot `/var`. Fix this by just remounting `/etc` read-write in the read-only sysroot case. Eventually, I think we should rework this to set everything up the way we want from the initramfs (#2115). This would also eliminate the window during which `/etc` is read-only while `ostree-remount` runs.
This commit is contained in:
parent
b3c7b059ea
commit
a7a751b69f
|
|
@ -112,6 +112,11 @@ main(int argc, char *argv[])
|
|||
bool sysroot_configured_readonly = unlink (_OSTREE_SYSROOT_READONLY_STAMP) == 0;
|
||||
do_remount ("/sysroot", !sysroot_configured_readonly);
|
||||
|
||||
/* And also make sure to make /etc rw again. We make this conditional on
|
||||
* sysroot_configured_readonly because only in that case is it a bind-mount. */
|
||||
if (sysroot_configured_readonly)
|
||||
do_remount ("/etc", true);
|
||||
|
||||
/* If /var was created as as an OSTree default bind mount (instead of being a separate filesystem)
|
||||
* then remounting the root mount read-only also remounted it.
|
||||
* So just like /etc, we need to make it read-write by default.
|
||||
|
|
|
|||
Loading…
Reference in New Issue