- Nextcloud Server version (e.g., 29.x.x):
- 31.0.10
- Operating system and version (e.g., Ubuntu 24.04):
- Debian 13
- Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
- AIO
Background: At restore, I have found that my Borg backup repo is corrupted. I have tried to integrity-check it and use the repair function. It then gives me a green light, but at restore it fails again. I’m now in progress of a second round of integrity check + repair, but my hopes are low.
Question: I want to try to do a restore excluding the data files. Is there a way to trigger this kind of partial restore? (Data files are synced to devices, so can be re-synced easily.)
I have read this: Pro-tip: Backup archives access - it seems I could sync everything but the files out of the Borg archive. But how do I then restore these files unto a working Nextcloud AIO instance?
I have read this: How to exclude Nextcloud’s data directory or the preview folder from backup? - external storage seems like a good option for when I manage to restore, as I can backup the data separately and restore quite easily. But the Nextcloud DB, calendar, tasks, Deck, etc - there is no simple way to restore this without restoring the Borg archive.
Thank you!
In case this gives anything, the latest verification logs:
Borg verification logs
2025-10-28T13:59:06.175822258Z Checking the backup integrity...
2025-10-28T13:59:07.030290136Z Starting repository check
2025-10-28T20:13:47.949346066Z finished segment check at segment 14125
2025-10-28T20:13:47.971576078Z Starting repository index check
2025-10-28T20:13:47.971742034Z Index object count match.
2025-10-28T20:13:49.379488578Z Finished full repository check, no problems found.
2025-10-28T20:13:49.388229734Z Starting archive consistency check...
2025-10-28T20:13:50.333575439Z Starting cryptographic data integrity verification...
2025-10-29T00:49:54.967846921Z Local Exception
2025-10-29T00:49:54.974332350Z Traceback (most recent call last):
2025-10-29T00:49:54.974352183Z File "/usr/lib/python3.12/site-packages/borg/archiver.py", line 5465, in main
2025-10-29T00:49:54.974359183Z exit_code = archiver.run(args)
2025-10-29T00:49:54.974364433Z ^^^^^^^^^^^^^^^^^^
2025-10-29T00:49:54.974369391Z File "/usr/lib/python3.12/site-packages/borg/archiver.py", line 5383, in run
2025-10-29T00:49:54.974374933Z rc = func(args)
2025-10-29T00:49:54.974379891Z ^^^^^^^^^^
2025-10-29T00:49:54.974384849Z File "/usr/lib/python3.12/site-packages/borg/archiver.py", line 200, in wrapper
2025-10-29T00:49:54.974390391Z return method(self, args, repository=repository, **kwargs)
2025-10-29T00:49:54.974395349Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-29T00:49:54.974400599Z File "/usr/lib/python3.12/site-packages/borg/archiver.py", line 379, in do_check
2025-10-29T00:49:54.974405849Z if not args.repo_only and not ArchiveChecker().check(
2025-10-29T00:49:54.974410807Z ^^^^^^^^^^^^^^^^^^^^^^^
2025-10-29T00:49:54.974416057Z File "/usr/lib/python3.12/site-packages/borg/archive.py", line 1659, in check
2025-10-29T00:49:54.974421307Z self.verify_data()
2025-10-29T00:49:54.974426265Z File "/usr/lib/python3.12/site-packages/borg/archive.py", line 1738, in verify_data
2025-10-29T00:49:54.974431515Z encrypted_data = next(chunk_data_iter)
2025-10-29T00:49:54.974436474Z ^^^^^^^^^^^^^^^^^^^^^
2025-10-29T00:49:54.974441432Z File "/usr/lib/python3.12/site-packages/borg/repository.py", line 1246, in get_many
2025-10-29T00:49:54.974446682Z yield self.get(id_)
2025-10-29T00:49:54.974451348Z ^^^^^^^^^^^^^
2025-10-29T00:49:54.974456307Z File "/usr/lib/python3.12/site-packages/borg/repository.py", line 1240, in get
2025-10-29T00:49:54.974461557Z return self.io.read(segment, offset, id)
2025-10-29T00:49:54.974466515Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-29T00:49:54.974471473Z File "/usr/lib/python3.12/site-packages/borg/repository.py", line 1643, in read
2025-10-29T00:49:54.974477015Z size, tag, key, data = self._read(fd, self.put_header_fmt, header, segment, offset, (TAG_PUT, ), read_data)
2025-10-29T00:49:54.974506181Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2025-10-29T00:49:54.974511723Z File "/usr/lib/python3.12/site-packages/borg/repository.py", line 1677, in _read
2025-10-29T00:49:54.974516098Z data = fd.read(length)
2025-10-29T00:49:54.974519889Z ^^^^^^^^^^^^^^^
2025-10-29T00:49:54.974523973Z OSError: [Errno 5] I/O error
2025-10-29T00:49:54.974527473Z
2025-10-29T00:49:54.974531556Z Platform: Linux nextcloud-aio-borgbackup 6.12.55-current-rockchip64 #1 SMP PREEMPT Thu Oct 23 14:20:48 UTC 2025 aarch64
2025-10-29T00:49:54.974536223Z Linux: Unknown Linux
2025-10-29T00:49:54.974540014Z Borg: 1.4.1 Python: CPython 3.12.11 msgpack: 1.0.8 fuse: llfuse 1.5.1 [pyfuse3,llfuse]
2025-10-29T00:49:54.974544389Z PID: 28 CWD: /
2025-10-29T00:49:54.974552847Z sys.argv: ['/usr/bin/borg', 'check', '-v', '--verify-data']
2025-10-29T00:49:54.974557222Z SSH_ORIGINAL_COMMAND: None
2025-10-29T00:49:54.974561014Z
2025-10-29T00:49:55.121187248Z Some errors were found while checking the backup integrity!
2025-10-29T00:49:55.121246747Z Check the AIO interface for advice on how to proceed now!