A process holding an open descriptor on a disk that vanished from the bus
doesn’t get ENOENT (No such file or directory) — it gets EIO (I/O error):
Error: EIO: i/o error, scandir '/data/backups'
The distinction points the finger: ENOENT would mean a wrong path, a config
bug, a volume not mounted at startup. EIO means the path existed and the
storage underneath died afterward — cable, controller, disk. Right software,
failing hardware.
When a container starts spitting EIO, check dmesg/journalctl -k for a USB
or SATA reset before restarting the container. Restarting won’t bring the disk
back.