Windows Server’da Extend Volume Pasif Sorunu ve Recovery Partition

VMware üzerinde çalışan bir Windows Server VM'inde Exchange Server 2019 kurulum projesi için C: sürücüsüne 30 GB alan eklemem gerekti. Sanal Diski hypervisor tarafında büyüttükten sonra Disk Management'ı açtığımda yeni alan Diskin sonunda Unallocated olarak görünüyordu, ancak C: üzerinde sağ tıkladığımda Extend Volume... seçeneği pasifti.

Sorunun nedeni, C: ile Unallocated alan arasında duran Recovery Partition'dı. Disk Management bir Volume'ü yalnızca hemen arkasındaki Unallocated alana doğru genişletebildiği için araya giren bu Partition genişletmeyi engelliyordu. Disk Management korumalı bir Partition olan Recovery Partition'ı silemediği için bu işlemi DiskPart ile yaptım. Bu yazıda Windows RE'yi (Windows Recovery Environment) güvenli şekilde devre dışı bırakıp Recovery Partition'ı silmeyi, C:'yi genişletmeyi ve Windows RE'yi yeniden etkinleştirmeyi anlatıyorum. Hypervisor tarafında sanal Diskin büyütülmesi kapsam dışında.

Extend Volume kuralı ve kullanılan DiskPart komutları, Windows Server 2012'den Windows Server 2025'e kadar aynıdır. Recovery Partition'ın C:'nin arkasında yer alıp almadığı ise sunucunun Disk düzenine bağlıdır. Microsoft'un önerdiği UEFI/GPT düzeninde Recovery Partition, Windows Partition'ının hemen arkasında yer alır ve bu makaledeki Windows Server 2022 sunucusunda da düzen böyledir. Eski kurulumlarda Recovery Partition Diskin başında olabildiği için düzeni işlemden önce list partition çıktısıyla kontrol ediyorum.

1- Extend Volume Neden Pasif Görünür?

Disk Management'ta Extend Volume, Basic Disk üzerindeki bir Volume'ü yalnızca aynı Diskte ve Volume'ün hemen arkasında bulunan Unallocated alana doğru genişletir. Volume'ün dosya sistemi de genişletmeyi desteklemelidir. NTFS ve ReFS Volume'ler genişletilebilir, FAT tabanlı Volume'ler genişletilemez.

Benim ortamımda Disk düzeni aşağıdaki gibiydi. Hypervisor tarafında eklenen alan Diskin sonuna eklendiği için Recovery Partition, C: ile Unallocated alanın arasında kaldı.

Önce:
[ EFI System ] [ MSR ] [ C: Windows ] [ Recovery 523 MB ] [ Unallocated 30 GB ]

Sonra:
[ EFI System ] [ MSR ] [ C: Windows (Recovery ve Unallocated alan eklenmiş) ]

Disk Management'ı açıp C: üzerinde sağ tıkladığımda Extend Volume... seçeneğinin pasif olduğunu görüyorum. Diskin sonunda 30 GB Unallocated alan bulunmasına rağmen bu alan C:'nin hemen arkasında olmadığı için kullanılamıyor.

extend volume

2- Ön Kontrol

Recovery Partition'ı silmek geri alınamayan bir işlem olduğu için başlamadan önce şu noktaları kontrol ediyorum:

Kontrol Beklenen Durum
Sanal Disk Hypervisor tarafında büyütülmüş, Disk Management'ta Diskin sonunda Unallocated alan görünüyor
Snapshot veya yedek Disk büyütüldükten sonra alınmış bir VM Snapshot'ı ya da sistem yedeği mevcut
Windows RE durumu reagentc /info çıktısında Windows RE status Enabled, konum Recovery Partition'ı gösteriyor
BitLocker durumu Biliniyor. C: üzerinde BitLocker açıksa Recovery Key erişilebilir durumda ve 6. bölümde Recovery Partition yeniden oluşturulacak
Yetki Command Prompt Run as administrator ile açılmış
VMware'de Snapshot'ı bulunan bir VM'in sanal Diski büyütülemez. Önce Diski büyütüyor, ardından Snapshot alıyor, sonra DiskPart işlemlerine geçiyorum.

Windows RE ve BitLocker durumunu yönetici olarak açtığım Command Prompt'ta şu komutlarla kontrol ediyorum. reagentc /info çıktısındaki Windows RE location satırı, WinRE imajının hangi Partition'da durduğunu gösterir. Bu satırın Recovery Partition'ı göstermesi, silinecek Partition'ın gerçekten WinRE'ye ait olduğunu doğrular. manage-bde -status C: ise C: üzerinde BitLocker korumasının açık olup olmadığını gösterir. Bu bilgi, 6. bölümde hangi yolu izleyeceğimi belirliyor.

reagentc /info
manage-bde -status C:

3- Windows RE'nin Devre Dışı Bırakılması

Recovery Partition'ı doğrudan silersem Windows RE kayıtlı olduğu konumu kaybeder ve çalışmaz hale gelir. Bunu önlemek için önce Windows RE'yi devre dışı bırakıyorum. reagentc /disable komutu Windows RE'yi kapatır ve Winre.wim imajını C: üzerindeki C:\Windows\System32\Recovery klasörüne taşır. Böylece imaj, Partition silindikten sonra da sistemde kalır.

reagentc /disable
reagentc /info

Kontrol Noktası
reagentc /info çıktısında Windows RE status Disabled görünmeli ve Windows RE location satırı boş olmalı.

4- Recovery Partition'ın DiskPart ile Silinmesi

Bu bölümde kullandığım DiskPart komutlarının tamamı aşağıda. {Disk Numarası} ve {Partition Numarası} değerleri ortamdan ortama değişir, bu yüzden list Disk ve list partition çıktılarına bakmadan seçim yapmıyorum.

Diskpart
list Disk
select Disk {Disk Numarası}
list partition
select partition {Partition Numarası}
delete partition override
delete partition override korumalı Partition'ları da siler ve geri alınamaz. Yanlış Partition'ın seçilmesi sistemi açılmaz hale getirebilir.

1- Command Prompt'u Run as administrator ile açıp Diskpart yazarak DiskPart komut ortamına geçiyorum.

extend volume

2- list Disk komutuyla sistemdeki Diskleri listeliyorum. Bu adımın amacı, işlem yapacağım Diske DiskPart'ın verdiği Disk numarasını doğru belirlemek. Bu numara, Diskin MBR'de Disk Signature, GPT'de Disk GUID olarak tutulan kimliğinden farklıdır. Sanal makinelerde DiskPart'taki Diski hypervisor tarafındaki sanal Diskle eşleştirmek için SCSI ve LUN ID bilgisinden yararlanıyorum.

Çıktıda her Diskin durumu (Online veya Offline), boyutu ve boş alanı görünür. Gpt sütununda yıldız (*) bulunan Diskler GUID Partition Table (GPT), yıldız bulunmayanlar Master Boot Record (MBR) yapısındadır. Birden fazla Disk bulunan sistemlerde Diski boyutuna ve boş alanına bakarak ayırt ediyorum.

extend volume

3- İşlem yapacağım Disk Disk 0. select Disk 0 komutuyla bu Diski seçiyorum.

extend volume

4- list partition komutuyla seçili Diskteki Partition'ları listeliyorum. Disk 0 üzerinde bir System (EFI), bir Reserved (MSR), bir Primary (C:) ve bir Recovery Partition'ı bulunuyor. Recovery Partition'ın listede Primary Partition'dan sonra gelmesi, C:'nin arkasında durduğunu gösteriyor.

extend volume

5- Benim ortamımda Recovery Partition, 523 MB boyutundaki Partition 4. select partition 4 komutuyla bu Partition'ı seçiyorum.

extend volume

Partition numarası ortamdan ortama değişir. Seçimi numaraya göre değil, list partition çıktısındaki türe (Recovery) ve boyuta bakarak yapıyorum.

6- delete partition override komutuyla seçili Partition'ı siliyorum. Recovery Partition korumalı olduğu için normal delete partition komutu bu Partition'ı silmez. override parametresi bu korumayı aşar.

extend volume

Kontrol Noktası
Disk Management'ta C:'nin arkasında 523 MB'lık Recovery Partition artık görünmemeli. Bu alan Diskin sonundaki Unallocated alanla birleşmiş olmalı.

extend volume

5- C: Volume'ünün Genişletilmesi

1- Disk Management'ta C: üzerinde sağ tıkladığımda bu kez Extend Volume... seçeneğinin aktif olduğunu görüyorum.

extend volume

2- Extend Volume... sihirbazında Unallocated alanın tamamını seçerek C:'ye ekliyorum. Sihirbaz tamamlandığında C:, Diskin sonuna kadar genişlemiş oluyor.

extend volume

Kontrol Noktası
Disk Management'ta Diskte Unallocated alan kalmamalı ve C:'nin boyutu eklenen alan kadar artmış görünmeli.

Aynı genişletmeyi arayüz yerine komut satırından da yapabiliyorum. DiskPart ile C: Volume'ünü seçip extend komutunu çalıştırmak, arkasındaki Unallocated alanın tamamını Volume'e ekler.

Diskpart
select volume C
extend

PowerShell'de ise Get-PartitionSupportedSize ile C:'nin ulaşabileceği en büyük boyutu alıp Resize-Partition ile bu boyuta genişletiyorum.

$Size = Get-PartitionSupportedSize -DriveLetter C
Resize-Partition -DriveLetter C -Size $Size.SizeMax

6- Windows RE'nin Yeniden Etkinleştirilmesi ve Doğrulama

Windows RE'yi yeniden etkinleştirirken izleyeceğim yol, 2. bölümde kontrol ettiğim BitLocker durumuna bağlı. Microsoft, Windows RE'nin Windows Partition'ından ayrı ve onun hemen arkasındaki bir Recovery Partition'da tutulmasını önerir. Bu ayrım özellikle BitLocker için gereklidir. C: şifreliyken Windows RE C: üzerinden başlatılamaz, bu yüzden ayrı bir Recovery Partition'a ihtiyaç duyar.

C: üzerinde BitLocker açıksa Windows RE'yi C: üzerinde bırakmıyorum. Önce Diskin sonunda yeni bir Recovery Partition oluşturup Windows RE'yi oraya kaydediyorum.

BitLocker Kapalıysa

BitLocker kullanılmayan sunucularda reagentc /enable komutu, 3. bölümde C:\Windows\System32\Recovery klasörüne taşınan Winre.wim imajını kullanarak Windows RE'yi C: üzerinde etkinleştirir. Bu durumda doğrudan aşağıdaki "Windows RE'nin Etkinleştirilmesi" adımına geçiyorum.

BitLocker Açıksa

BitLocker açık sunucularda Microsoft'un KB5028997 makalesinde anlattığı yöntemi kullanıyorum. C:'yi diskin sonundan küçültüp açılan alanda yeni bir Recovery Partition oluşturuyorum. {Boyut MB} yerine yeni Partition'ın boyutunu MB olarak yazıyorum. Bu boyutu sildiğim Recovery Partition'dan (benim ortamımda 523 MB) küçük seçmiyorum. {Disk Numarası}, 4. bölümde list disk ile belirlediğim numara.

Aşağıdaki komutlar GPT disk içindir. Disk türünü 4. bölümdeki list disk çıktısının Gpt sütunundan doğruluyorum. Komutlardaki id değeri Partition'ı GPT diskte Recovery Partition olarak tanımlar. gpt attributes=0x8000000000000001 ise Partition'a sürücü harfi atanmasını engeller ve onu korumalı bir sistem Partition'ı olarak işaretler.

diskpart
select volume C
shrink desired={Boyut MB} minimum={Boyut MB}
select disk {Disk Numarası}
create partition primary id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x8000000000000001
format quick fs=ntfs label="Windows RE tools"
exit

Disk MBR yapısındaysa Recovery Partition id=27 ile oluşturulur ve gpt attributes satırı kullanılmaz. Biçimlendirmeden sonra set id=27 ile Partition türünü Recovery olarak yeniden doğruluyorum.

diskpart
select volume C
shrink desired={Boyut MB} minimum={Boyut MB}
select disk {Disk Numarası}
create partition primary id=27
format quick fs=ntfs label="Windows RE tools"
set id=27
exit

Kontrol Noktası
list partition çıktısında C:'nin arkasında, verdiğim boyutta yeni bir Recovery Partition görünmeli.

Windows RE'nin Etkinleştirilmesi

Her iki durumda da Windows RE'yi reagentc /enable ile etkinleştiriyor ve sonucu reagentc /info ile kontrol ediyorum. Yeni bir Recovery Partition oluşturduysam Windows RE bu Partition'a yerleşir, oluşturmadıysam C: üzerinde kalır.

reagentc /enable
reagentc /info

Kontrol Noktası
reagentc /info çıktısında Windows RE status Enabled görünmeli. Windows RE location satırı, BitLocker kapalıysa C:'nin bulunduğu Partition'ı, BitLocker açıksa yeni oluşturduğum Recovery Partition'ı göstermeli.

7- Geri Dönüş

İşlemlerden herhangi birinde beklenmeyen bir sonuçla karşılaşırsam, 2. bölümde aldığım Snapshot'a dönüyorum. Snapshot, sanal Diskin ve Partition düzeninin işlemden önceki halini geri getirir. Tüm doğrulamalar tamamlandıktan sonra ise Snapshot'ı siliyorum. VMware Snapshot'ları zamanla büyüdüğü ve VM'in Disk performansını etkilediği için uzun süre tutulmamalı.

İşlemin tamamlandığını şu ölçütlerle anlıyorum: Disk Management'ta C: eklenen alan kadar büyümüş, reagentc /info çıktısında Windows RE Enabled durumda ve beklenen konumda, Snapshot da silinmiş. Bu noktadan sonra C: üzerindeki kurulum ya da uygulama çalışmalarına devam edebilirim.

Faydalı olması dileğiyle...

Bu makaleye 7 yorum yapıldı. Sen de düşünceni paylaş!

750 karakter yazabilirsiniz.
Güvenlik kodu
Yorumlar, onaylandıktan sonra yayınlanmaktadır.
E-posta, yorum onay bildirimi için gereklidir. Yayınlanmaz.
31.07.2024 Necdet Toprak

sanal sunucuda işe yaramadı maalesef, virtual disk service error verdi.

CEVAPLA

Cevaplar
31.07.2024 Fırat Boyan

Ben de sanal sunucuda defalarca yaptım. Hiç sorunla karşılaşmadım.

29.05.2024 Osman Gültepe

Bilgi Paylaşımınız ile İşimi Hallettin, Teşekkürler.

CEVAPLA

Cevaplar
01.05.2024 Erhan Kaplan

Teşeşkür ederim Fırat bey işimi çözdüm birde bu kopyalam izin vermemeniz çok iyi komutları ezberliyoruz :-)

CEVAPLA

Cevaplar
01.05.2024 Fırat Boyan

Merhaba Erhan. işine yaraması güzel. Komutları kopyalayabiliyorsun :) Onda bir engel yok.

01.12.2022 Gökhan

Fırat hocam teşekkürler.

CEVAPLA

Cevaplar
22.07.2022 Aykut Pehlivan

Merhaba Fırat Hocam,
Gerçekten güzel bir çalışma olmuş. Benim de işime yaradı :)
Teşekkür ederim. Ellerinize sağlık :)

CEVAPLA

Cevaplar