- Add LV → Borg and VG → Borg backup modes - GUI: Borg settings panel with repo path, encryption, passphrase - CLI: Enhanced script with Borg options (--new-repo, --encryption, --passphrase) - Automatic repository initialization for new repos - Support for all Borg encryption modes (none, repokey, keyfile) - Mount snapshots temporarily for file-level Borg backups - Comprehensive cleanup of snapshots and mount points - Updated documentation and examples Benefits: - Deduplication and compression - Strong encryption support - Incremental backups capability - Space-efficient storage - Still maintains simple snapshot → backup → cleanup workflow
Enhanced Simple LVM Backup System with Borg Support
A reliable, straightforward backup system for LVM-enabled Linux systems. Born from the need for simple, dependable backups without complex logic that can cause system issues.
Philosophy
Simple is better. This system does exactly three things:
- Create LVM snapshot
- Copy data (dd/pv for raw, Borg for repositories)
- Clean up snapshot
No complex migration logic, no fancy features that can break. Just reliable backups.
Features
Five Backup Modes
- LV → LV: Update existing logical volume backups
- LV → Raw: Create fresh backups on raw devices
- VG → Raw: Clone entire volume groups with LVM metadata
- LV → Borg: Backup logical volume to Borg repository (deduplicated, compressed, encrypted)
- VG → Borg: Backup entire volume group to Borg repository
Two Interfaces
- GUI:
simple_backup_gui.py- User-friendly interface with Borg configuration - CLI:
enhanced_simple_backup.sh- Command-line power user interface
Quick Start
1. See Available Options
sudo ./list_drives.sh
2. Choose Your Backup Mode
Update existing backup:
sudo ./enhanced_simple_backup.sh lv-to-lv /dev/internal-vg/root /dev/backup-vg/root
Fresh backup to external drive:
sudo ./enhanced_simple_backup.sh lv-to-raw /dev/internal-vg/root /dev/sdb
Clone entire system:
sudo ./enhanced_simple_backup.sh vg-to-raw internal-vg /dev/sdb
Use the GUI:
sudo python3 simple_backup_gui.py
Borg repository backups:
# Create new Borg repo and backup LV
sudo ./enhanced_simple_backup.sh lv-to-borg /dev/internal-vg/root /path/to/borg/repo --new-repo --encryption repokey --passphrase mypass
# Backup entire VG to existing repo
sudo ./enhanced_simple_backup.sh vg-to-borg internal-vg /path/to/borg/repo --passphrase mypass
Files
Core System
simple_backup_gui.py- GUI interface with mode selectionenhanced_simple_backup.sh- CLI with three backup modeslist_drives.sh- Helper to show available sources/targetsSIMPLE_BACKUP_README.md- Detailed documentation
Legacy Files
old_scripts/- Previous complex implementations (archived)- Various
.mdfiles - Documentation from previous iterations
Requirements
- LVM-enabled Linux system
- Root access (
sudo) - Python 3 + tkinter (for GUI)
pvcommand (optional, for progress display)- Borg Backup (for Borg modes):
sudo apt install borgbackup
Safety Features
- Clear confirmations before destructive operations
- Automatic snapshot cleanup on errors
- Emergency stop functionality (GUI)
- Input validation and error handling
What This System Does NOT Do
- Complex migration between different LVM setups
- Automatic boot repair or GRUB handling
- Multiple backup formats or compression
- Network backups or cloud integration
- File-level incremental backups
For those features, use dedicated tools like Borg Backup, CloneZilla, or rsync.
Why This Approach?
Previous versions of this project included complex migration logic that occasionally caused system issues. This version returns to basics:
✅ Uses standard LVM commands only
✅ Minimal chance of errors
✅ Easy to understand and debug
✅ Predictable behavior
✅ No hidden "smart" features
Recovery
From LV Backup
Mount the backup LV and copy files, or use it to restore your system.
From Raw Device Backup
Boot directly from the device, or restore using dd in reverse.
From VG Clone
Import the volume group or boot directly from the cloned device.
Contributing
Keep it simple. Any additions should follow the core principle: minimal logic, maximum reliability.
License
Open source - use and modify as needed.