Kürzlich hatte einer unserer Kunden das Anliegen, auf einem Windows Server 2012 R2 ein Volume (D:) eines Drives zu verkleinern (shrinken). Dabei hat er an sich alles richtig gemacht. So wurde zunächst über den Diskmanager die Partition ausgewählt, die verkleinert werden sollte. Anschließend hat er mit Rechtsklick –> Volume verkleinern.. den Verkleinerungs-Wizard gestartet und ist dessen Anweisungen gefolgt.


Beim Schritt, in dem die Anzahl der Bytes angegeben werden muss, um welche die Partition verkleinert werden soll, hat der Kunde die standardmäßig vorgegebene Höchstmenge ausgewählt und den Wizard beendet. Allerdings wurde das geplante Vorhaben mit folgender Fehlermeldung unterbunden:


Im Event-Log wurden die beiden Events mit den IDs 257 und 260 protokolliert.



Fehler 257 weist in der Regel darauf hin, dass der gewählte zu verkleinernde Speicherplatz den für Verkleinerung verfügbaren Speicherplatz übersteigt.



Fehler 260 besagt, dass eine Datei, die eigentlich verschoben werden sollte, in diesem Fall nicht verschoben werden konnte. Bei uns im Speziellen handelt es sich um ..\VHD-S-1-5-21-161489574-842925246-1343024091-500.vhdx::$DATA

Der in der Fehlermeldung vorgeschlagene Weg, mithilfe von fsutil an weitere Informationen zu kommen, hilft leider nicht weiter, sondern liefert nur dieselben Informationen wie der Event-Eintrag selbst.

Doch was bedeuten diese Fehler nun? Beim Verkleinern von Volumes werden systematisch Dateien von hinten nach vorne verschoben, um das Volume „abschneiden“ zu können. Die tatsächliche Anzahl an Bytes, um die ein Volume nun verkleinert werden kann, hängt also von der letzten Datei ab, die nicht verschoben werden kann. Der Verkleinerungs-Wizard erkennt diese Dateien allerdings nicht immer und setzt dann einen zu hohen Wert. Dies kann dann zu Fehler 257 und der Warnung 260, die eben die Datei beschreibt, die nicht verschoben werden kann, führen.

Bei meiner Internetrecherche bin ich auf einige Drittanbieter-Tools gestoßen, die in der Lage sein sollten, die problematischen Dateien zu verschieben. Allerdings bergen Produkte, die nicht aus einer verifizierten Microsoft-Quelle stammen, immer ein Risiko, vor allem, da Microsoft bei entstehenden Schäden nicht haftet.

Wie geht man also vor, wenn man sich an die von Microsoft gegebenen Mittel halten will? Microsoft liefert das Optimierungstool Laufwerke defragmentieren und optimieren, das bei einem Klick auf Optimieren das ausgewählte Volume defragmentiert. Laut [1] wird ab 2012 R2 dabei auf defrag.exe –c –h –k –g zurückgegriffen. Leider konnte aber auch nach Defragmentieren der Verkleinerungsvorgang nicht erfolgreich abgeschlossen werden. Die endgültige Lösung für das Problem war dann relativ simpel. So haben wir die Datei über den Windows Explorer lokalisiert und versucht, sie manuell auf eine andere Partition zu verschieben, was überraschenderweise auch ohne Probleme funktioniert hat. Bei einem erneuten Durchlauf des Wizards konnte die gewünschte Verkleinerung nun auch erreicht werden.

[1] https://blogs.technet.microsoft.com/askcore/2014/02/17/whats-new-in-defrag-for-windows-server-20122012r2/