summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Łyszczek <michal.lyszczek@bofc.pl>2019-08-04 14:14:16 +0200
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>2019-09-23 22:29:28 +0200
commitaf8c7b41f515e76b4f00cd333e938d09fd1503d4 (patch)
tree2b1368ffd6f5b68da581d7a3a3c286cad578c8cc
parent162044407b0f3794cd6d70749ed615de5902c7c3 (diff)
package/skeleton-init-openrc: add support to remount rootfs as rw
Add a pseudo entry for /dev/root in fstab, to tell openrc to properly remount or not remount / read-write. For consistency with systemd (which is the only other init system to tweak an fstab basd on / being rw or not), we do this change in the openrc skeleton rather than in the openrc package. Signed-off-by: Michał Łyszczek <michal.lyszczek@bofc.pl> [yann.morin.1998@free.fr: - tweak the sed expressions - reword commit log ] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-rw-r--r--package/skeleton-init-openrc/skeleton-init-openrc.mk15
-rw-r--r--package/skeleton-init-openrc/skeleton/etc/fstab1
2 files changed, 16 insertions, 0 deletions
diff --git a/package/skeleton-init-openrc/skeleton-init-openrc.mk b/package/skeleton-init-openrc/skeleton-init-openrc.mk
index 5ee2192093..656fc531d7 100644
--- a/package/skeleton-init-openrc/skeleton-init-openrc.mk
+++ b/package/skeleton-init-openrc/skeleton-init-openrc.mk
@@ -15,8 +15,23 @@ SKELETON_INIT_OPENRC_DEPENDENCIES = skeleton-init-common
SKELETON_INIT_OPENRC_PROVIDES = skeleton
+ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y)
+# Comment /dev/root entry in fstab. When openrc does not find fstab entry for
+# "/", it will try to remount "/" as "rw".
+define SKELETON_INIT_OPENRC_ROOT_RO_OR_RW
+ $(SED) '\:^/dev/root :s/^/# /' $(TARGET_DIR)/etc/fstab
+endef
+else
+# Uncomment /dev/root entry in fstab which has "ro" option so openrc notices
+# it and doesn't remount root to rw.
+define SKELETON_INIT_OPENRC_ROOT_RO_OR_RW
+ $(SED) '\:^# /dev/root:s/^# //' $(TARGET_DIR)/etc/fstab
+endef
+endif # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
+
define SKELETON_INIT_OPENRC_INSTALL_TARGET_CMDS
$(call SYSTEM_RSYNC,$(SKELETON_INIT_OPENRC_PKGDIR)/skeleton,$(TARGET_DIR))
+ $(SKELETON_INIT_OPENRC_ROOT_RO_OR_RW)
endef
$(eval $(generic-package))
diff --git a/package/skeleton-init-openrc/skeleton/etc/fstab b/package/skeleton-init-openrc/skeleton/etc/fstab
index 3ec96cf634..21cf49ba5a 100644
--- a/package/skeleton-init-openrc/skeleton/etc/fstab
+++ b/package/skeleton-init-openrc/skeleton/etc/fstab
@@ -1,3 +1,4 @@
# <file system> <mount pt> <type> <options> <dump> <pass>
+/dev/root / ext2 ro,noauto 0 0
tmpfs /tmp tmpfs mode=1777 0 0
tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0