From: Eric Curtin Date: Thu, 21 Dec 2023 17:11:55 +0000 (+0000) Subject: switchroot: Be explicit about what could cause /sysroot to be ro X-Git-Tag: archive/raspbian/2024.8-1+rpi1^2~7^2~7^2~13^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e5498b9445a93e3b28a04b4a2444953e5d06b7d9;p=ostree.git switchroot: Be explicit about what could cause /sysroot to be ro If you don't have rw in the kernel cmdline or have ro in it, often you hit this issue. This is just to be really explicit about that in the error messages so people can check. Signed-off-by: Eric Curtin --- diff --git a/src/switchroot/ostree-mount-util.h b/src/switchroot/ostree-mount-util.h index eb79efdf..608528f3 100644 --- a/src/switchroot/ostree-mount-util.h +++ b/src/switchroot/ostree-mount-util.h @@ -36,6 +36,10 @@ #define _OSTREE_SYSROOT_READONLY_STAMP "/run/ostree-sysroot-ro.stamp" #define _OSTREE_COMPOSEFS_ROOT_STAMP "/run/ostree-composefs-root.stamp" +#define OTCORE_SYSROOT_NOT_WRITEABLE \ + "sysroot.readonly=true requires %s to be writable at this point, the cmdline should contain rw " \ + "but not ro, if that is not the case this is likely the issue" + #define autofree __attribute__ ((cleanup (cleanup_free))) static inline int diff --git a/src/switchroot/ostree-prepare-root-static.c b/src/switchroot/ostree-prepare-root-static.c index 4aaa4692..ce3340f8 100644 --- a/src/switchroot/ostree-prepare-root-static.c +++ b/src/switchroot/ostree-prepare-root-static.c @@ -229,8 +229,7 @@ main (int argc, char *argv[]) if (sysroot_readonly) { if (!sysroot_currently_writable) - errx (EXIT_FAILURE, "sysroot.readonly=true requires %s to be writable at this point", - root_arg); + errx (EXIT_FAILURE, OTCORE_SYSROOT_NOT_WRITEABLE, root_arg); /* Pass on the fact that we discovered a readonly sysroot to ostree-remount.service */ int fd = open (_OSTREE_SYSROOT_READONLY_STAMP, O_WRONLY | O_CREAT | O_CLOEXEC, 0644); if (fd < 0) diff --git a/src/switchroot/ostree-prepare-root.c b/src/switchroot/ostree-prepare-root.c index 8d0ab88e..1a0539e1 100644 --- a/src/switchroot/ostree-prepare-root.c +++ b/src/switchroot/ostree-prepare-root.c @@ -557,8 +557,7 @@ main (int argc, char *argv[]) if (sysroot_readonly) { if (!sysroot_currently_writable) - errx (EXIT_FAILURE, "sysroot.readonly=true requires %s to be writable at this point", - root_arg); + errx (EXIT_FAILURE, OTCORE_SYSROOT_NOT_WRITEABLE, root_arg); } /* Pass on the state for use by ostree-prepare-root */ g_variant_builder_add (&metadata_builder, "{sv}", OTCORE_RUN_BOOTED_KEY_SYSROOT_RO,