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, SMB, 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 f 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

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.

Introduction

Backup

Decision tree for backup types

Comparing partition orientated and normal backup

Backup directory structure

Rotation strategy

Snapshots

Konfigurationsupdate bei einem Upgrade auf eine neue Version

Configuration examples

msmtp configuration for a web.de account

Exim4 konfigurieren

nullmailer konfigurieren

Restore

How to restore single files or directories from the backup

Manueller Restore eines Backups

Manual tgz restore

The backup directory created by raspiBackup contains all information required to restore this backup also manually with standard Linux tools. The following page describes how to restore a normal tgz backup.

Create the partitions on the SD card

First of all the SD card has to be plugged in in into a Raspberry which is used to restore the backup. It usually is detected as /dev/sda or /dev/sdb. Use lsblk to check what's the device used by the SD card. In the following description I use /dev/sdb now.

Next mount the backuppartition on a mountpoint. /mnt iis used in the following description for the backup partition and hostname raspberry and /media for the target SD card partitions.

Now create the partitions with

sudo sfdisk /dev/sdb < /mnt/raspberry/raspberry-tgz-backup-20170812-134552/raspberry-backup.sfdisk

This will create two partitions.

You can check whether everything is OK with

sudo fdisk -l /dev/sdb

Disk /dev/sdb: 7.43 GiB, 7969177600 bytes, 15564800 sectors
Disk model: MassStorageClass
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa02ea338Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/sdb2 532480 15564799 15032320 7.2G 83 Linux

Restore first partition (boot partition)

sudo dd of=/dev/sdb1 if=/mnt/raspberry/raspberry-tgz-backup-20170812-134552/raspberry-backup.img
sync

You can check whether everything is OK with following commands:i

sudo mount /dev/sdb1 /media; ls /media; sudo umount /media

You should get a list of all boot files.

bcm2708-rpi-b.dtb bcm2708-rpi-zero-w.dtb bcm2710-rpi-3-b-plus.dtb bcm2711-rpi-4-b.dtb config.txt fixup4x.dat issue.txt LICENCE.broadcom start4x.elf
bcm2708-rpi-b-plus.dtb bcm2709-rpi-2-b.dtb bcm2710-rpi-cm3.dtb bcm2711-rpi-cm4.dtb COPYING.linux fixup_cd.dat kernel7.img overlays start_cd.elf
bcm2708-rpi-b-rev1.dtb bcm2709-rpi-cm2.dtb bcm2710-rpi-zero-2.dtb bcm2711-rpi-cm4s.dtb fixup4cd.dat fixup.dat kernel7l.img start4cd.elf start_db.elf
bcm2708-rpi-cm.dtb bcm2710-rpi-2-b.dtb bcm2710-rpi-zero-2-w.dtb bootcode.bin fixup4.dat fixup_db.dat kernel8.img start4db.elf start.elf
bcm2708-rpi-zero.dtb bcm2710-rpi-3-b.dtb bcm2711-rpi-400.dtb cmdline.txt fixup4db.dat fixup_x.dat kernel.img start4.elf start_x.elf

Restore second partition (root partition)

Now format the second partition with

sudo mkfs.ext4 /dev/sdb2

You can check whether everything is OK with following commands:

sudo mount /dev/sdb2 /media; df -h /media

You should get something like

Filesystem Size Used Avail Use% Mounted on
/dev/sdb2 7.0G 24K 6.6G 1% /media

Now restore the tgz Backup on the partition created just now:

sudo tar --exclude /boot --same-owner --same-permissions --numeric-owner -x -v -z -f /mnt/raspberry/raspberry-tgz-backup-20170812-13455/raspberry-tgz-backup-20170812-134552.tgz -C /media
sudo umount /media
sudo umount /mnt

During the restore you should see the list of all files restored.

Boot the restored system

Now remove the target SD card, insert it in another Raspberry and boot the Raspberry with the restored backup.

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 ?

Is an external root partition supported?

Installation and first backup

The fastest and standard way to install raspiBackup in approx. 5 minutes and then immediately create a backup is described on page Quickstart - Installation in 5 minutes.

If you want to install raspiBackup very quickly from the command line with its default configuration, you will also find the necessary information there.

If you want to install raspiBackup manually, you should follow the description on this page.

Installation in 5 minutes

Manual installation and configuration

Statistics

Updates

Details zum Aufruf und zur Konfiguration

Restore

Options

Options grouped by topic (Selection)

Häufige Fragen (FAQ)


0) Wie entstand raspiBackup?

Bei framp liefen zu Hause drei Raspis. Zwei davon 7/24 - also rund um die Uhr. Ein jeder Server sollte regelmäßig gesichert werden denn es können immer mal unvorhergesehene Umstände eintreten, die eine Wiederherstellung eines vorherigen Standes erfordern. Speziell die SD Karte der Raspberry neigt dazu, immer mal wieder auszufallen. Um dafür gewappnet zu sein, wurde ein kleines Script geschrieben, welches zuerst ein dd Backup, dann später, da ein dd Backup ja immer die gesamte SD Karte sichert obwohl nur Bruchteile davon benutzt werden, ein tar Backup automatisch erstellte. Zum Schluss wurde dann ein rsync Backup implementiert um durch die Hardlinks Backupzeit und -space zu sparen. Nachdem imer mal wieder eine Wiederherstellung notwendig war und alles gut klappte dachte framp dass das Script auch anderen Raspberryfreunden hilfreich sein könnte und publizierte raspiBackup. Siehe auch 10 Jahre raspiBackup

1) Ist ein Backup eines laufenden Systems zuverlässig? Sollte nicht das gesamte System vor dem Backup gestoppt werden?

Die sicherste Methode ist natürlich das System vollständig zu stoppen. Bei einem Backup wird nur gesichert was sich auf dem Speichermedium und nicht was sich noch im Hauptspeicher befindet.

Ein Systemstop ist leider nicht regelmäßig und automatisch vornehmbar. Wenn man alle aktiven Services wie mysql, samba, nfs, Owncloud, Webserver und alle anderen aktiven Services immer vor dem Backup stoppt, um keine Dateninkonsistenzen zu erzeugen, kann das Backup zum Wiederherstellen der Raspi genutzt werden. Stoppt man die Services nicht, besteht eine hohe Wahrscheinlichkeit, dass das Backup inkonsistent wird. Dazu gibt es die Parameter -a und -o, um die entsprechenden Stop- und Startbefehle vor bzw. nach dem Backup auszuführen. Siehe auch FAQ18 dazu.

Mit dem Installer können Systemd Services ausgewählt werden, die gestoppt und nach dem Backup wieder gestartet werden sollen und die Parameter für Option -a und Option -o werden entsprechend gesetzt.

2) Wie kann ich ein Backup wiederherstellen?

raspiBackup kann jedes Backup wieder zurück gespielt werden. (Siehe dazu hier die Details). Als Windowsbenutzer kann man entsprechende Windowstools nutzen, um dd Backups wiederherzustellen. Für andere Backuptypen wie tar oder rsync ist ein Linux notwendig.

Allerdings kann man dazu die Raspberry benutzen: Man bespielt eine neue SD Karte mit RaspbianOS und kopiert darauf raspiBackup. Dann schließt man das Gerät, auf welches das Backup zurückgespielt werden soll, sowie das Medium mit dem Backup an die Raspberry an. Danach ruft man raspiBackup auf und lässt ein gewünschtes Backup auf das Gerät zurückschreiben. Anschließend fährt man das System runter, legt das Gerät mit dem zurückgespielten Backup ein und startet die Raspberry wieder.

3) Was kann raspiBackup alles sichern und wiederherstellen?

Im normalen Modus sichert raspiBackup mit tar oder rsync zwei Partitionen: Die Boot und die Rootpartition die auf dem System. Wenn die Rootpartition auf ein externes Medium verlagert wurde wird auch die externe Rootpartition gesichert. Mit dem dd Backup wird die gesamte SD Karte gesichert. Dann kann aber keine externe root Partition mitgesichert werden.

Im partitionsorientierten Modus werden beliebig viele Partitionen des Systems gesichert. Weitere externe Partitionen werden aber nicht gesichert.

4) Welche Linux Sicherungsmethoden stehen zur Verfügung?

Es steht der dd Backup sowie der tar und rsync Backup zur Verfügung. dd und tar Backups können noch mit zip komprimiert werden. Auf dieser Seite können die Vor- und Nachteile der jeweiligen Backupmethoden nachgelesen werden.

5) Kann man die Sicherung auch ohne raspiBackup wiederherstellen?

Das ist eine Grundvoraussetzung für raspiBackup gewesen: Es muss möglich sein, das Backup mit entprechenden Linuxkenntnissen zu Fuß restoren zu können.

Die Sicherung legt Dateien an, die die lesbaren Ausgaben von den Linux Befehlen sfdisk, blkid und fdisk von dem System enhält. Damit lässt sich zuerst die Partitionsstruktur des Backups mit den entsprechenden Linuxtools wiederherstellen. Danach kann man die Partitionsbackups mit den entsprechenden Linuxtools wieder auf die Partitionen zurückspielen.

6) Kann man die Sicherungen mit raspiBackup auch auf kleiner und größere SD Karten wiederherstellen?

Beim dd Backuptyp muss man nach den Restore auf ein größeres Gerät mit Linux Repartitionierungstools nach der Wiederherstellung die Paritionsgröße anpassen wenn man für die zweite Parition sämtlichen Platz nutzen will. Ein dd Restore auf einkleineries Gerät geht nicht.

Ohne Probleme funktioniert es bei einem kleineren oder größeren Gerät sofern tar oder rsync Backup. Beim normalen Backupmodus wird automatisch die Größe der root Partition entsprechend angepasst, d.h. entsprechend verkleinert oder vergrößert. Bei einer Vergrößerung wird der gesamte zur Verfügung stehende Platz benutzt. Wird von dem Backup des Systems mehr Platz benutzt als das Restore Gerät hat gibt es natürlich Fehler beim Restore. Beim partitionsorientierten Backupmodus wird die letzte Partition entsprechend angepasst.

Mit der Option -0 (Null) wird keine Partitionierung des neuen Gerätes vorgenommen sondern die existierende Partitionierung des gesicherten Systems genutzt. Man hat damit vollständige Kontrolle über die Größe der Wiederhergestellten Partitionen. D.h. man kann dadurch vor dem Restore genau festlegen, wie gross die Partitionen auf der neuen SD Karte sein sollen und somit auch auf kleiner SD Karten restoren. Das geht auch für partitionsorientierte Backups.

Ein dd Backup kann nicht auf eine kleiner Karte restored werden. Vorher muss es verkleinert werden. Das geht z.B. so. Oder man benutzt pishrink.

Einen partitionsorientierten Backup kann man auf kleinere Geräte restoren indem man es mit ihren gewünschten Partitionen vorformatiert und dann mit der Option -0 das Backup wiederherstellt.

7) Wie kann ich die Partitionierung der Ziel SD Karte beeinflussen?

Es gibt zwei Optionen die das Partitionierungsverhalten von raspiBackup beeinflussen: Option -1 (eins) zwingt raspiBackup die Partitionierung der Backup SD Karte auf die Ziel SD Karte zu erstellen auch wenn die Partitionen kleiner oder größer als die Ziel SD Karte sind. Mit der Option -0 (Null) nimmt raspiBackup keine Paritionierung vor und verwendet die existiernde Partition der Ziel SD Karte. Somit kann man vor dem Restore die Partitionen anlegen und formatieren wie man sie haben möchte und diese wird dann von raspiBackup benutzt.

8) Auf welchen Medien kann man mit raspiBackup die Backups ablegen?

Generell auf jedem Device, welches unter Linux gemounted werden kann

  • Externer USB Stick
  • Externe USB Platte
  • smb Netzwerklaufwerk
  • nfs Netzwerklaufwerk
  • sshfs Netzwerklaufwerk
  • webdav Netzwerklaufwerk
  • ftpfs Netzwerklaufwerk

9) Wie kann ich die Funktion von raspiBackup noch erweitern und zusätzlich etwas vor oder nach dem Backup und/oder Restore ausführen lassen?

Da gibt es verschiedene Möglichkeiten:

  • Ein Wrapperscript wird benutzt und nimmt vor und nach dem Backuplauf weitere Aktionen vor wie z.B. weitere Dinge zu sichern.

  • Beliebige Erweiterungspunkte (Extensions) können vor und nach dem Backup und/oder restore von raspiBackup aufgerufen werden. Zwei Beispielerweiterungen (Siehe hier) melden zusätzlich die CPU Temperatur vor und nach dem Backuplauf sowie den belegten Hauptspeicher. Eine eMailExtension erlaubt es beliebige andere eMailClients anzusteuern.

10) Welche eMailClients werden von raspiBackup unterstützt?

raspiBackup unterstützt exim4, postfix und nullmailer, ssmtp, msmtp und sendEmail. Andere eMailClients können über ein eMail Erweiterung (Extension) angesprochen werden (Details siehe hier).

11) Mein eMailClient wird leider nicht von raspiBackup unterstützt. Wie kann ich trotzdem eMails erhalten?

raspiBackup kann eine eMailErweiterung (extension plugpoint) zum Senden der eMail benutzen. Dazu muss ein kleines Script geschrieben werden, welches die eMailParameter entsprechende dem verwendeteten eMailClient aufbereitet und den eMailClient mit der korrekten Syntax aufruft. Eine Beispielerweiterung für mailx ist bei den Erweiterungsbeispielen enthalten.

12) Ich habe eine Frage zu oder ein Problem mit raspiBackup. Wie bekomme ich Hilfe?

Eines vorweg: Die Betonung liegt auf raspiBackup Fragen. Für Linuxfragen oder -probleme siehe FAQ38 und FAQ47.

Es gibt verschiedene Optionen:

  • In GitHub können Problemberichte (Issues) erstellt werden bei Fragen oder Problemen. Das ist meine präferierte Option. Dazu ist eine einmalige Registrierung notwendig. Diese sowie die Benutzung von GitHub ist kostenlos.

  • Im Raspberry Forum gibt es ein Unterforum zu Backups, wo Fragen zu raspiBackup gestellt und Probleme berichtet werden können. framp wird über alle neuen Threads informiert und kann sich dem Thread widmen.

Siehe auch diese Hinweise

Hinweis: Jegliche andere Kontaktwege werden ignoriert.

13) Ich habe einen Fehler in raspiBackup gefunden. Wo kann ich den Fehler melden und wann bekomme ich einen Fix dafür?

Wie in jeder Software kann es vorkommen, dass auch raspiBackup Fehler hat. Die verschiedenen Kanäle über die Probleme berichtet werden können sind in FAQ12 beschrieben.

14) Bekomme ich irgendwie automatisch mit dass es eine neue Version von raspiBackup gibt?

raspiBackup prüft bei jedem Aufruf ob es eine neuere Version gibt. Wenn ja wird eine entsprechende Meldung ausgegeben und die Benachrichtigungsemail weist im Titel mit einem Smiley ;-) darauf hin. Dann kann man auf dieser Seite nachlesen, was die neue Version bringt und dann mit dem Parameter -U einen Versionsupdate vornehmen lassen.

15) Wie kann ich auf eine vorhergehende raspiBackup Version zurückgehen, wenn ich nach einem Upgrade bemerke, dass die neue Version nicht so funktioniert wie ich es erwarte?

raspiBackup erstelt jedes mal wenn mit der Option -U eine neue Version aktiviert wird eine Sicherungskopie. Mit der Option -V kann man jederzeit auf eine vorhergehende Version zurückgehen. Es wird eine Liste von alle gesicherten raspiBackup Versionen angezeigt und man kann die Version, die zurückgespielt werden soll daraus auswählen.

16) Ich habe eine 32GB SD Karte wovon ich nur 8GB benötige. Ein dd Backup sichert aber immer 32GB, d.h 24GB zu viel.

Der dd Backup sichert immer die ganze SD Karte. Es gibt den Konfigurationsparameter DEFAULT_DD_BACKUP_SAVE_USED_PARTITIONS_ONLY, der dafür sorgt, dass nur die definierten Partitionen gesichert werden. D.h. man muss mit gparted oder einem anderen Partitionierungstool nur eine kleinere Partition von 8GB erstellen. Die aktuellen Partitionsgrößen kann man mit dem Befehl lsblk kontrollieren.

Alternativ kann man per raspiBackupWrapper Script nach dem Backup mit raspiBackup pishrink aufrufen lassen und das dd Image auf das mögliche Minimum verkleinern.

Hardlinks werden erfolgreich von raspiBackup benutzt wenn ein lokaler USB Stick, eine lokale USB Platte oder auch eine per NFS gemountete Partition, die mit ext3/ext4 formatiert ist, benutzt wird. SMB sowie sshfs unterstützt keine Hardlinks.

Hinweis: Der Windows Explorer ignoriert Hardlinks und zeigt deshalb eine falsche effektive Belegung an. Es muss deshalb ein Linuxsystem genutzt werden um die Belegung zu prüfen. Die Raspberry bietet sich dafür an.

Der Befehl sudo du -sh * zeigt den tatsächlich benutzen Speicherplatz an und sudo du -shl * zeigt den Speicherplatz an, der belegt werden würde, wenn keine Hardlinks benutzt werden würden (Das, was Windows fälschlicherweise anzeigt) .

Beispiel:

root@raspberrypi:/media/nas-backup/raspberrypi# du -sh *
4,5G raspberrypi-rsync-backup-20160822-184617
4,5M raspberrypi-rsync-backup-20160822-190436
5,2M raspberrypi-rsync-backup-20160822-195250
5,7M raspberrypi-rsync-backup-20160822-201610

root@raspberrypi:/media/nas-backup/raspberrypi# du -shl *
4,7G raspberrypi-rsync-backup-20160822-184617
4,7G raspberrypi-rsync-backup-20160822-190436
4,7G raspberrypi-rsync-backup-20160822-195250
4,7G raspberrypi-rsync-backup-20160822-2016

Hinweis: Wie funktionieren Hardlinks zusammen mit rsync?. Und dazu noch ein Youtube Video.

18) Welche Services muss man vor dem Backup stoppen und anschliessend wieder starten?

Alle Services, die irgendwelche Systemzustände in Datenbanken oder im Speicher oder auf dem Dateisystem speichern, sollten gestoppt werden, damit nicht während des Backups inkonsistente Datenstände entstehen, die dann erst beim wiederhergestellten System bemerkt werden und das Backup unbrauchbar machen.

Systemd Services können mit dem Installer konfiguriert werden der in der Konfigurationsdatei DEFAULT_STARTSERVCIES und DEFAULT_STOPSERVCIES entsprechend setzt. Anwendungen die nicht als Systemservices laufen müssen manuell mit den beiden Optionen in der Konfigdatei hinzugefügt werden. Danach kann der Installer nicht mehr zur Konfiguration dieser beiden Optionen genutzt werden.

Folgende Services sollten auf alle Fälle gestoppt werden:

ServiceStop Befehl
nfssystemctl stop nfs-kernel-server
Sambasystemctl stop samba
Pilightsystemctl stop pilight
Cupssystemctl stop cups
Minidlnasystemctl stop minidlna
Apachesystemctl stop apache2
Wordpresssystemctl stop wordpress
nginxsystemctl stop nginx
mysqlsystemctl stop mysql
seafilesystemctl stop seafile
OwncloudSiehe Apache
FHEMsystemctl stop fhem
iobrokersystemctl stop iobroker
cronsystemctl stop cron

Die Services sollten dann per Option DEFAULT_STARTSERVICES wieder gestartet werden. Die Reihenfolge sollte dann genau umgekehrt sein zu der Stopreihenfolge.

Der Installer sorgt automatisch dafür dass die ausgewählten Systemd kontrollierten Services in der entsprechenden Reihenfolge gestoppt bzw gestartet werden. Leider garantiert Systemd nicht dass die Abhängigkeiten der Services berücksichtigt werden. Zu ein paar Anwendungen gibt es auch weitere Tipps auf dieser Seite die man berücksichtigen sollte.

Beispiel für -a

-a "systemctl startpilight && systemctlstartsamba && systemctl startnfs-kernel-server"

Beispiel für -o

-o "systemctl stop nfs-kernel-server && systemctl stop pilight && systemctl stop samba"

In der Konfigurationsdatei sieht es dann z.B. wie folgt aus:

DEFAULT_STOPSERVICES="systemctl stop nfs-kernel-server && systemctl stop pilight && systemctl stop samba"

bzw.

DEFAULT_STARTSERVICES="systemctl startsamba&& systemctl startpilight && systemctl  startnfs-kernel-server"

Achtung: Die Befehle werden als root ausgeführt. Es ist kein sudo notwendig.

Mit der Option --systemstatus wird in das Debuglog die Liste der gestarteten System Services sowie der offenen Dateien vor den Start des Backups ausgegeben.

Möchte man ausdrücklich keine Services stoppen und starten muss ein Doppelpunkt als Service angegeben werden, also -a : -o :

19) Welche Formatierung muss eine Partition haben auf der ein Backup abgelegt wird?

Prinzipiell kann jedes Filesystem benutzt werden was an Linux gemounted werden kann. Allerdings gibt es ein paar Dinge zu beachten:

  • Ein rsync Backup benutzt Hardlinks welche von ext3/4 unterstützt werden. Dann werden nur geänderte Dateien gesichert und gleiche Dateien per Hardlinks verknüpft. Ein ext4 Filesystem was über smb freigegeben wird unterstützt keine Hardlinks. Eine Alternative ist NFS. Werden keine Hardlinks unterstützt kann rsync nicht genutzt werden.

  • FAT32 kann nur Dateien bis zu 4GB speichern. Ein dd Backup wird so groß wie die SD Karte (Außer es wird die Konfigurationsoption DEFAULT_DD_BACKUP_SAVE_USED_PARTITIONS_ONLY benutzt) und somit i.d.R. größer als 4GB. Selbiges trifft auf das tar Backup zu was auch sehr schnell größer als 4GB wird. Eine Alternative dazu ist NTFS.

Allgemeine Empfehlung: Benutze wenn möglich ext3/4. Auf Linux benutze NFS für Netzwerklaufwerke. Auf Windows benutze NTFS auf exportierten smb Netzwerklaufwerken. Benutze FAT32 nur wenn sichergestellt ist, dass die Backups nicht größer werden als 4GB.

20) Ich habe Probleme beim Sichern meiner Backups auf einer Synology. Wie kann ich die beseitigen?

Es gibt diverse Benutzer von raspiBackup die ihre Backups per nfs auf einer Synology erfolgreich sichern. Es gibt eine spezielle Seite wo ich und Benutzer von raspiBackup beschrieben haben, was sie an der Synology konfiguriert haben, damit alles funktioniert.

21) Der Inhalt der Bootpartition ändert sich doch nicht. Warum wir trotzdem immer die Bootpartition bei jedem Backup neu gesichert?

Das stimmt in 98% der Fälle. Allerdings kann ein Firmwareupdate die Bootpartition ändern. Mit dem Konfigurationsparameter DEFAULT_LINK_BOOTPARTITIONFILES werden die Bootpartitionen im Backup mit Hardlinks verknüpft - sofern diese unterstützt werden. Damit kann man also pro Backup 60MB Backupspace sparen. Allerdings wird immer die Bootpartition erst einmal gesichert um dann zu testen ob sie sich zum vorhergehenden Backup geändert hat und dann durch einen Hardlink ersetzt. D.h. diese Option ist nur sinnvoll, wenn man einen sehr kleinen Backupspace hat.

22) Wie kann man verschiedene Backupkonfigurationen in verschiedenen Backupläufen benutzen?

Die Konfigurationsparameter von raspiBackup werden in folgender Reihenfolge eingelesen und wirksam. Dabei können spätere Dateien bzw. Optionen vorherige Optionen überschreiben.

  1. /usr/local/etc/raspiBackup.conf
  2. ./.raspiBackup.conf (aktuelles Verzeichnis)
  3. ~/.raspiBackup.conf (Home Verzeichnis)
  4. Die optionale Konfigurationsdatei, die mit der Option -f angegeben wurde
  5. Aufrufparameter

23) Ich möchte den Backupfortschritt verfolgen. Gibt es eine Option um einen Fortschrittsbalken zu erhalten?

Es gibt dazu die Option -g für dd, tar und rsync. Die Option sollte nur genutzt werden wenn man raspiBackup manuell startet.

24) raspiBackup meldet einen Fehler ACL_TYPE_ACCESS, Operation not supported bei der Benutzung des Backuptypen rsync

Die Fehlermeldung sieht in etwas wie folgt aus:

??? RBK0024E: Backupprogramm rsync hat einen Fehler bekommen.
rsync: set_acl: sys_acl_set_file(media/pi, ACL_TYPE_ACCESS): Operation not supported (95)

Die Ursache liegt darin, dass nfs Version 4 mit rsync keine Posix ACLs unterstützt. Diese sind aber auch in 99% der Fälle nicht notwendig. Die folgende Zeile in der /etc/mke2fs.conf

default_mntopts = acl,user_xattr

bewirkt, dass jeder mount immer die acl für eine Partition einschaltet. Das trifft dann auch für die Backuppartition von raspiBackup zu, die standardmäßig auf /backup gemounted wird. Somit wird immer versucht, acl Daten zu schreiben, was von rsync nicht unterstützt wird.

Hinweis: Synology unterstützt keine ACLs mit NFSv3 as of 13.5.2022.

Hinweis: Mit folgendem Befehl findet mal alle Dateien mit ACLs: sudo getfacl -Rs /Der Befehl braucht Zeit bis er fertig ist.

Mögliche Lösungen:

  1. Füge die folgende Zeile

    DEFAULT_RSYNC_BACKUP_OPTIONS="-aHx --delete --force --sparse"
    

    (kein großes A) in /usr/local/etc/raspiBackup.conf ein und damit sichert rsync keine ACLs mehr.

  2. Nutze tar und nicht rsync

  3. Benutze ein lokal angeschlossenes Gerät welches mit ext4 formatiert ist

  4. Benutze nfs version2 oder nfs version3. Lies dazu diesen Artikel. Diese Option funktioniert aber nicht mit einer Synology.

  5. Benutze raspiBackupWrapper.sh, in dem sich Code befindet, der ein Loop Device welches ein mit ext4 formatiertes Image als Backuppartition benutzt und somit ACLs speichern kann. (Nur für erfahrene Benutzer).

In Bullseye hat Debian persistentes Journaling eingeführt und somit existiert /var/log/journal mit ACLs auf dem System. Wer raspiBackup Release 0.6.6 oder früher nutzt muss mindestens auf Release 0.6.6.1 upgraden oder den Workaround, der auf GitHub in Issue 393 beschrieben ist, anwenden.

25) Fehlermeldung dev/... has unsupported feature(s): metadata_csum E2FSCK: Get a newer version of e2fsck

Lösung: Vor dem Restore die /etc/mke2fs.conf editieren und bei beiden ext4 Optionen das metadata_csum entfernen. Dann den Restore mit raspiBackup durchführen.

26) Wieso bekommen ich die die Meldung ??? RBK0160E: Ziel /dev/sda mit xx GiB ist kleiner als die Backupquelle mit yy GiB obwohl beide SD Karten gleich gross sind?

SD Karten die mit einer bestimmten Größe angegeben sind (z.B. 16GB) sind trotzdem unterschiedlich groß. Mit dem Befehl sudo fdisk -l /dev/mmcblk0 erhält man z.B. folgende Ausgabe die einem genau die Größe mitteilt:

sudo fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 15.5 GB, 15548284928 bytes
Bei einer anderen ebenfalls 16GB grossen SD Karte erhält man z.B.
Disk /dev/mmcblk0: 15.9 GB, 15931539456 bytes

Man kann also das erste Image auf die zweite SD Karte bringen aber nicht umgekehrt.

Lösung:

  • Eine größere SD Karte nehmen
  • Das Quellimage verkleinern. Das Tool pishrink eignet sich dazu.
  • Das Backup mit dem Parameter DEFAULT_DD_BACKUP_SAVE_USED_PARTITIONS_ONLY erstellen (Siehe dazu auch FAQ16)
  • Vor dem Erstellen des Backups die Rootpartition mit gparted etwas verkleinern (Mehrere hundert MB oder gleich 1 GB). Dann passt der Backup auch auf SD Karten die etwas kleiner sind.

27) Ich habe ein tar oder rsync Backup und möchte das in ein dd Backup umwandeln. Geht das?

Es gibt ein Script raspiBackupRestore2Image.sh. Damit kann man im Backupverzeichnis ein dd aus einem tar oder rsync Backup erzeugen.

28) Wieso verschwinden Dateiänderungen nach einem Reboot wieder von einem zurückgespieltem Backup?

Die SD Karte ist unglücklicherweise an der Stelle defekt, wo das Filesystem Änderungen ablegt (Superblock). Da dieser im Hauptspeicher gehalten wird, bemerkt man den Fehler nur nach einem Reboot.

Lösung: Das Backup muss noch einmal auf eine neue fehlerfreie SD Karte zurückgespielt werden.

29) Ich bekomme die Meldung rsync: chown "(datei-fad)" failed: Operation not permitted (1). Wie kann ich das lösen?

Kurt hat dieses Problem bekommen, die Lösung gefunden und freundlicherweise mitgeteilt. DougieLawson hat die Lösung des Problems beschrieben .

Letztendlich musste der folgende Eintrag in der /etc/fstab

192.168.2.203:/data/raspi /media/nas nfs defaults 0 0

wie folgt geändert werden

192.168.2.203:/data/raspi /media/nas nfs defaults,noatime,noauto,x-systemd.automount 0 0

BastiFanta hat einen anderen Grund dafür gefunden:

Ich musste den NFS-Share mit der Option no_root_squash erstellen, siehe für weitere Details: https://www.selflinux.org/selflinux/html/nfs03.html

30) Mir gefällt raspiBackup und ich möchte die Entwicklung und den Support honorieren. Wie kann ich das tun?

Zum Beispiel ein Trinkgeld geben.

31) Ich bekomme eine Fehlermeldung von raspiBackup. Was kann ich tun um sie zu beseitgen?

Es gibt eine Seite wo alle häufigsten Fehlermeldungen von raspiBackup genauer beschrieben sind inklusive Aktionen, mit denen man sie beseitigen kann. Besuche dazu diese Seite.

32) Nach dem Upgrade auf v0.6.3.2 bekomme ich Fehlermeldungen RBK0021E: Backupprogramm des Typs tar beendete sich mit RC 1 oder RBK0021E: Backupprogramm des Typs rsync beendete sich mit RC 23.

Diese Fehler wurden in vorhergehenden Versionen ignoriert. Da dadurch aber inkonsistente Backups erstellt werden können werden sie nicht mehr ignoriert.

Folgende Optionen existieren, um das Problem zu beseitigen:

  • Stoppe den Service der die Datei während des Backups ändert. Das kann man entweder mit dem Installer vornehmen (M3->C6) sofern es ein System Service ist oder man muss manuell in der Konfigurationsdatei die beiden Optionen DEFAULT_STOPSERVICES und DEFAULT_STARTSERVICES um die Befehle erweiteren um den Service zu stoppen und zu starten. Tipp: Mit der Option --systemstatus erhält man im Debuglog eine Liste der aktiven Services und ihrer offenen Dateien. Damit kann man herausfinden welcher Service eine Datei während des Backups modifiziert.

  • Mit der option DEFAULT_EXCLUDE_LIST kann man die Dateien die sich während des Backups ändern vom Backup ausnehmen Achtung: Wenn diese Dateien wichtige Dateien einer Anwendung sind dann wird die restorte Anwendung nicht mehr starten. Also dringend vorher prüfen ob sich wichtig ist und gründlich testen ob die restorte Anwendung wieder startet wenn die Dateien fehlen..

  • inotifywait -m -e delete -e create -e move -e modify -e attrib

U.U. muss noch die Option -r zugefügt werden, damit auch alle Unterverzeichnisse überwacht werden.

  • Nutze die Configurationsoptionen RSYNC_IGNORE_ERRORS bzw TAR_IGNORE_ERRORS um den Fehler zu irgnorieren. Details dazu stehen hier

33) Ich habe einen Cubieboard, Banana Pi, Odroid, Hummingboard, oder Beagle Board. Kann raspiBackup diese auch sichern?

Prinzipiell sollte das gehen bzw. geht es schon für bestimmte nicht Raspberry Hardware. Einfach ausprobieren. raspiBackup wird aber nur für RaspbianOS und Raspberry HW unterstützt. D.h. wenn es funktioniert, sei glücklich. Wenn es nicht funktioniert, frage aber nicht nach Support. :-)

Beim Aufruf muss dann noch die Option --unsupportedEnvironment mitgegeben werden.

34) Ich möchte mein 16GB dd Backup zurückspielen und bekommen die Meldung dass die Ziel SDKarte zu klein ist. Wieso?

SD Karten haben zwar eine bestimmte Größe wie z.B. 16GB aber sie SD Karten haben nie genau diese Größe sondern es gibt kleine Abweichungen nach unten und oben. Da das dd Backup genauso groß ist wie die SD Karte kann das dd Backup nicht zurückgeschrieben werden wenn man eine geringfügig kleinere SD Karte erwischt. Deshalb sollte man bei einem DD Backup die letzte Partition immer etwas kleiner als maximal möglich erstellen. Siehe dazu auch FAQ16. Man kann aber mit pishrink das dd Image verkleinern und danach mit raspiBackup zurücksichern.

35) Ich möchte mein Rootfilesystem auf eine USB Platte verschieben. Kann ich das mit raspiBackup beim Restore machen?

Sofern es ein tar oder rsync Backup ist geht das. Einfach bei Restore die Option -R nutzen.

36) Was bedeuten die Returncodes (RC) mit denen raspiBackup im Fehlerfalle endet?

  • 101 - Ein Programmfehler wurde festgestellt

  • 102 - Ein Linux Befehl liefert einen Fehler

  • 103 - raspiBackup wurde mit CTRLC beendet.

  • 105 - Beim Stoppen von Services gab es Fehler

  • 106 - Beim Starten von Services gab es Fehler

  • 107 - Ein Parameter in einer Option ist fehlerhaft

  • 108 - Es werden Dateien nicht gefunden

  • 109 - Das verwendete Linux Backupprogramm dd, tar oder rsync hat einen Fehler beim Backup bekommen

  • 110 - Ein Link zu einer Datei kann nicht erstellt werden

  • 111 - Beim Sammeln der Partitionsinformationen gibt es Fehler

  • 112 - Beim Restore gibt es Fehler beim Erstellen der Partitionen

  • 114 - Ein dd Image kann nicht erstellt werden

  • 115 - Benötigte Partitionen wurden nicht gefunden

  • 116 - Der Restore wurde vom Benutzer abgebrochen

  • 117 - Das verwendete Backupprogramm dd, tar oder rsync hat einen Fehler beim Wiederherstellen bekommen

  • 118 - Angegebene Geräte wurden nicht gefunden

  • 119 - Ein Verzeichnis kann nicht angelegt werden

  • 120 - Linux Tools fehlen die von raspiBackup benötigt werden

  • 121 - Es konnte keine gültige Bootpartition gefunden werden

  • 122 - Die Extension BEFORE_START_SERVICES endete fehlerhaft

  • 123 - Die Extension BEFORE_STOP_SERVICES endete fehlerhaft

  • 124 - Die Emailextension endete fehlerhaft

  • 130 - A file operation failed (chmod, mv, ...)

  • 131 - A mount failed

  • 132 - The environment (HW/SW) is unsupported

  • 133 - Die RESTORE_EXTENSION endet fehlerhaft

  • 134 - Die BACKUP_EXTENSIONa endet Fehlerhaft

  • 135 - Ein Download einer Datei endet fehlerhaft

  • 136 - Ein ungültiges nicht von raspiBackup erstelltes Backupverzeichnis wurde angegeben

  • 137 - Ein ungültiges Restoregerät wurde angegeben

  • 138 - Ein ungültiges Bootgerät wurde angegeben

  • 138 - USBMOUNT detected

  • 140 - An error occured during cleanup

  • 143 - Overlayfilesystem entdeckt

  • 144 - Erstellung des Backupordners auf der Backuppartition am Ende des Backup endet fehlerhaft

  • 145 - Resize einer Partition endet fehlerhaft

  • 147 - UUID Update endet fehlerhaft

37) Der eMail Betreff hat manchmal am Anfang einen Smiley. Was bedeutet er?

smileyBedeutung
;-)Es gibt eine neuere Release von raspiBackup. Ein Upgrade sollte mit der Option -U vorgenommen werden. Zurückgehen kann man wieder mit der Option -V.
:-DEs existiert eine Betaversion der nächsten raspiBackup Release. Beta Tester sind willkommen und können mit der Option -U die Beta installieren. Nach dem test kann man auf die aktuelle Version wieder mit der Option -V zurückgehen.
O.oEine Warnmeldung wurde geschrieben.
:-(Die raspiBackup Release ist veraltet und enthält einen schwerwiegenden Fehler. Sie sollte dringend durch die aktuelle Release mit der Option -U ersetzt werden.

38) Wo kann ich Fragen stellen und Hilfe bekommen zu Linuxfragen und -problemen die im eigentlichen Sinne nichts mit raspiBackup zu tun haben?

raspiBackup wurde entwickelt, um auch Linux Einsteigern das Sichern ihrer Raspberry schnell möglichst einfach zu ermöglichen. Allerdings sind dazu trotzdem gewisse Linuxkenntnisse notwendig. Häufige Probleme mit raspiBackup sind bei Linux Einsteigern einfache Linuxprobleme. Solche Fragen werden nicht in den Kontaktkanälen beantwortet. Dazu gibt es Foren mit kompetenten Mitgliedern, die gerne helfen. Eine empfehlenswertes ist das deutsche Raspberry Pi Forum. Ein anderes ist das englische Raspberryforum.

39) Wo finde ich das Debuglog von raspiBackup?

Siehe FAQ41

40) Wie kann ich meine Konfiguration nach einem Versionsupdate auf den neuesten Stand bringen?

Dieses wird von raspiBackup beim Upgrade automatisch erledigt. Siehe dazu Konfigurationsupdate bei einem Upgrade auf eine neue Version.

41) Wo finde ich das Debuglog von raspiBackup?

Das Debuglog heißt raspiBackup.log beim Backup und raspiBackup.logr beim Restore.

  • Wenn raspiBackup erfolgreich endet, steht das Logfile im Backupverzeichnis
  • Wenn raspiBackup nicht erfolgreich endet, steht das Logfile im Heimverzeichnis des Aufrufers
    • Wenn raspiBackup über die Konsole gestartet wurde, steht das Logfile entweder in /home/<user> oder /root
    • Wenn raspiBackup über Cron oder systemd im Hintergrund gestartet wurde, steht das Logfile in /root
  • Wenn raspiBackup unerwartet endet oder mit kill gestoppt wurde, findet sich das Logfile in /tmp
  • Das Logfile beim Restore steht entweder in /home/<user> oder /root

42) Wo können die /boot und /root Partition liegen ?

raspiBackup unterstützt folgende Konfigurationen im normalen Backupmodus, wobei immer nur die /boot und /root gesichert werden. Weitere Partitionen werden ignoriert.

  • /boot und /root auf SD Karte oder einem anderen Gerät (Platte, SSD, ...)
  • /boot auf SD Karte und /root auf eine anderen Gerät (Platte, SSD, ...) Dieses ist notwendig, wenn eine ältere Raspberry vorliegt, die noch keine USB Boot unterstützt, man aber trotzdem die Rootpartition nicht mehr auf der SD Karte haben möchte.

43) Wie finde ich alle Dokumentationsseiten zu raspiBackup bzw Seiten zu einem speziellen Thema?

Initial befand sich alle Doku zu raspiBackup auf dieser Seite.

Jetzt befindet sich alles auf dieser Webseite.

44) Warum startet das Image mit dem restorten Backup nicht?

Siehe FAQ49

45) Wie kann ich Optionen temporär im Aufruf an- und ausschalten?

Viele Optionen dienen dazu etwas ein- oder auszuschalten. Normalerweise wird die die Optionen einmal in der Konfigurationsdatei definiert und gut ist. Möchte man aber kurzzeitig Optionen der Konfigurationsdatei überschreiben kann man die Option mit einem + für einschalten und - für ausschalten benutzen. Beispiel: Hat man standardmäßig das Zippen von dd Backups eingeschaltet kann man das temporär mit der Option -z- ausschalten.

46) Warum ist es nicht zu empfehlen den Backuptyp dd zu benutzen?

Siehe dazu diesen Artikel.

47) Wo bekomme ich Hilfe bei reinen Linuxfragen oder -problemen, die nichts mit raspiBackup im eigentlichen Sinne zu tun haben?

Siehe FAQ38

48) Kann ich den Backup auf ein laufendes System zurückspielen?

Technisch geht das aber das Ergebnis ist alles andere als ein laufendes System. Deshalb bricht raspiBackup sofort ab wenn man das versucht. Ein Restore muss immer auf eine weitere SD Karte oder ein weiteres Gerät, welches an die Raspberry angeschlossen ist, vorgenommen werden.

49) Mein Backup welches ich auf eine SD Karte restored habe startet nicht. Warum nicht?

In 99.9% der Fälle ist die SD Karte auf die restored wird defekt. Wenn man auf eine andere, möglichst neue, SD Karte restored tritt das Problem üblicherweise nicht mehr auf. Es gibt auch die Option -C die man beim Restore nutzen kann um die SD-Karte auf Bad Blocks beim Formatieren zu prüfen. Dadurch dauert aber der Restoreprozess wesentlich länger. Siehe auch diese Seite zu Problemen eines dd Backups.

50) Mein Backup oder restore dauert ewig. Woran kann das liegen?

Die Backup- wie auch Restorezeit ist abhängig von der Größe der zu sichernden Daten wie auch der Performance der Backuppartition. Wird über das Netz per SMB oder NFS gesichert dauert es noch einmal länger. Beim rsync dauert der erste Backup länger da das erste Backup ein Vollbackup ist. Erst die folgenden Backups sind nur noch inkrementelle Backups und deshalb i.d.R. schneller.

Es kann vorkommen, dass der Backup- oder Restorelauf nicht endet bzw. extrem lange dauert. Das liegt i.d.R. daran, dass Fehler bei der Sicherung auftreten - Schreib- oder Lesefehler, die von den genutzten Linux Backuptools dd, tar oder rsync gemeldet werden.

Bei rsync kann es auch daran liegen, dass ACLs gesichert werden sollen, aber dazu die Berechtigung nicht existiert oder ACLs nicht von der Backuppartition unterstützt werden. Letzteres trifft zu für NFS und SMB gemountete Backuppartitionen. Siehe dazu FAQ24.

Falls die mount Option sync genutzt wird, sollte diese durch die Option async ersetzt werden.

Option --timestamps hilft den Schritt zu finden, wo raspiBackup so lange braucht. Danach hilft das Debuglog weiter.

51) Wie werden die Statistiken der Fortschrittsanzeige berechnet ?

raspiBackup berechnet nichts. Stattdessen werden die Optionen der angebotenen Fortschrittsanzeige genutzt. Bei dd ist es die Option status=progress und bei rsync die Option info=progress2. tar hat keine eigene Fortschrittsanzeige und es wird deshalb der Datenstrom durch pv gestreamt. Die Details der jeweiligen Fortschrittsanzeige sind in der Dokumentation den Optionen in den jeweiligen Tools und sowie dem Linux Tool pv erklärt.

52) Wie kann ich eine Testversion oder einen temporären Fix von aus dem GitHub downloaden und ausführen?

Dazu gibt es ein Script bei GitHub. Dieses muss man wie folgt aufrufen:

curl -s https://raw.githubusercontent.com/framps/raspiBackup/master/scripts/raspiBackupDownloadFromGit.sh | sudo bash -s -- <Branchname>

Dabei muss der GitHub Branch sein, von dem man sich raspiBackup.sh downloaden möchte. Danach ruft man diese raspiBackup Version wie folgt auf (Achtung: Auf den führenden Punkt achten !)

sudo ./raspiBackup.sh <Optionen>

53) Was sind raspiBackup Snapshots?

raspiBackup Snapshots sind spezielle Backups mit zwei besonderen Eigenschaften:

  • Sie werden nicht beim Backuprecycle berücksichtigt und müssen somit manuell im Backupverzeichnis gelöscht werden
  • Sie haben eine Beschreibung im Backupverzeichnisnamen anhand derer ein raspiBackup Snapshot leicht zu erkennen ist und mit dem man eine sprechende Beschreibung dem Snapshot geben kann damit er leicht zu erkennen ist.

Ein Snapshot wird mit der Option -M erstellt und kann sehr gut dazu genutzt werden beim Neuaufsetzen oder Änderungen am System zu bestimmten Zeitpunkten einen Snapshot zu ziehen damit man im Fehlerfalle zurückgehen kann. Anhand der Beschreibung kann man erkennen welchen Stand man mit dem Snapshot gesichert hat.

54) Wie kann ich auf die boot Partitionsdateien im Backupverzeichnis zugreifen?

raspiBackup speichert die Bootpartitionsdaten in einem Imagefile. Mit den folgenden Befehlen kann man auf die Dateien in diesem Image zugreifen:

sudo losetup -f <hostname>-backup.img
sudo mount /dev/loop0 /mnt

55) Warum habe ich pötzlich PARTUUIDs doppelt auf meinem System?

Während des Restores eine Backups wird die PARTUUID der Originalsystems für die Partitionen wieder genutzt. Wenn dieses restorte System an dem Originalsystem gemounted wird tauchen die PARTUUIDs doppelt auf und es wird i.d.R. Probleme beim Booten des Originalsystems geben. Für diese Fälle gibt es die Option -updateUUIDs beim Restore wodurch nicht dieselbe PARTUUID beim restorten System genutzt wird. Ab der Release 0.6.9 wird immer eine neue PARTUUID generiert. Will man das nicht muss mit der Option -updateUUIDs- dieses ausgeschaltet werden.

56) Wie kann ich raspiBackup auf einem unsupporteten System automatisch starten lassen?

Dazu muss die Datei /etc/systemd/system/raspiBackup.service geändert werden:

Ändere die Zeile ExecStart=/usr/local/bin/raspiBackup.sh in

ExecStart=/usr/local/bin/raspiBackup.sh --unsupportedEnvironment.

57) Wie kann ich raspiBackup auf ein neues Release updaten?

raspiBackup meldet wenn eine neue Release oder eine Beta verfügbar ist. Ein Update wird mit der Option -U gestartet. Mit der Option -V kann man wieder auf eine vorhergehende Release zurückgehen. Betas werden oft mehrere Male erneuert. Um dann den neuesten Stand zu installieren müssen die Optionen -U und -S genutzt werden.

58) Was muß ich beachten wenn ich mit rsync auf eine nfs gemountete Backuppartition sichern will?

Die Partition muss vom NFS Server mit no_root_squash exportiert werden.

59) rsync meldet dass Dateien während des Backuprozesses am System verschwunden sind und bricht mit Returncode 24 ab. Wie kann ich das verhindern?

Es gibt folgende Möglichkeiten:

  • Der Service der die Datei löscht wird vor dem Backup gestoppt und wieder gestartet
  • Die Datei oder auch das Verzeichnis in der sich die Datei befindet wird vom Backup excluded
  • Wenn das alles nicht genutzt werden kann gibt es noch die Option DEFAULT_RSYNC_IGNORE_ERRORS="24" mit dem raspiBackup den RC24 ignoriert.

Achtung: Es gibt seltene Umstände, in denen ein rsync RC 24 ein nicht zu ignorierender Fehler ist. Siehe dazu hier bei bugzilla.samba.org. D.h. man sollte möglichst versuchen, den Fehler mit Möglichkeit 1 oder 2 zu beseitigen.

Error messages

Helper scripts

raspiBackupDialog - a convenient helper script

More helpful scripts

Other backupspaces

NFS as backupspace

SMB as backupspace

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

A complete list of countries is available on framp's website.

Version of this documentation

Last commit

commit ca85d36a7e6b82efb0ccdf0b565cba26631da602
Author: framps <framp@linux-tips-and-tricks.de>
Date:   Thu Aug 14 12:20:07 2025 +0200

    Use Erweiterung instead of plugin now

Build: 2025-08-14T10:20+00:00

Markdown Playground

Hooks for own scripts

--

Extension scripts

Language support for languages other than DE and EN (L10N)

raspiBackupInstallUI and raspiBackup initially wrote messages in German and English only. But both are able to write messages in any language from a coding point of view (I18N). Anybody who is willing to help to add support for a new language not already supported is welcome to translate raspiBackup messages.

Just add your interest in an issue on GitHub and you will immediate get individual support to add new messages in your native language to raspiBackupInstallUI and raspiBackup.

Right now following languages are supported:

  • ZH - Chinese
  • EN - English
  • FI - Finnish
  • FR - French
  • DE - German

Basic activities to add a new language to raspiBackup

There exist two files which write messages: raspiBackup and raspiBackupInstallUI.

Following steps have to be done to support a new language to raspiBackupInstallUI and raspiBackup:

  1. For every message a new line in the code for the new language has to be added. Example for FI:

    MSG_RUNASROOT=2
    MSG_EN[$MSG_RUNASROOT]="RBK0002E: $MYSELF has to be started as root. Try 'sudo %s%s'."
    MSG_DE[$MSG_RUNASROOT]="RBK0002E: $MYSELF muss als root gestartet werden. Benutze 'sudo %s%s'."
    MSG_FI[$MSG_RUNASROOT]="RBK0002E: $MYSELF tulee käynnistää root-oikeuksin. Suorita 'sudo %s%s'."
    

    The line starting with MSG_FI was added in order to support Finnish. FI are the first two characters of the variable $LANG on a system which uses FI as system language.

    Example for a German system:

    echo $LANG
    de_DE.UTF-8
    

    and that's why MSG_DE is used.

  2. The help text in raspiBackup may optionally also be translated. For every language a bash function usageLL() may be created which has to follow bash syntax. Just use the existing function usageEN as a template.

  3. Finally to enable the new language the following line in the code has to be updated:

    SUPPORTED_LANGUAGES=("EN" "DE")
    

    To enable Finnish the line has to be changed changed to

    SUPPORTED_LANGUAGES=("EN" "DE" "FI")
    

Note

Don't hesiate if you're willing to add a new language to raspiBackup even you don't have any programming experience. You don't have to fiddle with the programmins stuff. That's handled by raspiBackup developers. You have only execute above step 1 for all existing messages and translate them into your native language. You even don't have to create a PR to get the new language into raspiBackup. All this will be handled by raspiBackup developers for you.