ProxmoxBackupClientPBSClien.../TROUBLESHOOTING.md
zaphod-black 0186349d99 Docs: Major README simplification + dedicated troubleshooting guide
Reorganized documentation for better usability and maintenance.

CHANGES:

1. README.md simplified (750 → 243 lines):
   - Focused on quick start and essential usage
   - Removed redundant step-by-step sections
   - Removed duplicate explanations
   - Clearer structure with better hierarchy
   - Link to dedicated troubleshooting guide

2. New TROUBLESHOOTING.md (comprehensive guide):
   - Connection Issues:
     - Connection test script usage
     - 3-step failure diagnosis
     - SSL certificate handling
   - Permission Errors:
     - Missing Datastore.Backup permission
     - PBS web interface and CLI solutions
     - Required permissions explained
   - Installation Issues:
     - Ubuntu 22.04 libssl1.1 missing
     - Arch Linux libfuse3 errors
     - yay AUR helper installation
   - Backup Issues:
     - Backups not running diagnostics
     - "Skip mount point" explanation
     - No space left solutions
     - Encryption key problems
   - Multi-Target Issues:
     - Target connection test failures
     - Missing services
   - Configuration Issues:
     - Whitespace in configuration
     - Incomplete configuration warning
   - Advanced Troubleshooting:
     - Verbose logging
     - Manual testing
     - PBS server logs
     - Network timeout solutions
   - Common Misconfigurations:
     - Token format examples
     - Datastore name case-sensitivity
     - Repository string format
     - Permission path format

BENEFITS:
- Faster onboarding (README focused on getting started)
- Easier problem-solving (dedicated troubleshooting guide)
- Better maintainability (separate concerns)
- Improved searchability (detailed error solutions)
- Professional documentation structure

README now covers:
- Features and quick start
- Prerequisites (simplified)
- Basic usage
- Multi-target management
- Backup types explained
- Encryption key best practices
- Updating and uninstallation

TROUBLESHOOTING covers:
- All error messages and solutions
- Step-by-step diagnostic procedures
- Advanced configuration options
- Common pitfalls and how to avoid them

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 00:58:38 -05:00

421 lines
9.3 KiB
Markdown

# Troubleshooting Guide
Common issues and solutions for PBSClientTool.
## Connection Issues
### Connection Test Script
If you encounter connection issues, use the included diagnostic script:
```bash
./test-connection.sh <server> <port> <datastore> <username> <realm> <password-or-token>
```
**Examples:**
With username/password:
```bash
./test-connection.sh 192.168.1.181 8007 DEAD-BACKUP root pam mypassword
```
With API token:
```bash
./test-connection.sh 192.168.1.181 8007 DEAD-BACKUP root pam backup-token token-secret-here
```
The script will:
- Test server reachability
- Handle SSL certificate fingerprint acceptance
- Test authentication
- Verify datastore access
- Provide detailed error messages
### Connection Test Failures
The installer tests connections with a 3-step process:
**Step 1 - Server Reachability (5s timeout):**
- PBS server is unreachable (check IP/hostname)
- Firewall blocking port (default: 8007)
- Network connectivity issues
**Quick checks:**
```bash
# Test server reachability
ping 192.168.1.181
curl -k https://192.168.1.181:8007
```
**Step 2 - Authentication (15s timeout):**
- Invalid credentials (username/password/token)
- SSL certificate fingerprint issues (automatically handled)
- API token format errors
**Quick checks:**
- Verify credentials in PBS web interface
- Ensure API token includes both username and token name: `root@pam!backupAutomations`
- Check for trailing spaces in input fields (script now trims automatically)
**Step 3 - Datastore Access:**
- Datastore does not exist on server
- User lacks permissions for the datastore
**Quick checks:**
- Verify datastore name matches exactly (case-sensitive)
- Check permissions in PBS: Configuration → Access Control → Permissions
### SSL Certificate Fingerprints
The installer automatically accepts SSL fingerprints during setup. If you need to manually accept:
```bash
export PBS_REPOSITORY="root@pam@192.168.1.181:8007:DEAD-BACKUP"
export PBS_PASSWORD="your-password"
proxmox-backup-client login
# Answer 'y' when prompted to accept the fingerprint
```
## Permission Errors
### Missing Datastore.Backup Permission
**Error:**
```
Error: permission check failed - missing Datastore.Audit|Datastore.Backup
Error: while creating locked backup group
```
**Solution:**
Your API token needs backup permissions on the datastore.
**Via PBS Web Interface:**
1. Go to **Configuration → Access Control → Permissions**
2. Click **Add → User Permission**
3. Configure:
- **Path:** `/datastore/YOUR-DATASTORE-NAME`
- **User:** `root@pam!backupAutomations` (your token)
- **Role:** `DatastoreBackup` (or `DatastoreAdmin` for full access)
4. Click **Add**
**Via PBS CLI:**
```bash
pveum acl modify /datastore/DEAD-BACKUP -token 'root@pam!backupAutomations' -role DatastoreBackup
```
### Required Permissions
The API token needs at least:
- **Datastore.Backup** - Create new backups
- **Datastore.Verify** - Verify backup integrity (optional)
- **Datastore.Prune** - Remove old backups based on retention policy
The `DatastoreBackup` or `DatastoreAdmin` role includes all of these.
## Installation Issues
### Ubuntu 22.04: libssl1.1 Missing
**Error:**
```
libssl1.1: not found
```
**Solution:**
```bash
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
```
### Arch Linux: libfuse3.so.3 Not Found
**Error:**
```
error while loading shared libraries: libfuse3.so.3: cannot open shared object file
```
**Solution:**
Rebuild the package after fuse3 updates:
```bash
yay -S proxmox-backup-client-bin --rebuild
```
### Arch Linux: yay Not Installed
**Error:**
```
yay: command not found
```
**Solution:**
Install yay AUR helper first:
```bash
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
```
See: https://github.com/Jguer/yay
## Backup Issues
### Backups Not Running
Check timer and service status:
```bash
# Check if timer is enabled and active
sudo systemctl list-timers pbs-backup-default.timer
# Check service status
sudo systemctl status pbs-backup-default.service
# View recent logs
sudo journalctl -u pbs-backup-default.service -n 50
# Follow logs in real-time
sudo journalctl -fu pbs-backup-default.service
```
### "Skip mount point" Messages
**Message:**
```
Skip mount point: /boot/efi
```
**This is normal behavior.** The script excludes separate mount points by default to avoid issues with mounted filesystems.
**To include specific mount points:**
Edit `/etc/proxmox-backup-client/backup-default.sh` and add `--include-dev` flags:
```bash
proxmox-backup-client backup \
root.pxar:/ \
--include-dev /boot/efi \
--repository $PBS_REPOSITORY
```
### Backup Fails with "No space left"
**Error:**
```
Error: No space left on device
```
**Possible causes:**
1. PBS datastore is full
2. Local `/tmp` is full during backup
3. Encryption key storage is full
**Solutions:**
1. Check PBS datastore usage in web interface
2. Prune old backups: `sudo proxmox-backup-client prune`
3. Clean local temp: `sudo rm -rf /tmp/*`
### Encryption Key Issues
**Error:**
```
Error: unable to open encryption key
```
**Solution:**
Ensure encryption key exists and has correct permissions:
```bash
ls -la /root/.config/proxmox-backup/encryption-key.json
# Should show: -rw------- (600) owned by root
# If missing, restore from paper backup
sudo mkdir -p /root/.config/proxmox-backup
sudo cp /path/to/saved/encryption-key.json /root/.config/proxmox-backup/
sudo chmod 600 /root/.config/proxmox-backup/encryption-key.json
```
## Multi-Target Issues
### Target Connection Tests Fail
**Symptom:**
```
default: ✗ Failed
```
**Solution:**
Use option 3 (Edit target) from main menu to reconfigure:
1. Test connection first with standalone test-connection.sh script
2. Verify datastore permissions on PBS server
3. Check for typos in server/datastore names
4. Ensure API token is still valid (not revoked/expired)
### Services Not Found
**Error:**
```
Unit pbs-backup-default.timer not found
```
**Solution:**
The target may not have been fully configured. Reconfigure it:
```bash
sudo PBSClientTool
# Select option 3 (Edit existing target)
# Select option 3 (Full reconfiguration)
```
## Configuration Issues
### Whitespace in Configuration
**Error:**
```
Error: invalid repository format
```
**Cause:**
Previous versions could capture trailing spaces in input fields, breaking the repository string.
**Solution:**
Current version (1.1.0+) automatically trims all input. If you have an old config, reconfigure the target:
```bash
sudo PBSClientTool
# Select option 3 (Edit existing target)
# Select option 1 (Connection only)
# Re-enter connection details (will be auto-trimmed)
```
### Target Shows "Incomplete configuration"
**Symptom:**
```
Target: default
Status: ⚠ Incomplete configuration
Action: Use option 3 (Edit target) to reconfigure
```
**Cause:**
Essential fields (PBS_SERVER or PBS_DATASTORE) are missing or contain placeholder values.
**Solution:**
Use option 3 from main menu to edit the target and complete the configuration.
## Advanced Troubleshooting
### Enable Verbose Backup Logging
Edit `/etc/proxmox-backup-client/backup-default.sh` and add `--verbose`:
```bash
proxmox-backup-client backup \
root.pxar:/ \
--verbose \
--repository $PBS_REPOSITORY
```
### Test Backup Manually
Run backup script directly to see full output:
```bash
sudo /etc/proxmox-backup-client/backup-default.sh
```
### Check PBS Server Logs
On the PBS server:
```bash
journalctl -u proxmox-backup.service -f
```
### Verify Repository Format
Check that PBS_REPOSITORY is correctly formatted:
```bash
source /etc/proxmox-backup-client/targets/default.conf
echo $PBS_REPOSITORY
# Should look like:
# username@realm!tokenname@server:port:datastore
# OR
# username@realm@server:port:datastore
```
### Network Timeout Issues
If backups are slow or timing out over WAN:
Edit backup script and add rate limiting:
```bash
proxmox-backup-client backup \
root.pxar:/ \
--rate-limit 10485760 \
--repository $PBS_REPOSITORY
```
Rate is in bytes/second (10485760 = 10 MB/s).
## Getting Help
### Collect Debug Information
When reporting issues, include:
```bash
# Script version
sudo PBSClientTool --version
# PBS client version
proxmox-backup-client version
# Target list
sudo PBSClientTool
# Select option 1, screenshot the output
# Service status
sudo systemctl status pbs-backup-default.service
# Recent logs
sudo journalctl -u pbs-backup-default.service -n 100 --no-pager
```
### Where to Get Help
- **PBSClientTool issues:** https://github.com/zaphod-black/PBSClientTool/issues
- **PBS client issues:** https://forum.proxmox.com
- **PBS documentation:** https://pbs.proxmox.com/docs/
## Common Misconfigurations
### Token Format
**Wrong:** `backupAutomations` (token name only)
**Correct:** `root@pam!backupAutomations` (full format in permissions)
### Datastore Name
**Wrong:** `DEAD-Backup` (wrong case)
**Correct:** `DEAD-BACKUP` (exact match from PBS)
### Repository String
**Wrong:** `root@pam !backupAutomations@...` (extra space)
**Correct:** `root@pam!backupAutomations@...` (no spaces)
(Note: Current version auto-trims spaces, but good to know the correct format)
### Permission Path
**Wrong:** `/datastore/DEAD-BACKUP/` (trailing slash)
**Correct:** `/datastore/DEAD-BACKUP` (no trailing slash)