Skip to content

πŸ› [NextCloud] Mounted localdisk does not have write permissionsΒ #2123

@Patabugen

Description

@Patabugen

Description

After setting up the NextCloud addon and carefully following the Mounting Instructions I was unable to install NextCloud getting an error that the mounted drive wasn't accessible.

This is a newly formatted partition, and I deleted the addon and it's data and started again to check.

Image

Workaround

In the end I had to SSH into the docker container and chown the mounted location to the PIDs set in the config and things seem to work now.

root@db21ed7f-nextcloud-ocr:/mnt# ls -l
total 4
drwxr-xr-x 3 root root 4096 Sep 23 18:11 d86e00be-f9e7-49ae-8b1c-7dfabd31874c
root@db21ed7f-nextcloud-ocr:/mnt# chown 1000:1000 d86e00be-f9e7-49ae-8b1c-7dfabd31874c/
root@db21ed7f-nextcloud-ocr:/mnt# ls -l
total 4
drwxr-xr-x 4 abc users 4096 Sep 23 19:03 d86e00be-f9e7-49ae-8b1c-7dfabd31874c
root@db21ed7f-nextcloud-ocr:/mnt# ls

Now the installation has completed successfully!

I guess it might be a bug in the mounting script?

Reproduction steps

1. Install fresh instance of the NexTCloud addon
2. Connect a USB drive formatted to ext4
3. Set the UUID of the partition in `localdisks`
4. Check the log displays the mounting correctly
5. Attempt to complete NextCloud setup
6. See error
7. Get a shell in the NextCloud  docker container
8. chown 1000:1000 /mnt/<mountpoint>
9. Retry the NextCloud Setup
10. Success!

Addon Logs

Starting custom scripts
/etc/cont-init.d/00-banner.sh: executing
-----------------------------------------------------------
 Add-on: Nextcloud
 Nextcloud for Homeassistant
-----------------------------------------------------------
 Add-on version: 31.0.9
 You are running the latest version of this add-on.
 System: Home Assistant OS 16.2
 Architecture: aarch64 / green
 Home Assistant Core: 2025.9.4
 Home Assistant Supervisor: 2025.09.0
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums
-----------------------------------------------------------
 Provided by: https://github.com/alexbelgium/hassio-addons 
-----------------------------------------------------------
 Defining permissions for main user : 
User UID: 1000
User GID: 1000
-----------------------------------------------------------
/etc/cont-init.d/00-global_var.sh: executing
Full_Text_Search='false'
OCR='false'
OCRLANG='fra'
PGID='1000'
PUID='1000'
additional_apps='inotify-tools'
certfile='fullchain.pem'
elasticsearch_server='\<ip:port\>'
enable_thumbnails='true'
keyfile='privkey.pem'
localdisks='d86e00be-f9e7-49ae-8b1c-7dfabd31874c'
trusted_domains='your-domain\, your-domain2'
use_own_certs='false'
/etc/cont-init.d/00-local_mounts.sh: executing
[18:56:39] NOTICE: This script is used to mount local USB/SATA/SD/NVMe drives. Instructions here : https://github.com/alexbelgium/hassio-addons/wiki/Mounting-Local-Drives-in-Addons
---------------------------------------------------
[18:56:39] INFO: Available Disks for mounting :
NAME         LABEL       SIZE FSTYPE RO
β”œβ”€sda1       CONFIG        3G ntfs    0
└─sda2       HAStorage 462.7G ext4    0
---------------------------------------------------
Supported fs :  ext3 ext4 ext2 squashfs vfat msdos fuseblk f2fs erofs ntfs ntfs3
Inspired from : github.com/dianlight
---------------------------------------------------
Local Disks mounting...
... d86e00be-f9e7-49ae-8b1c-7dfabd31874c is a device by UUID
[18:56:41] INFO: Mounting d86e00be-f9e7-49ae-8b1c-7dfabd31874c of type ext4
[18:56:41] INFO: Success! d86e00be-f9e7-49ae-8b1c-7dfabd31874c mounted to /mnt/d86e00be-f9e7-49ae-8b1c-7dfabd31874c
/etc/cont-init.d/00-migrate_files.sh: executing
/etc/cont-init.d/00-smb_mounts.sh: executing
[18:56:41] NOTICE: This script is used to mount remote smb/cifs/nfs shares. Instructions here : https://github.com/alexbelgium/hassio-addons/wiki/Mounting-remote-shares-in-Addons
/etc/cont-init.d/01-config_yaml.sh: executing
Setting permissions for the config.yaml directory
Load environment variables from /config/config.yaml if existing
If accessing the file with filebrowser it should be mapped to /addon_configs/db21ed7f_nextcloud-ocr/config.yaml
---------------------------------------------------------
[18:56:42] NOTICE: This script is used to export custom environment variables at start of the addon. Instructions here : https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon
/etc/cont-init.d/01-custom_script.sh: executing
[18:56:43] NOTICE: This script is used to run custom commands at start of the addon. Instructions here : https://github.com/alexbelgium/hassio-addons/wiki/Running-custom-scripts-in-Addons
Execute /addon_configs/db21ed7f_nextcloud-ocr/nextcloud-ocr.sh if existing
/etc/cont-init.d/01-folders.sh: executing
Setting user to 1000:1000
Updating permissions...
... Config directory : /data
... data directory detected : /data/config/data
... setting permissions, this might take a long time. If it takes too long at each boot, you could instead activate skip_permissions_check in the addon options
... done
/etc/cont-init.d/02-init_steps.sh: executing
/etc/cont-init.d/02-mariadb_discovery.sh: executing
/etc/cont-init.d/30-ssl.sh: executing
/etc/cont-init.d/99-add_packages.sh: executing
/etc/cont-init.d/99-elasticsearch.sh: executing
/etc/cont-init.d/99-ocr.sh: executing
/etc/cont-init.d/99-trusted_domains.sh: executing
Starting the upstream container
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: skipped
[migrations] done
usermod: no changes
───────────────────────────────────────
      β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
      β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—
      β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘
      β–ˆβ–ˆβ•‘     β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘
      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
      β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β•β•β•β•β•
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
Linuxserver.io version: 31.0.9-ls393
Build-date: 2025-09-11T14:37:58+00:00
───────────────────────────────────────
using keys found in /data/config/keys
Initializing nextcloud 31.0.9.1 (this can take a while) ...
Setting permissions
New nextcloud instance
Please run the web-based installer on first connect!
Initializing finished
After completing the web-based installer, restart the Nextcloud container to apply default memory caching and transactional file locking configurations.
Alternatively, you can apply your own configurations by editing /data/config/www/nextcloud/config/config.php following the documentation:
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html
https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/files_locking_transactional.html
... Disabling check_data_directory_permissions
Starting custom scripts
/etc/cont-init.d/02-init_steps.sh: executing
Setting logs
--------------------------------------------------------------------------------------------------------------
Nextcloud not installed, please wait for addon startup, login Webui, install Nextcloud, then restart the addon
--------------------------------------------------------------------------------------------------------------
 
/etc/cont-init.d/02-mariadb_discovery.sh: executing
---
MariaDB addon was found! It can't be configured automatically due to the way Nextcloud works, but you can configure it manually when running the web UI for the first time using those values :
Database user : service
Database password : <redacted>
Database name : nextcloud
Host-name : core-mariadb:3306
---
/etc/cont-init.d/99-add_packages.sh: executing
[18:57:07] INFO: Installing additional apps :
... inotify-tools
/etc/cont-init.d/99-elasticsearch.sh: executing
/etc/cont-init.d/99-ocr.sh: executing
/etc/cont-init.d/99-trusted_domains.sh: executing
Starting the upstream container
[custom-init] No custom files found, skipping...
crond: crond (busybox 1.37.0) started, log level 8
[ls.io-init] done.

Architecture

aarch64, armv7

OS

HAos

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstaleElement will be closed automatically

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions