Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Work in progress

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

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 Github questions or [Github issues to ask questions or report issues for raspiBackup. That's my preference to get in contact.

  • Click Facebook, to follow raspiBackup on facebook

  • Click Twitter, to follow raspiBackup on twitter

  • Click Youtube, to visit the raspiBackup channel on Youtube

  • Click RaspberryForum, 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.

  • Click Reddit, to follow raspiBackup on Reddit.

Hinweis

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:

  1. Become a github sponsor
  2. 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.
  3. 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 !

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.

CM4.jpg

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.

Note

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

  1. Chinese
  2. English
  3. Finnish
  4. French
  5. 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

Local language support for languages other than DE and EN (L10N)

Manual restore of a tgz backup

/usr/sbin/NetworkManager: error while loading shared libraries: libhogweed.so.4: cannot open shared object file: No such file or directory