From ecab5c25257001daa2491efa6848930e9c9607b0 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sun, 1 Feb 2026 18:26:01 +0100 Subject: [PATCH] Update 00-smb_mounts.sh --- .templates/00-smb_mounts.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/.templates/00-smb_mounts.sh b/.templates/00-smb_mounts.sh index b17e2d43b..b9071fd06 100755 --- a/.templates/00-smb_mounts.sh +++ b/.templates/00-smb_mounts.sh @@ -23,6 +23,7 @@ cleanup_cred() { } test_mount() { + local _werr MOUNTED=false ERROR_MOUNT=false @@ -31,11 +32,22 @@ test_mount() { fi [[ -e "/mnt/$diskname/testaze" ]] && rm -rf "/mnt/$diskname/testaze" - mkdir "/mnt/$diskname/testaze" \ - && touch "/mnt/$diskname/testaze/testaze" \ - && rm -rf "/mnt/$diskname/testaze" \ + _werr="$(mktemp /tmp/mount_write_test.XXXXXX)" + : >"$_werr" || true + mkdir "/mnt/$diskname/testaze" 2>"$_werr" \ + && touch "/mnt/$diskname/testaze/testaze" 2>>"$_werr" \ + && rm -rf "/mnt/$diskname/testaze" 2>>"$_werr" \ || ERROR_MOUNT=true + # Accept read-only mounts: warn but do not fail + if [[ "$ERROR_MOUNT" == "true" ]] && grep -qiE 'read-only file system|EROFS' "$_werr" 2>/dev/null; then + bashio::log.warning "Disk is mounted but READ-ONLY (/mnt/$diskname). Write test failed due to read-only filesystem. Continuing." + rm -f "$_werr" 2>/dev/null || true + MOUNTED=true + return 0 + fi + rm -f "$_werr" 2>/dev/null || true + # CIFS-only: noserverino fallback if [[ "$ERROR_MOUNT" == "true" && "$FSTYPE" == "cifs" ]]; then if [[ "$MOUNTOPTIONS" == *"noserverino"* ]]; then