package/skeleton-init-openrc: add support to remount rootfs as rw
authorMichał Łyszczek <michal.lyszczek@bofc.pl>
Sun, 4 Aug 2019 12:14:16 +0000 (14:14 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Mon, 23 Sep 2019 20:29:28 +0000 (22:29 +0200)
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>
package/skeleton-init-openrc/skeleton-init-openrc.mk
package/skeleton-init-openrc/skeleton/etc/fstab

index 5ee21920935fccfd7f48bb6571cca0d43e7544cc..656fc531d7ad0ad6769d1b4c5b7af5d826cdf1be 100644 (file)
@@ -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))
index 3ec96cf63462820aefdea9a4f018b6008cf7ad10..21cf49ba5add4a18b142a52dfaf35fa7c45f20dc 100644 (file)
@@ -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