Systemplatten vergrößern
Kürzlich hatte ich den Fall, dass auf einem Server die Betriebssystemfestplatte zu wenig Platz hatte und erweitert werden muss. Der Server ist eine VM, dadurch kann die Festplatte selbst problemlos vergrößert werden, allerdings konnte der freie Speicherbereich dann nicht dem bestehenden Betriebssystem-Volume angehängt werden, da die „Recovery Partition“ im Weg war. es gibt jedoch einen recht einfachen Weg, wie man das Volume erweitern kann und dennoch die „Recovery Partition“ erhalten bleibt.
Die Ausgangslage
Der Server hat nur noch knapp 10GB freien Speicherplatz auf Laufwerk C und daher muss das Volume vergrößert werden. Die Festplatte selbst lässt sich einfach über die Management-Console des Hypervisors erweitern. Allerdings schlägt die anschließende Volume-Erweiterung mit dem Fehler, dass nicht genug Kapazitäten vorhanden sind, fehl.
Verschieben der „Recovery Partition“
Hierfür wird vorübergehend eine zweite virtuelle Festplatte benötigt; 1GB reicht vollkommen aus. Diese neue Festplatte wird im Server Manager online gebracht, initialisiert und als Volume „N“ bereitgestellt.
Danach bekommt die aktuelle „Recovery Partition“ mittels DISKPART einen Laufwerksbuchstaben, sodass mittels DISM die Informationen der „Recovery Partition“ exportiert und auf das Volume „N“ importiert werden können. Es folgt das neuregistrieren des RecoveryAgents und ein Löschen der alten „Recovery Partition“.
1. Zuweisen des Laufwerksbuchstaben mit „DISKPART“
PS C:\Users\temp.admin> diskpart
DISKPART> list disk
DISKPART> select disk <the-number-of-disk-where-current-recovery-partition-locate>
DISKPART> list partition
DISKPART> select partition <the-number-of-current-recovery-partition>
DISKPART> assign letter=O
2. Ein Abbild der aktuellen „Recovery Partition“ erstellen und auf Volume „N“ anwenden
Dism /Capture-Image /ImageFile:C:\recovery-partition.wim /CaptureDir:O:\ /Name:"Recovery"
Dism /Apply-Image /ImageFile:C:\recovery-partition.wim /Index:1 /ApplyDir:N:\
3. Neuen Ort der „Recovery Partition“ registrieren
reagentc /disable
reagentc /setreimage /path N:\Recovery\WindowsRE
reagentc /enable
4. Alte „Recovery Partition“ löschen
Mithilfe von „list volume“ wird die Volume Nummer des Volumes „O:“ herausgefunden und anschließend dieses Volume gelöscht.
list volume
select volume 3
delete partition override
Volume erweitern
Jetzt kann das Volume „C:“ erweitert werden. Ich habe dabei ca. 2 GB weniger zugewiesen, um anschließend die „Recovery Partition“ wieder an da Ende der ersten virtuellen Festplatte zu hängen.
Zurückschieben der „Recovery Partition“
Der Ablauf ist ähnlich, wie beim ersten Durchlauf – also:
- Im Server Manager mit den restlichen 2,88GB ein neues Volume mit dem Laufwerksbuchstaben „R:“ anlegen
- Mittels DISM die Recovery-Informationen von „N:“ auf „R:“ übertragen
- RecoveryAgent neu registrieren
- Mit DISKPART die finale „Recovery Partition“ verstecken – hier darauf achten, dass es je nach UEFI/BIOS eine andere Variante gibt. Ich habe ein UEFI, daher kann ich auch nur diese Befehle ausführen.
- Mit DISKPART die temporäre „Recovery Partition“ löschen
Jetzt sollte der Server neugestartet werden.
Dism /Capture-Image /ImageFile:C:\recovery-partition.wim /CaptureDir:N:\ /Name:"Recovery"
Dism /Apply-Image /ImageFile:C:\recovery-partition.wim /Index:1 /ApplyDir:R:\
reagentc /disable
reagentc /setreimage /path R:\Recovery\WindowsRE
reagentc /enable
DISKPART
DISKPART> list volume
DISKPART> select volume <the-number-of-the-new-recovery-volume>
DISKPART> set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
DISKPART> gpt attributes=0x8000000000000001
DISKPART> remove
DISKPART> select volume <the-number-of-the-temporary-recovery-volume>
DISKPART> delete partition override
Unmounten der „Recovery Partition“
Wenn nach dem Neustart im Windows Explorer die „Recovery Partition“ einen Laufwerksbuchstaben hat, dann liegt das daran, dass in der Registry noch hinterlegt ist, dass diese gemountet werden soll – einfach im Pfad „Computer\HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices“ nachschauen.
Status Recovery Agent und Test-Start in den Recoverymodus
Es sollte jetzt noch einaml abschließend der Status des RecoveryAgent geprüft werden bzw. sichergestellt werden, dass er läuft, sowie einen Start in den Recoverymodus durchgeführt werden, um die Funktionalität sicherzustellen.
reagentc /info
reagentc /boottore
Hallo Ronny, danke für die Anleitung, die genau auf mein Problem passt.
Leider scheitere ich mit der Anwendung des Images auf der N:\-Partition – es erscheint bei identischer Vorgehensweise mit denselben Pfadangaben permanent: „Fehler 161 – Der angegebene Pfadname ist ungültig“.
Die FM muss sich wohl auf den Ziel-Pfad beziehen, allerdings ist das Laufwerk/Partition ja normal zugreifbar.
Habe ich vllt. irgendetwas übersheen?
Hallo 12gang,
vielen Dank für deinen Kommentar.
An welcher Stelle genau tritt der Fehler auf? Bei
Dism /Apply-Image /ImageFile:C:\recovery-partition.wim /Index:1 /ApplyDir:N:\
?!Haben die vorherigen Schritte
diskpart
DISKPART> list disk
DISKPART> list partition
DISKPART> assign letter=O
DISKPART> select disk
DISKPART> select partition
DISKPART> exit
Dism /Capture-Image /ImageFile:C:\recovery-partition.wim /CaptureDir:O:\ /Name:"Recovery"
problemlos geklappt?
Das temporäre Zuweisen der Recoverypartition ist nicht zwingend notwendig, sondern lediglich, um sich sicherer zu fühlen, dass sie verfügbar ist, falls in den nächsten Steps was schief läuft oder man nach der Festplattenerweiterung keine Zeit hat, um die Recovery-Partition wieder auf der Systemplatte hinten anzustellen (siehe Schritt „Zurückschieben der „Recovery Partition““).
Hmm… ich kann gerne mal noch eine kürze Anleitung ohne den Zwischenschritt erstellen.
Ich hoffe, ich habe dir etwas weiterhelfen können.
VG
Ronny