This documentation is being built with new tools on a new platform...
Initially by copying the original text from framp's website.
Currently the structure isn't finalized and most pages are empty or "broken", especially regarding links and formatting. The German version is more complete yet.
That means: For now it's work in progress.
There are two language versions, german and english. Dynamically selectable with the language selector on the top right.
Introduction
raspiBackup - Create backup versions of your Raspberry Pis regularly/automatically.
A regular backup of your Raspberry Pis is important. In case of a failure of the system device (SD Card, USB disk, USB flash drive, SSD, NVMe ...) or unintended updates which cause the system either not to boot any more or boot with errors this backup enables you to restore a previous functional backup.
raspiBackup creates a backup of Raspberry Pis from a running system. You can either start the backup manually or have the backups be started automatically with systemd or crontab. Optionally you can let you notified about the backup result with eMail, Pushover, Slack or Telegram.
Backups can be saved ony an partition which can be mounted on a Linux system (USB flash drive, USB disk, SSD, NVMe, nfs, samba/cifs, sshfs, webdav etc).
There exist two backup modes: The normal backup mode just saves the boot and root parition. If additional partitions should be saved, for example a 3rd data only partition, the partition oriented mode has to be used.
If you own an Synology or another NAS device see here for configuration hints.
Linux backuptools dd
backup, tar
backup, (both backups can also be zipped) and a rsync
backup
with hardlink usage to create a delta backup can be used.
For details about the different backup methods see here.
There you will find a decision tree to decide which backup methods is the right one to use.
To install and configure raspiBackup there exists an installer similar to raspi-config, which allows menuedriven, simple and fast to configure raspiBackup with it's most important options to use raspiBackup. All more sophisticated options have to be configured in a configuration file.
raspiBackup also restores a backup Restore.
All functions and usage scenarios of raspiBackup are listed in Functionoverview..
For additional chapters see here:
- Supported hard- and software
- Stop and start of services
- Extensionpoints
- Optionally external root partition
- Introduction video on Youtube-Channel
- Contact
- Donations
- Credits
- License and github link
- Disclaimer
Supported hard- and software
See Supported hard- and software
Stop and start of services
To get a consistent backup of a running system all services which keep important information in memory have to be stopped before a backup starts and should be started when the backup finishes,
The required commands can be specified in the configuration file. The raspiBackup installer allows to select systemd services to be stopped and started and no configuration file update is required.
Extensionpoints
There exist extensionpoints for plugins in raspiBackup, to hock in any additonal custom logic at different points of the backup and restore processing.
Optionally external root partition
If an old Raspberry should be seaved which doesn't support USB boot an external root partition referred by the SD boot partition will be saved also.
There exists the normal backup mode which just saves /boot and /root. Partition oriented mode saves any number of partitions starting with release 0.6.6.
Introduction video on Youtube-Channel
There exists a Introductional video for raspiBackup on Youtube.
Topics are
- Present raspiBackup with its features
- Present the most important webpages about raspiBackup
- Introduction of github as a question and problemreporting tools
- Liveinstallation of raspiBackup with the menuedriven installer
All slides used in the videos can be downloaded from hier.
A lot of additional videos about various features of raspiBackup are available in the raspiBackup-Channel.
Contact
-
Click
or [
to ask questions or report issues for raspiBackup. That's my preference to get in contact.
-
Click
, to ask questions in the German Raspberry forum. If you're not a native German speaker you can post your question in English if you like.
Any other communication channels like eMail which is quite prominent will be discarded silently.
Donations
Any recognition of raspiBackup development- and maintenance effort and any support is greatly appreciated. There exist following donation alternatives:
- Become a github sponsor
- Paypal: The eMail
framp att linux-tips-and-tricks dott de
is known by PayPal and everybody who owns a Paypal account can donate to this eMail. - Neither one: Just contact me via eMail mentioned above and we will find a solution. For example I already received multiple times donations in a good old postal letter :-)
Credits
raspiBackup wouldn't have the features and quality without folks from the community who asked for features and helped to test new features and created PRs to add new featutures. Ths list will be very long and I was very busy to update the list in the past. I finally stopped to publish and update the list.
Thank you very much to everybody who helped to improve raspiBackup !
License and github link
The code of raspiBackup is pure bash code and is available under the GPL license on github.
Disclaimer
This backupscript raspiBackup was initally created for personal use only. But it's very useful and therefore was published for general use. It's seriously tested but it's not possible to guarantee the script works as expected in all possible environments. Everybody uses this script on his own risk. The creator of this script is not liable in any case for any malfunction.
Function overview from Website
Supported hardware and software
Support for Raspberry Pi OS (RaspbianOS) Lite and Desktop
Both of Raspberry Pi OS (formerly known as Raspbian OS) "Lite" and "with desktop" are supported. For the "with desktop" version an Rpi4/Rpi5 with at least 4GB RAM is recommended.
Ubuntu support
Ubuntu is supported as long the official Ubuntu version for Rasbberries is used. An RPi4 with 4GB or ideally with 8GB is recommended. The same goes with an RPi5. Ubuntu Server might have lower requirements.
Support for Raspberry Compute Module 4 and NVMe
I just got a CM4 donated with 1GB main memory, 32GB eMMC and 128 GB NVMe. Thank you very much to the donator!
CM4 was already supported by raspiBackup but only running from a SD card, eMMC or USB boot. It's already possible to use NVMe when it's provided in an USB plug because it's exposed as a normal disk as /dev/sdx but there was no way to have NVMe plugged in in the PCI lane exposed as /dev/nvme. Now I fortunately was able to add this support to raspiBackup. This support is available now in release 0.6.8.
How to make the CM4 NVMe device available on Linux to restore a NVMe backup created with raspiBackup
If you want to restore an NVMe backup you have to mount the NVMe device on a Linux system in the following way:
Here are full instructions (Sourced from: https://jamesachambers.com/full-compute-module-4-raspberry-pi-setup-imaging-guide/ combined with the mass-storage-gadget documentation on github):
Disconnect power from the CM4 carrier board, and change the USB boot switch behind the HDMI port to "ON"
Connect a USB cable from your other Pi/Linux computer to the CM4 Carrier's USB-C port
Open terminal on your linux computer and run the following to set up rpiboot/usbboot:
sudo apt install git libusb-1.0-0-dev build-essential
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
sudo make install
Then to mount the drives:
cd mass-storage-gadget
sudo ../rpiboot -d .
Once done the boot and rootfs partitions of eMMC and NVMe should mount.
Don't expect the device used for NVMe to be mounted all the time with the same device name. Double check you use the correct device name when you use NVMe.
raspiBackup requires the restore device partitions not to be mounted. Now
umount the NVMe partitions (e.g. /dev/nvme0n1p1
and /dev/nvme0n1p2)
and use the
NVMe device (e.g. /dev/nvme0n1
) as parameter for restore option -d.
Language support
For displaying it's dialogs and messages raspiBackup takes the system language into account. English is used as default if that language isn't supported by raspiBackup yet.
Supported languages are
- Chinese
- English
- Finnish
- French
- German
Anyone wanting to add another language to raspiBackup is invited to do so, Details can be found here.
Installation
Installation in 5 minutes
Manual installation and configuration
Statistics
Updates
Restore
Restore with raspiBackup
Manueller Restore eines Backups
How to restore single files or directories from the backup
Details zum Aufruf und zur Konfiguration
Usage and options
Backup types and decision tree
Comparing partition orientated and normal backup
Backup directory structure
Rotation strategy
Snapshots
Konfigurationsupdate bei einem Upgrade auf eine neue Version
Hooks for own scripts
--
Configuration examples
msmtp configuration for a web.de account
exim4 konfigurieren
nullmailer konfigurieren
FAQ
More questions and answers
Welches Dateisystem kann auf der Backuppartition benutzt werden?
Wie funktionieren Hardlinks zusammen mit rsync
Warum sollte man dd als Backupmethode besser nicht benutzen?
Wie kann man mit raspiBackup einen Clone erstellen?
Umziehen des Raspberry Betriebssystems von SD Karte auf SSD, USB Platte oder USB Stick
Wie kann ich die Betaversion installieren und ausprobieren ?
Error messages
Helper scripts
raspiBackupDialog - a convenient helper script
More helpful scripts
Other backupspaces
Synology/NAS
AVM Fritzbox as backupspace
WEBDAV as backupspace
Tips for homeautomation
Helpful links regarding backup
Other backup tools for Raspberry Pi
Any other business
Version history
raspiBackup has a new logo
10 years raspiBackup
Executed regression tests
Development environment
Users all over the world
Version of this documentation
Last commit
commit 2206f41840e891c63d24dcd14293750fb6b7770c
Author: rpi-simonz <simonz@mailbox.org>
Date: Fri Jun 27 21:45:41 2025 +0200
Resolve remaining shellcheck issues
Build: 2025-06-27T19:46+00:00