From e5498b9445a93e3b28a04b4a2444953e5d06b7d9 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Thu, 21 Dec 2023 17:11:55 +0000 Subject: [PATCH] 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 --- src/switchroot/ostree-mount-util.h | 4 ++++ src/switchroot/ostree-prepare-root-static.c | 3 +-- src/switchroot/ostree-prepare-root.c | 3 +-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/switchroot/ostree-mount-util.h b/src/switchroot/ostree-mount-util.h index eb79efdfbf..608528f35a 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 4aaa469246..ce3340f83d 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 8d0ab88e44..1a0539e190 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,