Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] Siduction als Rettungspartition für Windows (Image erstellen/zurückspielen)  (Read 24178 times)

Offline pit

  • User
  • Posts: 237
Hat schon mal jemand von euch etwas in der Art realisiert?

Ein Rechner mit (1) SSD und (2) HD (magnetisch) hat auf (1) mehrere Partitionen, auf der ersten ist das mehr oder weniger in Ausschließlichkeit genutzte Windows 7 installiert. Auf der letzten Partition von (2) soll ein (wie auch immer geartetes) Abbild dieser Systempartition konserviert werden.

Auch (2) beinhaltet mehrere Partitionen, u.a. die Datenpartition für Windows (D). Ich würde dort gerne auf einer hinteren Partition ein schlankes Siduction installieren und dort eine Verknüpfung zu einem Script auf den Desktop legen, das es a) erlaubt, ein solches Abbild von Windows zu erstellen und b) anbietet, ein solches Abbild zurückzuspielen. Erst mal nicht zwingend: In einer Ausbaustufe stünden die vorhandenen Abbilder zur Auswahl und es erschiene eine unmissverständliche Warnung vor unwiderruflichem Datenverlust.

Da es sich um den Rechner meines betagten Vaters handelt und letzterer über 400 Kilometer entfernt von mir lebt, würde ich in Siduction auch Teamviewer installieren und ein entsprechendes Icon auf dem Desktop platzieren.

Welche Tools empfehlen sich für das Erstellen eines solchen Abbilds? Einfach nur dd ? Windows-Bootloader sollte natürlich mitgesichert werden. Siduction muss nicht zwingend in den MBR, dessen Bootloader könnte ja auch auf der Siduction-Partition liegen, Start dann per Auswahl (Taste F11 oder so beim Rechnerstart).

Im Ergebnis sollte mein Vater in der Lage sein, Siduction zu booten, das unübersehbare Icon auf dem Desktop ("Windows wiederherstellen") anzuklicken und nach einem Reboot sein jungfräuliches Windows wieder zur Verfügung zu haben. Im Zweifel sollte mir das via Teamviewer auch möglich sein. Sein Router ist so konfiguriert, dass er das entsprechende Gerät automatisch mit dem Internet verbindet.

Der letzte Absatz steht aber noch ein bisschen in Frage: Ich habe mich noch nicht entschieden, ob ich es meinem Vater ermöglichen sollte, eine solche Operation eigenständig durchzuführen. Im Zweifel gäb's einen zweiten User (od. einfach nur root) für mich, der die Scripte zum Rückspielen u. zur Erstellung des Abbild exklusiv nutzen dürfte. Der Standard-User (für meinen Vater) hätte dann die Möglichkeit, die Teamviewer Session zu starten - ich würde den Rest via Konsole erledigen.

Input welcome!

Offline ayla

  • User
  • Posts: 1.744
Hi,

zu Teamviewer kann ich Dir nichts sagen, ich hatte das Problem mit der Fernwartung bei meiner Mutter (die ein siduction benutzt) hiermit gelöst:
http://wiki.siduction.de/index.php?title=VNC-Verbindung_durch_ssh-Tunnel_mit_dynamischer_DNS_herstellen

Was ich Dir auch noch sagen kann, was funktioniert, ist eine komplette Platte mit Win7 mit bootloader per dd auf eine andere Platte zu "verschieben".
also
dd if=/dev/sda of=/dev/sdb

Das geht mit Sicherheit auch in Deinem Fall z.B. mit if=/dev/sda of=/dev/sdb2 und zurück mit if=/dev/sdb2 of=/dev/sda. Jeweils noch ein bs=4096 empfielt sich. Diese beiden Anweisungen jeweils in ein script "save" und "restore" und Du könntest das Problem bereits auf der Kommandozeilenebene per Fernwartung lösen, sobald siduction -auf der zweiten Platte- läuft.
Dein Vater müsste, um dies selbst zu machen, lediglich im Dateimanager auf das entsprechende Icon klicken, lässt sich aber per drag and drop auch auf den Desktop legen.
Da die Datenpartition des Win auf der zweiten Platte liegt sollte auch kein Datenverlust dann Probleme machen.
Dumm ist nur daß Du damit die komplette SSD sichern müsstest, inklusive der "leeren" Teile. Möglicherweise liese sich dies aber durch verkleinern der Win7-Partition auf das nötige Minimum und der Angabe eines count=(benötigte Größe an 4096er Blöcken) bei dd reduzieren.
Also
dd if=/dev/sda of=/dev/sdb(x) bs=4096 count=xxx

Bin aber auch mal auf andere, möglicherweise geschicktere, Lösungen gespannt.

Gruß
ayla

Offline der_bud

  • User
  • Posts: 1.072
  • member
So auf die schnelle würde ich mich erstmal ayla anschliessen, mit zwei Änderungen/Abweichungen:

- Zum einen statt of=/dev/sdbX in ein Imagefile sichern, also ähnlich of=/dev/sdbX/Winbak.img
  Hätte den Vorteil dass man das auch mal auf 'ne externe Platte sichern kann, und man könnte mal drüber nachdenken den Befehl zwecks Komprimierung (unbelegter Platz) noch durch tar/gzip zu pipen.

- Zum zweiten würde ich mal suchen ob dd auch mit der Syntax /dev/disk-by-uuid oder disk-by-label klarkommt (weiß ich grad nicht). Der Kernel muss nicht immer zwingend der gleichen Platte den gleichen Buchstaben a/b zuweisen, und nichts wär blöder als "automatisiert" die falsche Partition zu überschreiben.

Tipps/Syntax zum separaten Sichern des MBR kennt u.a. Wikipedia: https://en.wikipedia.org/wiki/Dd_%28Unix%29#Master_boot_record_backup_and_restore
Du lachst? Wieso lachst du? Das ist doch oft so, Leute lachen erst und dann sind sie tot.

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
Hi der_bud,
dd-Images lassen sich per gzip/bzip/lzop komprimieren, das praktiziere ich seit Jahren mit meinen Backups. Da sind durchaus bis 50% Plattenplatz zu sparen. Ich würde dir lzop empfehlen, das ich für meine Kompressaktionen verwende, das besonders schnell ist im Gegensatz zu anderen beiden Tools.

Wenn du die Devices labelst sollte es ohne die Angabe konkrete Namen wie sdaX gehen.

Offline melmarker

  • User
  • Posts: 2.799
    • g-com.eu
bis auf siduction hört sich das gut an - ich würde für sowas eher Lubuntu LTS oder debian/stable LXDE nehmen, wenn ich ehrlich sein soll. Dann fällt auch der Stress mit dem aktuell halten wech, alle Monate mal security einspielen und das wars.
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin, November 11, 1755)
Never attribute to malice that which can be adequately explained by stupidity. (Hanlons razor)

Offline pit

  • User
  • Posts: 237
Schon mal vielen Dank für eure Tipps!

Bin was dd angeht eher Theoretiker und scheitere aktuell beim Testen in einer VM. Wenn ich Partition 1 der zweiten HD in ein File auf Partition 1 der dritten HD kopieren will, passiert das:

Code: [Select]
# dd if=/dev/sdb1 of=/dev/sdc1/test.img
dd: konnte „/dev/sdc1/test.img“ nicht öffnen: Ist kein Verzeichnis

Keine dieser Partitionen ist gemountet. Passiert auch, wenn ich statt sdb1 nur sdb schreibe. Und passiert auch, wenn ich /dev/disk/by-label/rettung/test.img adressiere (entsprechend gelabelt ist die Zielpartition natürlich). Sicher irgendein Deppenfehler meinerseits. Was mache ich falsch?

Zielpartition sieht so aus:

Code: [Select]
Device     Boot Start      End  Sectors Size Id Type
/dev/sdc1        2048 52428799 52426752  25G 83 Linux

Offline der_bud

  • User
  • Posts: 1.072
  • member
Ups, mein Fehler -sorry ???. Da siehst Du dass ich dd auch zu selten nutze, meist um isos auf einen Stick zu bringen. Also, dass die Quelle wie bei Dir oben ein nicht gemountetes Device ist ist richtig so, das willst Du ja komplett dumpen.
Als Ziel gibt es zwei Möglichkeiten: gibt man wie ayla oben schrieb ein Device an (/dev/sdxy), wird dieses mit der Quelle befüllt, 1:1. Willst Du wie ich es vorschlug stattdessen ein Image erzeugen, ist dieses natürlich ein File was auf einem erreichbaren, also schreibbar gemountetem Dateipfad liegen muss.
Also erst z.B. /dev/sdc1 nach /media/backup mounten, dann ist dieses mit of=/media/backup/test.img erreichbar.

Und für den richtigen Befehl um ein komprimiertes Image zu erzeugen hau nochmal bluelupo um ein Beispiel an, das hab ich praktisch noch nie gemacht. Möglicherweise hilfreich Datenträger sichern und wiederherstellen oder Systembackup mit dd
« Last Edit: 2015/01/28, 18:09:09 by der_bud »
Du lachst? Wieso lachst du? Das ist doch oft so, Leute lachen erst und dann sind sie tot.

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
@all:

Also ein Device (hier im Besipiel /dev/sda1 sichern per dd geht so. "if=" ist die Quelle, also das Inputfile und "of=" ist das Ziel wo die zu sichernde Dateien oder auch ein komplettes Device geschrieben werden soll. Das Ziel muss natürlich ein vorhandener (gemounteter) Pfad sein zB. auf einer einer externen Disk oder einem per NFS gemounteten NAS.

Backup:
Code: [Select]
# dd if=/dev/sda1 of=/media/NAS-Box/backups/Abbild-sda1.img

Wenn man mit dem file Kommando den Header des Image ansieht sollte es als solches erkannt werden.
Code: [Select]
# file Abbild-sda1.img
Abbild-sda1.img: Linux rev 1.0 ext4 filesystem data, UUID=xxx3db35-c457-41d2-3325-accfcf28fe21 (needs journal recovery) (extents) (huge files)

Ein Restore von sda1 kann dann von zweiten Rettungsystem auf der Disk oder einem Livestick (USB) erfolgen. Dort mountet man sich Filesystem mit Backup-Image und schreibt es auf die ursprüngliche Disk zurück.

Restore:
Code: [Select]
# cd <zum_backup_dir>
# dd if=./Abbild-sda1.img of=/dev/sda1
« Last Edit: 2015/01/28, 21:52:52 by bluelupo »

Offline melmarker

  • User
  • Posts: 2.799
    • g-com.eu
und ich rate noch mal ausdrücklich davon ab, das mit siduction zu machen - siduction muss man wenigstens ab und zu mal warten - sollte man zumindest, wenn man eine geplante Lebensdauer des Rettungssystems von über einem Monat annimmt
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin, November 11, 1755)
Never attribute to malice that which can be adequately explained by stupidity. (Hanlons razor)

Offline pit

  • User
  • Posts: 237
Quote from: der_bud
Und für den richtigen Befehl um ein komprimiertes Image zu erzeugen hau nochmal bluelupo um ein Beispiel an


Da nehme ich @der_bud beim Wort: Könntest du (@bluelupo) mir noch verraten, wie ich das Image in einem Rutsch via lzop komprimieren kann?  ;)

@melmarker: Mit Lubuntu hatte ich bisher noch nix zu tun. Hab's mir mal fix in einer VM angeguckt. Das sieht ganz vielversprechend aus. Für den beschriebenen Zweck ein Debian Unstable Derivat eher nicht zu nutzen, ist für mich nachvollziehbar.

Offline melmarker

  • User
  • Posts: 2.799
    • g-com.eu
dann empfehle ich ein debian stable oder testing, was man kurz vor dem stable-Release auch auf stable stellt - die liste der Pakete kann man ja aus pyfll/lxde nehmen und hübsch bekommt man das auch relativ problemlos - da kann ich helfen
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin, November 11, 1755)
Never attribute to malice that which can be adequately explained by stupidity. (Hanlons razor)

Offline bluelupo

  • User
  • Posts: 2.068
    • BluelupoMe
@pit:
Code: [Select]
dd if=/dev/sda1 of=/media/NAS-Box/backups/Abbild-sda1.img | lzop -1 -U -o Abbild-sda1.img.lzo

-U löscht das Original
-o Output File
-1 geringste Kompression aber schnell

....ansonsten man lzop ;-)

Offline pit

  • User
  • Posts: 237
@melmarker: Jetzt bin ich kurz verwirrt - du hast doch selber Lubuntu LTS empfohlen. Da damit vermutlich für ein paar Jahre Ruhe wäre und Jessie ja noch nicht veröffentlicht ist, würde ich mir zusätzliches Gebastel ("liste der Pakete kann man ja aus pyfll/lxde nehmen") mangels eigener Erfahrung eher sparen wollen. Aber danke für das Hilfsangebot!

@bluelupo: Danke! Habe gestern Abend mal spaßeshalber via dd ein Abbild einer alten (nicht mehr genutzten) XP-Systempartition gemacht. 30 GB. Dann mit lzop (Defaultwerte) komprimiert. 17 GB. Das lohnt sich also abhängig vom Füllstand der Partition dicke. Irgenwann muss ich das halt alles mal von a bis z durchexerzieren.

Der Plan ist: Ich komme am 15.2. mit besagtem Rechner zurück, setze Win 7 neu auf, installiere alle Programme, spiele die Nutzdaten (extra Partition) zurück und versuche dann das eingangs beschriebene Vorgehen. Das wird dann mindestens einmal unter Realbedingungen getestet. Bei Erfolg geht die Kiste via gelbe Post zurück zu meinem Vater. Möchte die Zeit dort nicht mit Konfigurationsorgien vertrödeln - so oft sehe ich meine Eltern leider auch nicht mehr.

Offline melmarker

  • User
  • Posts: 2.799
    • g-com.eu
@pit - wenn Du mit lubuntu noch nichts am Hut hattest, empfiehlt sich eventuell ein natives debian
Those who would give up essential Liberty, to purchase a little temporary Safety, deserve neither Liberty nor Safety. (Benjamin Franklin, November 11, 1755)
Never attribute to malice that which can be adequately explained by stupidity. (Hanlons razor)

Offline pit

  • User
  • Posts: 237
@bluelupo
Irgendwas mach ich noch falsch. Testszenario ist eine VM mit drei vdi's, auf denen sich jeweils eine Partition befindet:
sda1: Siduction 2014.1 Indian Summer KDE 64bit
sdb1: Slitaz 5.0 (Winz-Linux mit Openbox, Xserver Xorg/XVesa)
sdc1: Leere Linux Partition (ext4)
Gebootet ist Siduction, gesichert werden soll Slitaz, Ziel ist sdc1, letzteres ist auf /mnt/sdc1 gemountet.

Code: [Select]
# dd if=/dev/sdb1 of=/mnt/sdc1/150129-slitaz.img | lzop -1 -U -o /mnt/sdc1/150129-slitaz.img.lzo && ls -lh
10240000+0 Datensätze ein
10240000+0 Datensätze aus
5242880000 Bytes (5,2 GB) kopiert, 42,4682 s, 123 MB/s
insgesamt 4,9G
-rw-r--r-- 1 root root 4,9G Jan 29 15:22 150129-slitaz.img
-rw-r--r-- 1 root root   42 Jan 29 15:21 150129-slitaz.img.lzo

# file 150129-slitaz.img
150129-slitaz.img: Linux rev 1.0 ext4 filesystem data, UUID=f950e127-36bc-41c0-943a-c75bdd471400 (extents) (large files) (huge files)
Zwar wird die Image-Datei sauber erstellt (siehe das Ergebnis von "file" am Ende des Code-Schnipsels), der lzop-Befehl scheint aber fehlerhaft zu sein. Die komprimierte Version hätte nur 42 Bytes. Das wäre ein sensationeller Komprimierungsfaktor ;-)

Vorgehen in zwei Schritten klappt aber (hier nur der zweite):
Code: [Select]
# lzop -1 -U -o bla.lzo 150129-slitaz.img
root@siductionbox:/mnt/sdc1# ls -lh
... 109M Jan 29 16:07 bla.lzo
Probleme scheint's also mit dem Pipen zu geben.

Was aber funktioniert ist das:
Code: [Select]
# dd if=/dev/sdb1 | lzop -1 -o /mnt/sdc1/150129-slitaz.img.lzo
@melmarker: lubuntu passt schon, so exotisch ist das auch nicht und mit lxde hatte ich bereits in der Vergangenheit ein bisschen halbherzig rumgespielt.
« Last Edit: 2015/01/29, 16:32:33 by pit »