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 <ecurtin@redhat.com>
This commit is contained in:
Eric Curtin 2023-12-21 17:11:55 +00:00
parent 02915a3f95
commit e5498b9445
3 changed files with 6 additions and 4 deletions

View File

@ -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

View File

@ -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)

View File

@ -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,