Buenas!
Por lo que cuentas, ese EPERM tiene pinta de venir más por permisos/mapeo de usuarios entre TrueNAS, Proxmox y el LXC que por ProxMenux en sí. ProxMenux te habrá creado el contenedor, pero el punto delicado aquí es que PBS intenta crear el datastore y su estructura interna en una ruta que probablemente viene de un dataset/share montado desde TrueNAS.
Algunas ideas para acotar:
La documentación de PBS dice que un datastore es una ruta de un sistema de ficheros tipo Unix (ext4, xfs o zfs) donde se guardan los backups:
Y la instalación recomendada de PBS es con ISO o sobre Debian. Incluso instalar PBS directamente encima del hipervisor Proxmox lo marcan como “no recomendado”; meterlo en LXC funciona en muchos homelabs, pero añade otra capa de permisos:
Si el LXC es unprivileged, Proxmox remapea los UID/GID internos del contenedor. Es decir, el root o el usuario backup dentro del contenedor no son necesariamente los mismos usuarios vistos desde el host o desde TrueNAS. En los bind mounts, la propia documentación de Proxmox avisa de que puedes tener problemas de permisos por ese mapeo y que los ACL pueden complicarse:
Yo revisaría esto por orden:
- Dentro del LXC de PBS:
id backup
ls -ldn /ruta/del/datastore
sudo -u backup mkdir /ruta/del/datastore/test-pbs
sudo -u backup touch /ruta/del/datastore/test-pbs/test.txt
rm -r /ruta/del/datastore/test-pbs
Si eso falla, el problema está antes de PBS: permisos efectivos del usuario backup sobre esa ruta.
- En el host Proxmox, mirar la config del contenedor:
cat /etc/pve/lxc/ID_DEL_CONTENEDOR.conf
Interesan especialmente estas líneas: unprivileged, mp0/mp1, si es bind mount, si monta algo que viene de NFS/CIFS y cómo está montado.
-
En TrueNAS, revisar si el dataset/share tiene ACL, maproot, mapall, root squash o permisos que estén convirtiendo el usuario en nobody/nogroup. En estos montajes es muy típico que puedas “ver” la carpeta, pero que al crear el chunk store PBS falle al hacer mkdir, chmod, chown o crear la estructura .chunks.
-
Sacar el log exacto del intento fallido. En PBS suele ayudar mucho copiar el task log completo de la creación del datastore y también:
journalctl -u proxmox-backup-proxy -u proxmox-backup -n 100 --no-pager
Como solución práctica, si es para algo importante, yo intentaría que PBS tenga el datastore en un disco/ruta local controlada por PBS, idealmente en VM o máquina dedicada, y luego ya replicar/sincronizar hacia TrueNAS si hace falta. Si quieres mantenerlo en LXC, entonces tocaría cuadrar bien el UID/GID del usuario backup del contenedor con el propietario real de la carpeta montada, o probar con un contenedor privileged solo si aceptas el compromiso de seguridad.
Pásanos si puedes el error completo, la ruta donde intentas crear el datastore, la config del LXC sin datos sensibles y la salida de id backup + ls -ldn sobre esa ruta. Con eso se puede decir mucho más fino por dónde está rompiendo.