[DD-Backup] Expertenfrage zur Funktion

Begonnen von Kermit20, 19 Januar 2017, 10:41:29

Vorheriges Thema - Nächstes Thema

Kermit20

Hallo Gemeinde,

ich habe eine Frage bezüglich der Funktion Backup mit DD. Ich habe mit hilfe von Scripts Backuproutinen initialisiert, welche Zeitgesteuert ausgeführt werden... das Funktioniert auch. Nun kam es in der Vergangenheit bei einem Upgrade auf die neue Version Wheezy / Jessie zu Problemen. Ich habe dann das erstellte Image auf eine andere SD Karte wiederherstellen wollen und bin über das bekannte Blockproblem gestoßen. Um es schnell wieder ans laufen zu bekommen, habe ich eine neue größere Karte genommen (alt 32 GB neu 64GB). Das Image habe ich mittels WinDiskImager aufgespielt.

Nun zu meinem Problem / Frage:

Gestern ist die Rutine erneut gelaufen ( alle 4 Monate VollBackup  per DD) zwischen durch wird mit RSYNC gesichert.

Die Partition meiner Installation ist ca. 30 GB... alte Größe der Partitionierungen wurden beim Schreiben des Images der 32 GB auf die 64 GB Karte beibehalten. Nach meinem Verständnis von DD sollten nun die Partitionen Block by Block gesichert werden.

Allerdings, hat die Sicherung gestern meinen USB Stick gesprengt.... Das Image wurde über 60GB groß.... Ist es nun so, dass immer die Ganze Karte an sich gesichert wird und nicht die eingerichteten Partitionen ?

Kann ich das durch eine Option anpassen ?

Gruß und Danke für eure Hilfe
RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9

rudolfkoenig

/dev/sda : komplette Platte/Karte/etc
/dev/sdaX : Partition X

Vista

@off-Topic:

@Kermit20

kannst du mir/uns dein Backupscript oder den Ansatz dafür zur Verfügung stellen.
Würde dies bei mir auch gerne mit aufnehmen. Vielen Dank

Bartimaus

LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Kermit20

#4
Hi,

das ist genau meine Vorlage. Ich wusste nicht, ob ich den LINK posten darf.

Ich habe einfach das Problem, dass ich widersprüchliche Aussagen finde... mal wird DD in Verbindung mit der "SD" Karte beschrieben und mal in Verbindung mit Partitionsbereichen.

Hierfür suche ich eine Antwort.


Ich habe nach meiner Interpretation des Post von Rudolfkönig eine Option des Skriptes entdeckt (Partitionsorientierter Backup) mit der Möglichkeit bei DD dann auch Partitionen anzugeben.

Daten:

RudolfKöig

/dev/sda : komplette Platte/Karte/etc
/dev/sdaX : Partition X


Parameter im Script:

# partitionsbasierter backup modus (0 = nein, 1 = ja)
DEFAULT_PARTITIONBASED_BACKUP=0

# Partitionsnummern, die gesichert werden sollen beim partitionsbasierten Backup
DEFAULT_PARTITIONS_TO_BACKUP="*"


Partitionen des Systems:

$ sudo fdisk -l

Disk /dev/mmcblk0: 63.9 GB, 63886589952 bytes
4 heads, 16 sectors/track, 1949664 cylinders, total 124778496 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009bf4f

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/mmcblk0p2          122880    62333951    31105536   83  Linux

Disk /dev/sda: 31.3 GB, 31260704768 bytes
255 heads, 63 sectors/track, 3800 cylinders, total 61056064 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              32    61056063    30528016    c  W95 FAT32 (LBA)

Disk /dev/sdb: 124.2 GB, 124218507264 bytes
255 heads, 63 sectors/track, 15102 cylinders, total 242614272 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              32   242614271   121307120    c  W95 FAT32 (LBA)




Nach meinem Verständnis, kann ich die SDA1 nun spezifizieren und sollte dann wieder ein Image erhalten, welches 30 GB groß ist....

Frage die sich mir nun stellt, ist... ist dieses IMAGE dann auch bootfähig ?
RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9

Beta-User

Zitat von: Kermit20 am 19 Januar 2017, 12:48:00
Ich habe einfach das Problem, dass ich widersprüchliche Aussagen finde... mal wird DD in Verbindung mit der "SD" Karte beschrieben und mal in Verbindung mit Partitionsbereichen.

Hierfür suche ich eine Antwort.
Beides kann zutreffen, wie Dir Rudi himself bereits geschreiben hatte! Du mußt einfach nachsehen, was Dein Script macht, hier macht dd sehr wahrscheinlich ein Abbild vom ganzen Datenträger.
Hilfreich, wenn man mit Linuxbefehlen nichts anzufangen weiß: man <Befehl>, also man dd
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Kermit20

Ich habe meinen Post eben noch ergänzt und mich auch darauf bezogen. Meine Kenntnisse sind nicht die größten auf dem Gebiet aber ich versuche sie ständig... auch mit eurer Hilfe... zu erweitern.

Ich werde es heute Abend mal testen.
RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9

Beta-User

1. Deine Edits im Ausgangspost sind praktisch nicht nachvollziehbar ???.
2. Bitte Code-Tags etc. durchgängig benutzen!
3. Was die Bootfähigkeit angeht: Du kannst evtl. mehrere Partitionen sichern und ggf. nachträglich auch die boot-tags setzen; auf den ersten Blick sah das aber so aus, als wäre bei dem Script relativ viel einstellbar ;).
4. Wenn Du für den PI eigentlich nicht so viel Platz brauchst, kannst Du auch die Partition verkleinern und das auto-resize für die Datenpartition am Pi abschalten (selber suchen macht schlau).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

automatisierer

moin,

ich nutze dieses script auch. ich habe das script so angepasst, dass eine gewisse Anzahl an Blocks gesichert werden - ein paar mehr, als die Partitionen groß sind.

Dann musst du die komplette SD Karte sichern, was nützt dir das sonst, wenn du die Bootpartition nicht mit dabei hast. Wenn die Sicherung nur einen Block kleiner ist als die Partition (auch wenn der Bereich gar nicht genutzt wird) ist sie unbrauchbar.

Das Backup Script habe ich also wie folgt geändert:
dd if=/dev/mmcblk0 bs=4M count=1536

bedeutet, er macht 4M Blöcke und davon 1536 St. dann hört er auf, der Rest der SD Karte ist unpartitioniert. Somit kann ich das Backup auf jede 8GB Karte wiederherstellen und es wird auch nicht unnötig groß.

Du solltest evtl. überlegen, deine Partition zu verkleinern, wenn möglich. Die 32GB benötigst du ja nicht wirklich für FHEM...

Ich habe die Partition so groß gemacht, dass ~1GB frei ist.

Aus FHEM rufe ich den Backup Befehl dann wie folgt auf:

("sudo mount -a","sudo /usr/local/bin/raspiBackup.sh -b / -p /media/Backup -t dd -k 4 -o 'service fhem stop' -a 'service fhem start'")
1. Netzlaufwerk Mounten (ansonsten wird das Backup auf die SD Karte geschrieben und das passt natürlich nicht.)
2. Backup Befehl, bevor das Backup startet, wird FHEM angehalten und nach dem Backup wieder gestartet. Somit werden da schon mal keine Dateien während des Backups verändert.

Das ganze dauert ~7 Minuten und wird jeden Montag Morgen um 4 Uhr ausgeführt.

Es bleiben immer die letzten 4 Backups auf dem NAS liegen...

Da das Backup vom laufenden System gemacht wird, kann es auch mal passieren, dass es unbrauchbar ist - oder zumindest nur mit etwas Aufwand und Fachkenntnis zum laufen gebracht werden kann... Daher wird diese Methode nicht unbedingt empfohlen! Ich mache das seit beginn meiner FHEM Zeit so, habe schon 3 oder 4 mal auf ein Backup zurückgreifen müssen und bisher hat es immer funktioniert.






Kermit20

#9
Danke für eure Beiträge... leider hatte ich nicht viel Zeit am Wochenende um zu testen....

Aber so viel zum Zwischenstand:

Ich habe die Parameter für ein Partitionsorientiertes Backup eingestellt. Das Ergebnis: Testlauf (der theoretische den das Script bereitstellt) positiv.... das Richtige Backup schlägt fehl, da der Modus nicht unterstützt wird.

ZitatDas Backup Script habe ich also wie folgt geändert:

Code: [Auswählen]

dd if=/dev/mmcblk0 bs=4M count=1536


bedeutet, er macht 4M Blöcke und davon 1536 St. dann hört er auf, der Rest der SD Karte ist unpartitioniert. Somit kann ich das Backup auf jede 8GB Karte wiederherstellen und es wird auch nicht unnötig groß.

habe ich versucht umzusetzen.... allerdings habe ich die Parameter im Script noch nicht gefunden.

hast du diese hier ergänzt ?

# blocksize used for dd
DEFAULT_DD_BLOCKSIZE=1MB
# addition parms used for dd
DEFAULT_DD_PARMS=""


Ich werde heute versuchen ein manuelles Backup zu erstellen.
RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9

Kermit20

So Ergebnis ist da... :


/usr/local/bin $ sudo raspiBackupDD.sh
--- /media/usb1 already mounted
Stopping fhem...
--- RBK0009I: raspiBackup.sh V0.6.1.1k um Mo 23. Jan 12:19:19 CET 2017 gestartet
--- RBK0128I: Logdatei ist /media/usb1/ddBU/xxx/xxx-dd-backup-20170123-121919.log
--- RBK0116I: Konfigurationsdatei /usr/local/etc/raspiBackup.conf wird benutzt
--- RBK1000I: CPU Temperatur vor und nach dem Backup: 47.2'C - 52.1'C
--- RBK1001I: Speicherauslastung - Vor dem Backup - Belegt: 52 MB Frei: 872 MB - Nach dem Backup: Belegt: 67 MB Frei: 858 MB
--- RBK0010I: xxx: raspiBackup.sh V0.6.1.1k um Mo 23. Jan 12:52:09 CET 2017 beendet
--- RBK0017I: Backup erfolgreich beendet
Starting fhem...
/usr/local/bin $

####################

xxx /media/usb1/ddBU/xxx $ ls -lh
insgesamt 29G
drwxr-xr-x 2 root root 4,0K Jan 19 23:47 xxx-dd-backup-20170119-234716
-rw-r--r-- 1 root root  440 Jan 19 23:47 xxx-dd-backup-20170119-234716.log
-rw-r--r-- 1 root root  29G Jan 23 12:52 xxx-dd-backup-20170123-121919.img
-rw-r--r-- 1 root root  417 Jan 23 12:52 xxx-dd-backup-20170123-121919.log


Lösung: Ich habe deine Parameter für mich angepasst umgesetzt und in den Parametern folgendes hinterlegt:

# Blocksize von dd
DEFAULT_DD_BLOCKSIZE=1MB

# Weitere Parameter für dd
DEFAULT_DD_PARMS="count=31000"



RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9

Kermit20

Für alle Interessierten noch der Hinweis, dass es für das Script ein Update gab. Nun gibt es die Möglichkeit immer nur den genutzten Platz (Patitionen) zu Sichern. Direkt aus dem Skript ist dies über Parameter steuerbar und funktioniert super =)
RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9