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
/dev/sda : komplette Platte/Karte/etc
/dev/sdaX : Partition X
@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
Evtl. ist es dieses:
https://www.linux-tips-and-tricks.de/de/raspberry/23-pi-erstellt-automatisch-backups-von-sich-selbst-pi-creates-automatic-backups-of-itself
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 ?
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
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.
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).
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.
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.
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"
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 =)