From 58d35b94e3d407e14b7c7ae391ed6fd8ff26dc0e Mon Sep 17 00:00:00 2001 From: Ycarus Date: Tue, 11 Jun 2019 19:27:45 +0200 Subject: [PATCH] Detect if root FS is readonly --- .../luasrc/controller/openmptcprouter.lua | 15 +++++++++++++++ .../luasrc/view/openmptcprouter/wanstatus.htm | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 37cee5cc2..7ff39802a 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -914,6 +914,21 @@ function interfaces_status() mArray.openmptcprouter["loadavg"] = sys.exec("cat /proc/loadavg 2>/dev/null"):match("[%d%.]+ [%d%.]+ [%d%.]+") mArray.openmptcprouter["uptime"] = sys.exec("cat /proc/uptime 2>/dev/null"):match("[%d%.]+") + mArray.openmptcprouter["fstype"] = sys.exec("cat /proc/mounts | awk '/\/dev\/root/ {print $3}' | tr -d '\n'") + if mArray.openmptcprouter["fstype"] == "ext4" then + if sys.exec("cat /proc/mounts | awk '/\/dev\/root/ {print $4}' | grep ro") == "" then + mArray.openmptcprouter["fsro"] = false + else + mArray.openmptcprouter["fsro"] = true + end + elseif mArray.openmptcprouter["fstype"] == "squashfs" then + if sys.exec("cat /proc/mounts | awk '/overlayfs/ {print $4}' | grep overlay") == "" then + mArray.openmptcprouter["fsro"] = true + else + mArray.openmptcprouter["fsro"] = false + end + end + -- overview status mArray.wans = {} mArray.tunnels = {} diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index 1b80d9941..a0e7fb5f7 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -140,6 +140,10 @@ statusMessage += '
'; } } + if (mArray.openmptcprouter.fsro == true) + { + statusMessage += 'Filesystem is readonly
'; + } if (mArray.openmptcprouter.tun_service == false) { statusMessage += 'GloryTUN is not running
';