Wir sind unabhĂ€ngig, neutral und finanzieren uns teilweise ĂŒber Werbung und Partnerprovisionen.
Danke wenn sie uns unterstĂŒtzen. Diese Seite verwendet hierzu Cookies & Tracking-Cookies, weitere Informationen finden sie hier. Wenn sie diese Seite weiterhin besuchen, erklĂ€ren sie sich damit einverstanden. (Danke!)

Wir sind unabhĂ€ngig, neutral und finanzieren uns teilweise ĂŒber Werbung und Partnerprovisionen. Danke wenn sie uns unterstĂŒtzen.
Diese Seite verwendet hierzu Cookies & Tracking-Cookies, weitere Informationen finden sie hier. Wenn sie diese Seite weiterhin besuchen, erklÀren sie sich damit einverstanden.

ext4 backup & restore

Debian/Ubuntu Linux mit einem Live-System
im Netzwerk als Image sichern.

2018-02-19 © ctaas.de, A. Schröder [Impressum]


Nr. ext4 Backup Handbuch Inhalt:
1 Linux System sichern (ext4, ext3, ext2, xfs, btrfs)
2 Linux System Wiederherstellen
3 wichtige Kurztipps (einzelne Dateien wieder herstellen)

FĂŒr aktuelle Systeme mit dem ext4-Dateisystem gibt es wenige gute Sicherungsmöglichkeiten, so das ich folgende Sicherungs- und Wiederherstellungs-Scripte geschrieben habe.
Es wird dabei der Bootsektor, die Partitionierungstabelle und der komplette Inhalt der ersten Partition [/dev/sda1] gesichert bzw. wieder hergestellt.
WÀhrend der Sicherung wird ein mittels LZMA stark komprimiertes Image erstellt, welches nur die tatsÀchlich belegten Sektoren enthÀlt. Erzeugte Sicherungen belegen so nur wenig Speicherplatz.
Hat man nur eine Partition "fĂŒr alles", (also [/boot], [/home] und [/] root auf einer Partition), so wird hiermit das komplette System gesichert.
Die Sicherung weiterer Partitionen ist problemlos möglich.
Das Script startet man von einer beliebigen Live-CD/DVD (empfohlen wird Xubuntu). Fehlende Programme werden aus dem Internet nachgeladen.
Benötigt man ein Live-System auf einem USB-Stick, so sollte man sich das Programm Rufus mal ansehen.

Zur Sicherung wird dd und fsarchiver verwendet. In dem fsarchiver-Archiv sind alle Daten durch Checksummen geschĂŒtzt. Wurde ein Archiv beschĂ€digt, so sind nur die Daten verloren die beschĂ€digt wurden. fsarchiver unterstĂŒtzt derzeit nur Linux Dateisysteme unter anderem ext2, ext3, ext4, xfs, btrfs (das Script kann man auch fĂŒr diese Dateisysteme 1:1 verwenden). Archive kann man auch auf kleineren Festplatten und anderen Dateisystemen (diese kann fsarchiver erzeugen) wieder herstellen.
Des Weiteren kann man Multivolume-Archive erstellen, um diese z. B. auf DVD zu sichern.
Dual-Boot-Systeme und weitere DatentrĂ€ger werden hier nicht beachtet. Man kann das hier vorgestellte Script leicht fĂŒr eigene Zwecke anpassen.

1. Sicherung (backup):


nano backup.sh

Hier folgendes einfĂŒgen (Copy & Paste):
#!/bin/sh
## Debian/Ubuntu Linux - von einem Live-System aus in einer Netzwerkfreigabe - sichern:
##
## Das ext4-Dateisystem wird voll unterstĂŒtzt. Die Sicherung muss von einem
## Live-System (USB/CD/DVD) aus erfolgen, da nur so alles 100% gesichert werden kann.
## Eine ausfĂŒhrliche Parameterbeschreibung findet man unter: http://ctaas.de/linux-install.htm
## 2018 © Computertechnik Schröder, Arno Schröder, Kahla

## BACKUP - Die folgenden Angaben muss man anpassen:
serverip=192.168.0.100 # IP-Adresse des Servers auf den gesichert wird.
freigabe=post          # Freigabe auf dem Sicherungsserver.
username=admin         # Benutzername fĂŒr den Login auf dem Sicherungsserver.
passwort=Qbttxpsu      # Passwort zum Login auf dem Sicherungsserver.
srv_name=ServerName    # Sicherungsserver PC-Name (Hostname).

bck_name=$(hostname)   # Computername des zu sichernden PCs (Ă€ndern).

# Sicherungsdatum automatisch ermitteln:
datum=$(date +"%Y-%m-%d")

## Netzwerk verbinden:
# Verzeichnis zum einhÀngen anlegen:
mkdir /mnt/netzwerk
# Paketquellen aktualisieren und notwendige Pakete installieren:
apt-get update; apt-get install cifs-utils -y
# Die Netzwerkfreigabe einhÀngen (mounten):
mount -v -t cifs //$serverip/$freigabe /mnt/netzwerk/ -o rw,user=$username,password=$passwort,domain=$srv_name,vers=2.1
# Mit [vers=...] legt man die zu verwendende SMB-Protokoll Version fĂŒr den Backup Server fest (1, 2, 3).
# vers=1.0   = fĂŒr Windows XP, Windows Server 2003 (R2), FritzBox.
# vers=2.0   = fĂŒr Windows Vista ab SP1, Windows Server 2008 (bzw. vers=2.0.2).
# vers=2.1   = fĂŒr Windows 7, Windows Server 2008 R2.
# vers=3.0   = fĂŒr Windows 8, Windows Server 2012.
# vers=3.02  = fĂŒr Windows 8.1, Windows Server 2012 R2.
# vers=3.1.1 = fĂŒr Windows 10, Windows Server 2016.
# Hat man eine falsche Version angegeben, so erhÀlt man ggf. den Fehler: [mount error(112): Host is down] und das mounten der Netzwerkfreigabe schlÀgt fehl.

# ÜberprĂŒfen ob die Netzwerkfeigabe korrekt gemountet wurde: [$?] enthĂ€lt den ErrorLevel/exit code vom Befehl mountpoint:
mountpoint /mnt/netzwerk; if [ $? = 0 ]; then echo "mount: OK"; else echo "mount error: Zugangsdaten oder Netzwerkverbindung fehlerhaft"; exit 13; fi

# Sicherungsverzeichnis anlegen:
mkdir /mnt/netzwerk/Backup/$bck_name/ -p

# zu sicherndes Laufwerk aushÀngen:
umount /dev/sda1

## Die eigentliche Sicherung starten:
# 1. Sichert nur den MBR (GRUB 2 Bootloader):
dd if=/dev/sda of=/mnt/netzwerk/Backup/$bck_name/$datum.mbr_grub_only.img bs=446 count=1

# if Abfrage ob GPT oder MBR Laufwerk:
if sgdisk -p /dev/sda | grep "Found invalid GPT and valid MBR"
 then
 # 2. wenn kein GPT gefunden wurde, dann MBR-Partitionstabellen sichern.
 # sfdisk -d /dev/sda > /mnt/netzwerk/Backup/$bck_name/$datum.mbr-part-table.mpt
 dd if=/dev/sda of=/mnt/netzwerk/Backup/$bck_name/$datum.full_mbrgrub_2048.img bs=512 count=2048

 else
 # 2. sonst GPT-Partitionstabellen (GUID-Partition-Table) sichern,
 # (neue DatentrĂ€ger gemĂ€ĂŸ der EFI-Spezifikation - insbesondere alle DatentrĂ€ger ĂŒber 2 TB):
 sgdisk -b /mnt/netzwerk/Backup/$bck_name/$datum.gpt-table.gpt /dev/sda
fi

# 3. fsarchiver (filesystem archiver) Sicherungsprogramm installieren:
apt-get install fsarchiver -y

# 4. Inhalt des Dateisystems (alle Programme, Daten, usw.) in einem Multivolume-Archiv gepackt sichern.
fsarchiver savefs -j2 -s4300 -v -z7 /mnt/netzwerk/Backup/$bck_name/$datum.sda1_archiv.fsa /dev/sda1

# Parameterbeschreibung:
# [savefs] = (save device filesystem), Dateisystem sichern, der Typ (ob ext2, ext3, ext4, xfs oder btrfs) wird automatisch erkannt.
# [-j2] = (jobs), bestimmt die Anzahl der threads zum packen/entpacken. Hier sollte man die Anzahl der CPU-Kerne angeben.
# [-s4300] = (split), das Archiv in mehrere MB große Teile zerlegen. Die 4300 MB entsprechen hierbei einer Standard-DVD.
# [-v] = (verbose), ausfĂŒhrliche Anzeige.
# [-z9] = maximale LZMA-Komprimierung (im tÀglichen produktiven Betrieb ist Stufe 7 völlig ausreichend).

# optionale Parameter:
# [-o] = (overwrite), eine bereits bestehende Sicherung ĂŒberschreiben.
# [-cP@sSw0Rd] = (cryptpass), Sicherungsimage mit einem Passwort verschlĂŒsseln (ohne Leerzeichen).
# [-a] bzw [-A] = (allow), eingehÀngte (gemountete) Partitionen sichern (nicht empfohlen).

# 5. optional: SHA256-PrĂŒfsummen zur aktuellen Sicherung erzeugen, um spĂ€ter die IntegritĂ€t der Archive zu testen zu können:
echo ✱✱✱ Backup abgeschlossen. Erzeuge nur noch SHA-256 Checksummen.; cd /mnt/netzwerk/Backup/$bck_name; sha256sum $datum.* >$datum.checksum.txt.sha

Das Script ausfĂŒhrbar machen und starten:
chmod +x backup.sh
sudo ./backup.sh

2. Wiederherstellung (restore):


nano restore.sh

Hier folgendes einfĂŒgen (Copy & Paste):
#!/bin/sh
## Debian/Ubuntu Linux - von einem Live-System aus einer Netzwerkfreigabe - wiederherstellen:
##
## Das ext4-Dateisystem wird voll unterstĂŒtzt. Die RĂŒcksicherung muss von einem
## Live-System (USB/CD/DVD) aus erfolgen, da nur so alles zu 100% wieder hergestellt werden kann.
## Eine ausfĂŒhrliche Parameterbeschreibung findet man unter: http://ctaas.de/linux-install.htm
## 2018 © Computertechnik Schröder, Arno Schröder, Kahla

## RESTORE - Die folgenden Angaben muss man anpassen:
serverip=192.168.0.100 # IP-Adresse, des Servers (wo die Sicherungen liegen).
freigabe=post          # Freigabe auf dem Sicherungsserver.
username=admin         # Benutzername fĂŒr den Login auf dem Sicherungsserver.
passwort=Qbttxpsu      # Passwort zum Login auf dem Sicherungsserver.
srv_name=ServerName    # Sicherungsserver PC-Name (Hostname).

bck_name=BackupName    # Computername der Sicherung die wieder hergestellt werden soll.
bck_date=2018-02-19    # Die Sicherung vom angegebenen Datum soll wieder hergestellt werden.

## Netzwerk verbinden:
# Verzeichnis zum einhÀngen anlegen:
mkdir /mnt/netzwerk
# Paketquellen aktualisieren und notwendige Pakete installieren:
apt-get update; apt-get install cifs-utils -y
# Die Netzwerkfreigabe einhÀngen (mounten):
mount -v -t cifs //$serverip/$freigabe /mnt/netzwerk/ -o rw,user=$username,password=$passwort,domain=$srv_name,vers=2.1
# Mit [vers=...] legt man die zu verwendende SMB-Protokoll Version fĂŒr den Backup Server fest.
# vers=1.0 (XP, Srv 2003, FritzBox), vers=2.0 (Vista ab SP1, Srv 2008), vers=2.1 (Win 7, Srv 2008 R2),
#
vers=3.0 (Win 8, Srv 2012), vers=3.02 (Win 8.1, Srv 2012 R2), vers=3.1.1 (Win 10, Srv 2016).

# ÜberprĂŒfen ob die Netzwerkfeigabe korrekt gemountet wurde:
mountpoint /mnt/netzwerk; if [ $? = 0 ]; then echo "mount: OK"; else echo "mount error: Zugangsdaten oder Netzwerkverbindung fehlerhaft"; exit 13; fi

# swapping deaktivieren - es kann sonst passieren das, das Live-System
# die swap-Partition verwendet und so ein RĂŒcksichern verhindert.
swapoff -a

## Die eigentliche Wiederherstellung starten:
# 1. Den MBR (GRUB 2 Bootloader) wieder herstellen:
dd if=/mnt/netzwerk/Backup/$bck_name/$bck_date.mbr_grub_only.img of=/dev/sda bs=446 count=1

# 2a. Die MBR-Partitionstabelle zurĂŒcksichern (wenn vorhanden) ...
# sfdisk /dev/sda < /mnt/netzwerk/Backup/$bck_name/$bck_date.mbr-part-table.mpt 2>>e
dd if=/mnt/netzwerk/Backup/$bck_name/$bck_date.full_mbrgrub_2048.img of=/dev/sda bs=512 count=2048 2>>e

# 2b. ... oder (load backup) die GPT Partitionstabelle wieder herstellen (wenn vorhanden):
sgdisk -l /mnt/netzwerk/Backup/$bck_name/$bck_date.gpt-table.gpt /dev/sda 2>>e

# 2c. die geÀnderte Partitionstabelle neu einlesen (dem System bekannt machen):
sleep 15; hdparm -z /dev/sda 2>>e; sfdisk -R /dev/sda 2>>e # 1. fĂŒr Ubuntu, 2. fĂŒr Debian:

# 3. fsarchiver (filesystem archiver) Sicherungsprogramm installieren:
apt-get install fsarchiver -y

# 4. Erstes Dateisystem (id=0) vom Archiv auf /dev/sda1 wieder herstellen.
# id = bestimmt die Nummer vom Dateisystem falls man mehrere Dateisysteme
# in einem Archiv gesichert hat (begonnen wird bei 0).
fsarchiver restfs -v /mnt/netzwerk/Backup/$bck_name/$bck_date.sda1_archiv.fsa id=0,dest=/dev/sda1
# Optional: RĂŒcksicherung und Dateisystem konvertieren z. B. in ext4, xfs (anpassbar).
# fsarchiver restfs -v /mnt/netzwerk/Backup/$bck_name/$bck_date.sda1_archiv.fsa id=0,dest=/dev/sda1,mkfs=ext4

echo ✱✱✱ Restore abgeschlossen.

Das Script ausfĂŒhrbar machen und starten:
chmod +x restore.sh
./restore.sh

3. Sonstiges:


fsarchiver archinfo Archiv.fsa
# Informationen zum Archiv anzeigen.
fsarchiver restdir Archiv.fsa /tmp/extract
# entpackt die Daten ins angegebene Verzeichnis (einzelne Dateien wiederherstellen).
fsarchiver -v
# kurze Hilfe anzeĂ­gen.
man fsarchiver
# (manpages) ausfĂŒhrliche Hilfe anzeigen.

❑  Abschließende Hinweise:


Setzt man noch zusĂ€tzlich andere Dateisysteme wie z. B. NTFS, FAT32, exFAT usw. ein, so muss man das Skript hier entsprechend selbst ergĂ€nzen. FĂŒr Windows Partitionen mit NTFS bzw. FAT32 empfehle ich folgendes Skript.
Die Wiederherstellung klappt auch auf einer neuen leeren Festplatte oder einem neuem kompatiblen System, da sowohl der Bootsektor, die Partitionstabelle sowie alle Daten wieder restauriert werden. Achtung: Bei einer Wiederherstellung werden alle zuvor vorhandene Daten ĂŒberschrieben, also gelöscht.
Man kann mit diesen Skripten neben Debian & Ubuntu problemlos auch andere fremde Systeme wie z. B. Xubuntu, Ubuntu Mate, Kubuntu, Lubuntu, Linux Mint, Manjaro, Fedora, openSuse, Arch Linux, FreeBSD usw. sichern & wiederherstellen.

Die Nutzung der Anleitung erfolgt auf eigene Gefahr, fĂŒr jegliche SchĂ€den wird keine Garantie/Haftung ĂŒbernommen!
IP-Adressen, E-Mailadressen, Namen u. Ă€. wurden fĂŒr die Dokumentation geĂ€ndert, hacken ist also zwecklos.
Die Dokumentation entstand aus verschiedenen Tests unter: Ubuntu 14.04, 16.04, 16.10, 17.04, 17.10 und 18.04, unter Debian 8 und 9, sowie produktiven Installationen.
Bevor sie eventuell Fragen stellen bitte ich sie die Dokumentation komplett zu lesen. Hinweise auf Fehler, Anregungen, Danksagungen oder Àhnliches sind immer willkommen.

Design:
© 2018 ctaas.de, Arno Schröder, Kahla (Impressum)