Den erfahrenen Windows Backup-Anwender wird der Titel zunächst irritieren, speichert das Microsoft-Bordmittel seine Datensicherung, wenn es sich um ein Abbild handelt, doch so oder so in eine VHD-Datei, lediglich Dateisicherungen werden in ZIP-Dateien abgelegt. Um die geht es in diesem Beitrag allerdings nicht. Lässt man die Datensicherung auf ein virtuelles Laufwerk, in diesem Falle eine VHD-Datei ablegen, so erhöht das zwar den Aufwand zum Sichern und Wiederherstellen geringfügig, bietet dafür auf der Gegenseite ein paar Möglichkeiten.
Wieso, weshalb, warum?!
Die Windows-eigene Datensicherung seit Windows Vista ist nicht unbedingt leicht zu verstehen oder leicht zu bedienen, wenn man bestimmte Dinge tun möchte. Microsoft ist nicht ganz unschuldig daran, ändert(e) sich der Funktionsumfang mit jeder neuen Windows-Version als auch in Abhängigkeit vom Sicherungs-Ziel und nicht zuletzt dem verwendeten Weg, wie die Datensicherung konfiguriert wird.
Eine genauere Kontrolle darüber, was die Datensicherung kann und macht, bietet der Befehl “wbadmin” mit dessen Hilfe und ein wenig Übung lässt sich einiges anstellen. Für Verwirrung sorgt zudem, das im Gegensatz zum früheren “ntbackup” als auch die aktuellen Lösungen wie z.B. von Acronis oder Drive Snapshot anhand Sicherungsdateien, also die Dateien, die die gesicherten Daten enthalten, nicht erkennbar ist, ob es sich um eine Voll- oder Differenzsicherung handelt.
Letzteres liegt daran, das Microsoft primär mit einer einzelnen VHD-Datei arbeitet, die das aktuellste Abbild, also die aktuellste Datensicherung enthält und mit einem Satz XML-Dateien, die Änderungen an den (Daten-)Blöcken zu den unterschiedlichen Sicherunszeitpunkten beinhalten. Daraus ergibt sich, das man mit einer entsprechend kompatiblen Virtualisierungslösung schnell und einfach (sofern es keinen Bluescreen 0x0000007b gibt) das Abbild als virtuelle Maschine starten kann.
Auf der anderen Seiten hat man schlicht keine getrenten Dateien für Voll- und Differenzsicherung.
Soweit so gut, aber warum die Datensicherung in eine zusätziche VHD-Datei?
Um diese Frage kurz zu beantworten: Um ein einhaltliches Ziel mit allen möglichen Funktionen zu haben! Klingt seltsam, hat aber mehrere Hintergründe: So lässt die Windows-Datensicherung Voll- und Differenzsicherungen nur auf lokale Datenträger oder Wechselmedien (USB-Festplatten) zu. Möchte man auf ein Netzlaufwerk sichern, so wird “nur” eine Vollsicherung erstellt. Problematisch kann auch das Sichern auf RDX-Laufwerke sein, Diese erscheint zwar als Wechsellaufwerk, allerdings erscheint bei der Datensicherung eine Abfrage. Diese Meldung kann man nun auf zwei Wegen umgehen, einmal per Übergabe des erwarteten Buchstabens (siehe hier) oder eben per Sicherung in eine VHD-Datei.
Ferner lassen sich mit der Größenangabe der VHDs der maximale zu belegende Speicherplatz durch die Datensicherung regeln. Letzteres ist gerade bei der Sicherung auf ein Netzlaufwerk (zusätzlich) interessant, denn wer möchte seinen Dateiserver oder NAS schon mit der Datensicherung eines Windows-Computers “zumüllen”.
Vorbereitung
Zunächst muss auf dem Zielgerät eine VHD-Datei vorhanden sein. Diese kann sowohl mit fester als auch wachsender Größe erstellt werden. Für beide Arten gilt das während der Erstellung angegebenen Größenlimit. Um eine VHD zu erstellen, kann man entweder die Datenträgerverwaltung (“Aktion – Virtuelle Festplatte erstellen”) oder den Befehl “diskpart” bemühen:
create vdisk file=LW:\Backup.vhd maximum=40000 type=expandable select vdisk file=LW:\Backup.vhd attach vdisk create partition primary format quick label=Backup
Dieser Befehlsblock erstellt eine 40 GB große wachsende VHD-Datei, hängt Diese eine, partitioniert und formatiert sie.
Die eigentliche Datensicherung
Anbei ein Beispiel-Skript, welches zunächst die VHD-Datei einhängt, eine Datensicherung durchführt und abschließend die VHD-Datei wieder trennt:
@echo off title Backup... rem configuration set destination=E: rem diskpart attach vdisk diskpart /s attach-vhd.txt rem pause ping 127.0.0.1 -n 5 > NUL rem backup start /wait wbadmin start backup -backupTarget:%destination% -allCritical -include:C: -vssFull -quiet rem diskpart detach vdisk diskpart /s detach-vhd.txt
Den Befehl “diskpart” kann man nur über zusätzliche Skripte automatisieren:
Inhalt der Datei “attach-vhd.txt”:
select vdisk file=LW:\Backup.vhd attach vdisk
Inhalt der Datei “detach-vhd.txt”:
select vdisk file=LW:\Backup.vhd detach vdisk
P.S.: VHDX-Dateien funktionieren natürlich auch!
Troubleshooting
Falls es Probleme mit den Laufwerksbuchstaben der verbundenen VHD-Dateien gibt, kann man das Skript wie hier beschrieben erweitern bzw. ändern:
Windows Server-Sicherung in VHD-Dateien mit unterschiedlichen Laufwerksbuchstaben
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Danke für die sehr gute Vorlage. Habe das Skript etwas angepasst bzw. zu einem Skript zusammengefasst:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@echo off
title Backup…
rem configuration
set vhdxFile=”D:WindowsBackup.vhdx”
set destination=R:
rem end of configuration
rem create backup-vhdx if not present
if not exist %vhdxFile% call :create-backup-disk %vhdxFile% %destination% 250000
set tempscript=%temp%%~n0.tmp
rem diskpart attach vdisk
echo select vdisk file=%vhdxFile%>%tempscript%
echo attach vdisk>>%tempscript%
diskpart /s %tempscript%
del %tempscript%
rem pause
:WaitForAttach
timeout /T 1 >nul
if not exist %destination% goto WaitForAttach
rem backup
start /wait schtasks /run /TN “MicrosoftWindowsWindowsBackupAutomaticBackup”
:waitForComplete
timeout /T 30 >nul
schtasks /query /FO List /TN “MicrosoftWindowsWindowsBackupAutomaticBackup” | find “Wird”
if “%errorlevel%”==”0” goto waitForComplete
rem diskpart detach vdisk
echo select vdisk file=%vhdxFile%>%tempscript%
echo detach vdisk>>%tempscript%
diskpart /s %tempscript%
del %tempscript%
goto :EOF
:create-backup-disk
rem Creates a new thin (expandable) VHDX-File with NTFS format
rem Params: drive:pathfilename.vhdx assignedVolumeLetter: [Size_MB]
rem default size in MB: 250000
if “%2″==”” goto paramsMissing
if “%3″==”” (set size=250000) else set size=%3
set tempscript=%temp%%~n0.tmp
echo create vdisk file=%1 maximum=%size% type=expandable>%tempscript%
echo select vdisk file=%1>>%tempscript%
echo attach vdisk>>%tempscript%
echo convert gpt>>%tempscript%
echo create partition primary>>%tempscript%
echo format quick label=Backup>>%tempscript%
echo assign letter %2>>%tempscript%
diskpart /s %tempscript%
del %tempscript%
goto :EOF
:paramsMissing
echo missing param.
echo.
echo syntax: drive:pathfilename.vhdx assignedVolumeLetter: [Size_MB]
goto :EOF
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _