aboutsummaryrefslogtreecommitdiff
path: root/package/base-files/files/lib/preinit
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2023-09-16 17:16:04 +0200
committerChristian Marangi <ansuelsmth@gmail.com>2024-01-15 16:44:29 +0100
commit0b23d3608c1f01f9dc4d042b0217ee0291c0fd70 (patch)
tree3a03ab5e4f09023ed6f29c204b77478aed9ea3f1 /package/base-files/files/lib/preinit
parentba9c1b131432b6afbe96521eba949ba53df3ee95 (diff)
base-files: add support for rootfs mount options from cmdline
Add support for configuring rootfs mount options from cmdline. Rootfs mount options can be passed by declaring in the kernel cmdline as much options as needed prefixed with "rootfs_mount_options." An example usage is with rootfs with F2FS filesystem to enable compress_algorithm to reduce flash wear by compressing the files before writing to flash. Example usage: "... rootfs_mount_options.compress_algorithm=zstd ..." To pass multiple options: "... rootfs_mount_options.compress_algorithm=zstd rootfs_mount_options.noinline_data ..." Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Diffstat (limited to 'package/base-files/files/lib/preinit')
-rw-r--r--package/base-files/files/lib/preinit/80_mount_root21
1 files changed, 20 insertions, 1 deletions
diff --git a/package/base-files/files/lib/preinit/80_mount_root b/package/base-files/files/lib/preinit/80_mount_root
index c3816c2cbf..fa6abcde57 100644
--- a/package/base-files/files/lib/preinit/80_mount_root
+++ b/package/base-files/files/lib/preinit/80_mount_root
@@ -14,8 +14,27 @@ missing_lines() {
IFS="$oIFS"
}
+# Rootfs mount options can be passed by declaring in the kernel
+# cmdline as much options as needed prefixed with "rootfs_mount_options."
+#
+# Example:
+# rootfs_mount_options.compress_algorithm=zstd rootfs_mount_options.noinline_data
+#
+compose_rootfs_mount_options() {
+ local mount_options
+ local cmdlinevar
+
+ for cmdlinevar in $(cat /proc/cmdline); do
+ if [ "$cmdlinevar" != "${cmdlinevar#rootfs_mount_options\.}" ]; then
+ append mount_options "${cmdlinevar#rootfs_mount_options\.}"
+ fi
+ done
+
+ echo $mount_options
+}
+
do_mount_root() {
- mount_root
+ mount_root start "$(compose_rootfs_mount_options)"
boot_run_hook preinit_mount_root
[ -f /sysupgrade.tgz -o -f /tmp/sysupgrade.tar ] && {
echo "- config restore -"