Windows Server ortamlarında disk yönetimi, bir sistem yöneticisinin en sık karşılaştığı ve en kritik işlemlerden birini oluşturur. Yeni bir sunucu kuruyorsun, storage genişletiyorsun ya da bozulan bir partition’ı kurtarmaya çalışıyorsun – bu senaryoların hepsinde sana en güvenilir arkadaş diskpart olacak. GUI üzerinden Disk Management aracını kullanmak mümkün olsa da, özellikle Server Core kurulumlarında, remote yönetim senaryolarında veya otomatik deployment scriptlerinde komut satırı kaçınılmaz hale geliyor. Bu yazıda diskpart’ı gerçek dünya senaryolarıyla, pratik örneklerle ve “işte böyle yapıyoruz” diyerek anlatacağım.
Diskpart Nedir ve Neden Kullanmalıyız
Diskpart, Windows’un yerleşik komut satırı disk yönetim aracıdır. Windows XP döneminden beri hayatımızda olan bu araç, zaman içinde ciddi özellikler kazandı ve bugün enterprise ortamlarda vazgeçilmez bir hale geldi. GUI’den farkı sadece görsel olmak değil; diskpart ile yapabileceğin bazı işlemler Disk Management arayüzünde ya hiç yok ya da çok kısıtlı.
Peki ne zaman diskpart kullanmalısın?
- Windows PE ortamında işletim sistemi kurulumu öncesi disk hazırlığı yaparken
- Server Core kurulumlarında GUI olmadığı için
- Otomatik deployment scriptlerinde tekrarlanabilir disk yapılandırmaları için
- GPT/MBR dönüşümleri sırasında
- VHD/VHDX dosyalarını mount/unmount ederken
- Bozulan veya erişilemeyen partition’ları kurtarma denemelerinde
Diskpart’ı Başlatmak ve Temel Kavramlar
Diskpart’ı açmak için CMD’yi mutlaka yönetici olarak çalıştırman gerekiyor. Aksi halde “Access is denied” hatasıyla karşılaşırsın.
diskpart
Bu komutu çalıştırınca ayrı bir diskpart prompt’u açılır ve DISKPART> ifadesini görürsün. Buradan sonra tüm diskpart komutlarını verirsin.
Diskpart’ta çalışma mantığı seçim bazlıdır. Önce bir objeyi seçersin (disk, volume, partition), sonra o obje üzerinde işlem yaparsın. Bunu aklında tutmazsan “Lütfen önce bir disk seçin” gibi hatalarla boğuşursun.
Disk Listeleme ve Bilgi Görüntüleme
İlk adım her zaman sistemdeki diskleri görmektir. Körü körüne işlem yapmak veri kaybına yol açar.
DISKPART> list disk
Bu komut sana tüm fiziksel diskleri, boyutlarını, boş alan miktarını ve GPT/MBR bilgisini gösterir. GPT diskler “Gpt” sütununda yıldız (*) işaretiyle belirtilir.
DISKPART> list volume
Tüm volume’ları görmek için bu komutu kullanırsın. Drive letter, label, file system tipi, boyut ve durum bilgisi burada görünür.
DISKPART> list partition
Bu komutu kullanabilmek için önce bir disk seçmen gerekir. Seçili diskin partition yapısını gösterir.
Peki diskler hakkında daha detaylı bilgi almak istersen:
DISKPART> select disk 0
DISKPART> detail disk
detail disk komutu diskin model adını, tipini, durumunu ve üzerindeki volume’ları listeler. Sunucuya yeni takılan bir diski tanımlamak için ideal.
Disk Seçimi ve Partition Oluşturma
Gerçek dünya senaryosu: Yeni bir Windows Server kuruyorsun ve diskleri sıfırdan yapılandırman gerekiyor. BIOS tabanlı sistemde MBR, UEFI sistemde GPT kullanman gerektiğini unutma.
MBR Disk Yapılandırması (Legacy BIOS)
DISKPART> select disk 0
DISKPART> clean
DISKPART> create partition primary size=100000
DISKPART> active
DISKPART> format fs=ntfs label="System" quick
DISKPART> assign letter=C
DISKPART> create partition primary
DISKPART> format fs=ntfs label="Data" quick
DISKPART> assign letter=D
clean komutu diskteki tüm partition ve volume bilgilerini siler. Bu işlem geri alınamaz, dikkatli ol. active komutu partition’ı bootable yapar, bunu sadece sistem partition’ına uygulamalısın.
GPT Disk Yapılandırması (UEFI)
UEFI sistemlerde durum biraz farklı. EFI System Partition (ESP) ve Microsoft Reserved Partition (MSR) oluşturman gerekiyor.
DISKPART> select disk 0
DISKPART> clean
DISKPART> convert gpt
DISKPART> create partition efi size=100
DISKPART> format fs=fat32 label="EFI" quick
DISKPART> create partition msr size=128
DISKPART> create partition primary size=100000
DISKPART> format fs=ntfs label="Windows" quick
DISKPART> assign letter=C
DISKPART> create partition primary
DISKPART> format fs=ntfs label="Data" quick
DISKPART> assign letter=D
EFI partition’ı FAT32 formatında olmak zorunda, NTFS çalışmaz. MSR partition’ına letter atama veya format yapma, Windows bunu kendisi yönetir.
Partition Yönetimi: Silme, Genişletme, Küçültme
Partition Silmek
Var olan bir partition’ı silmek için önce onu seçmen gerekir:
DISKPART> select disk 1
DISKPART> list partition
DISKPART> select partition 2
DISKPART> delete partition
Eğer “korunan” bir partition silmeye çalışıyorsan (örneğin Recovery partition), override parametresi kullanman gerekir:
DISKPART> delete partition override
Bu komutu çok dikkatli kullan. Recovery partition’ını yanlışlıkla silersen sistemi kurtarma imkânın zorlaşır.
Volume Genişletme (Extend)
Gerçek dünya senaryosu: C sürücüsü dolmaya başladı, yanında boş alan var ve genişletmen gerekiyor. Ya da SAN tarafında LUN’a ek kapasite eklendi ve bunu Windows’a yansıtman lazım.
DISKPART> select volume 0
DISKPART> extend size=10240
size parametresi MB cinsindendir. Parametre vermezsen tüm boş alanı kullanır:
DISKPART> select volume 0
DISKPART> extend
Önemli not: Genişletme işlemi yapabilmek için volume’un hemen ardında unallocated alan olması gerekir. Ortada başka bir partition varsa extend çalışmaz. Bu durumda ya o partition’ı taşıman (diskpart bunu desteklemez, 3rd party araç gerekir) ya da onu silmen gerekir.
Volume Küçültme (Shrink)
DISKPART> select volume 2
DISKPART> shrink desired=20480
desired parametresi kaç MB küçülteceğini belirtir. Diskpart sana ne kadar küçültebileceğini de söyleyebilir:
DISKPART> shrink querymax
Bu komut maximum küçültülebilecek boyutu gösterir. Dikkat: Volume üzerindeki unmovable dosyalar (pagefile, hiberfil, VSS snapshot’ları) küçültme işlemini sınırlayabilir. Bazen VSS snapshot’larını ve pagefile’ı geçici olarak devre dışı bırakmak daha fazla alan kazandırır.
MBR ve GPT Dönüşümleri
Bu işlem riskli bir operasyon. Eğer diskte veri varsa convert komutu çalışmaz, önce clean yapman gerekir ki bu da tüm veriyi siler. O yüzden bu işlemi ya yeni disklerde ya da yedek aldıktan sonra yap.
MBR’dan GPT’ye Dönüştürme
DISKPART> select disk 1
DISKPART> clean
DISKPART> convert gpt
GPT’den MBR’ya Dönüştürme
DISKPART> select disk 1
DISKPART> clean
DISKPART> convert mbr
Eğer Windows PE ortamında çalışıyorsan ve sistem diskini dönüştürüyorsan, işletim sistemi yeniden kurulacak demektir zaten. Mevcut bir sistemi veri kaybetmeden dönüştürmek istiyorsan MBR2GPT.exe aracını kullanabilirsin, bu diskpart’tan ayrı bir araçtır.
Drive Letter ve Mount Point Yönetimi
Yeni bir volume’a letter atamak ya da mevcut letter’ı değiştirmek sık karşılaşılan bir senaryo. Örneğin CD-ROM D: harfini almış ama sen D:’yi data diski olarak kullanmak istiyorsun.
DISKPART> select volume 3
DISKPART> assign letter=E
Letter kaldırmak için:
DISKPART> select volume 3
DISKPART> remove letter=E
Windows’ta drive letter yerine mount point de kullanabilirsin. Bu özellikle 26 harften fazla volume’ın olduğu ya da klasör yapısını organize etmek istediğin durumlarda işe yarar:
DISKPART> select volume 4
DISKPART> assign mount=C:DataDrive
Tabii önce C:DataDrive klasörünün var olması gerekiyor.
VHD/VHDX Yönetimi
Bu, diskpart’ın az bilinen ama çok güçlü bir özelliği. Hyper-V VHD dosyalarını veya test ortamı disk imajlarını diskpart ile oluşturabilir ve yönetebilirsin.
VHD Oluşturma ve Mount Etme
DISKPART> create vdisk file="C:VirtualDisksDataDisk.vhd" maximum=51200 type=fixed
DISKPART> select vdisk file="C:VirtualDisksDataDisk.vhd"
DISKPART> attach vdisk
DISKPART> create partition primary
DISKPART> format fs=ntfs label="VirtualData" quick
DISKPART> assign letter=V
type=fixed sabit boyutlu VHD oluşturur. type=expandable kullanırsan dinamik genişleyen VHD elde edersin, bu daha az yer kaplar başlangıçta ama performansı biraz daha düşük olabilir.
VHDX formatı için:
DISKPART> create vdisk file="C:VirtualDisksDataDisk.vhdx" maximum=51200 type=expandable
VHD Detach Etme
DISKPART> select vdisk file="C:VirtualDisksDataDisk.vhd"
DISKPART> detach vdisk
Toplu İşlem için Script Kullanımı
Diskpart’ın en güçlü yanlarından biri script desteği. Bir metin dosyasına komutları yazıp diskpart’a parametre olarak verebilirsin. Bu özellik deployment senaryolarında hayat kurtarır.
Örnek senaryo: Her ay yeni sunucular devreye alınıyor ve hepsinde aynı disk yapılandırması yapılması gerekiyor. Bunu her seferinde elle yapmak hem zaman alır hem hata riski doğurur.
disk_setup.txt dosyası oluştur:
select disk 0
clean
convert gpt
create partition efi size=100
format fs=fat32 label="EFI" quick
create partition msr size=128
create partition primary size=102400
format fs=ntfs label="OS" quick
assign letter=C
create partition primary
format fs=ntfs label="Data" quick
assign letter=D
exit
Sonra CMD’den çalıştır:
diskpart /s disk_setup.txt
Bu yaklaşımı MDT (Microsoft Deployment Toolkit) veya WDS scriptleriyle birleştirince tam otomatik bir deployment pipeline kurabilirsin.
Önemli Senaryolar ve Çözümleri
Senaryo 1: “Disk Management’ta Genişletme Grileşti”
Bu çok sık yaşanır. Extend Volume seçeneği tıklanamaz durumda. Sebebi genellikle ya ardında boş alan yok ya da arada başka bir partition var. Diskpart ile durumu kontrol et:
DISKPART> select disk 0
DISKPART> list partition
Eğer arada Recovery partition varsa ve sistemi küçük bir disk üzerine klonlamışsan bu sorunla karşılaşırsın. Recovery partition’ı sona taşıman gerekir ama diskpart bunu desteklemez, bu durumda diskpart ile Recovery partition’ı silersin (yedeğini aldıktan sonra!), extend yaparsın, sonra yeniden oluşturursun.
Senaryo 2: Disk “Offline” Görünüyor
SAN’dan gelen yeni bir LUN ya da başka bir sunucudan taşınan disk offline geliyorsa:
DISKPART> list disk
DISKPART> select disk 2
DISKPART> online disk
DISKPART> attributes disk clear readonly
Windows Server’ın güvenlik politikası gereği SAN disklerini otomatik olarak readonly ve offline getirebilir. attributes disk clear readonly komutu bunu düzeltir.
Senaryo 3: USB Diski FAT32’ye Formatlama
Windows’un GUI’si 32GB’dan büyük sürücüleri FAT32 formatlamana izin vermez ama diskpart bu kısıtlamayı aşar:
DISKPART> list disk
DISKPART> select disk 3
DISKPART> clean
DISKPART> create partition primary
DISKPART> format fs=fat32 label="Backup" quick
DISKPART> assign letter=F
Bu özellikle büyük USB belleklerle çalışırken ya da FAT32 zorunlu olan cihazlar için hazırlık yaparken işe yarar.
Diskpart Çıktılarını Yorumlamak
list disk çıktısında bazı durumlar özellikle dikkat ister:
- Status: No Media – Bu sürücü yuvası dolu değil veya medya okunamıyor
- Status: Missing – Disk fiziksel olarak var ama şu an ulaşılamıyor, genellikle SAN bağlantısı kesildiğinde
- Status: Failed – Disk sorunlu, donanımsal arıza olabilir
- Dyn sütununda yıldız (*) – Dynamic disk, bu disklerde partition yerine volume kavramı geçerli
- Gpt sütununda yıldız (*) – GPT bölümleme tablosu kullanıyor
list volume çıktısında:
- Healthy – Normal çalışıyor
- Failed Redundancy – RAID volume’unda bir disk bozulmuş, yedeklilik kaybolmuş
- Formatting – Format devam ediyor
- Rebuilding – RAID rebuild sürüyor
Dikkat Edilmesi Gereken Noktalar
Diskpart ile çalışırken bazı kuralları aklında tutmak veri kaybını önler:
cleankomutu geri alınamaz. Diskpart senden “emin misin?” diye sormaz. Doğru diski seçtiğinden emin ol,list diskile kontrol et, sonracleanyap.- Sistem diski üzerinde çalışırken dikkatli ol.
select disk 0çoğunlukla işletim sistemi diskidir. Yanlış silme işlemi sistemi boot edemez hale getirir. - Quick format gerçek silme değil.
format quicksadece file system tablosunu temizler, veri kurtarılabilir. Güvenli silme gerekiyorsa slow format ya daclean allkullan (bu tüm sektörleri sıfırlar, uzun sürer). - Production ortamda test et. Diskpart scriptlerini önce test ortamında dene, sonra production’a geçir.
- Snapshot’ları kontrol et. VSS snapshot’ları ve Hyper-V checkpoint’leri disk işlemlerini etkileyebilir, önce bunları kontrol et.
Faydalı Diskpart Komutları Özeti
Hızlı referans için sık kullandığım komutlar:
- list disk: Tüm fiziksel diskleri listeler
- list volume: Tüm volume’ları listeler
- list partition: Seçili diskin partition’larını listeler
- select disk N: N numaralı diski seçer
- select volume N: N numaralı volume’u seçer
- select partition N: N numaralı partition’ı seçer
- detail disk: Seçili disk hakkında detaylı bilgi
- detail volume: Seçili volume hakkında detaylı bilgi
- clean: Seçili diskteki tüm veriyi siler
- clean all: Diskteki tüm sektörleri sıfırlar (güvenli silme)
- convert gpt: Diski GPT’ye dönüştürür
- convert mbr: Diski MBR’ya dönüştürür
- create partition primary: Primary partition oluşturur
- create partition efi: EFI system partition oluşturur
- create partition msr: Microsoft reserved partition oluşturur
- delete partition: Seçili partition’ı siler
- format fs=ntfs quick: Hızlı NTFS format
- assign letter=X: Drive letter atar
- remove letter=X: Drive letter kaldırır
- extend: Volume’u genişletir
- shrink: Volume’u küçültür
- active: Partition’ı bootable yapar
- online disk: Offline diski online getirir
- offline disk: Diski offline yapar
- attributes disk clear readonly: Readonly özelliğini kaldırır
- exit: Diskpart’tan çıkar
- rescan: Diskleri yeniden tara
Sonuç
Diskpart, her Windows sistem yöneticisinin toolbox’ında mutlaka olması gereken bir araç. İlk bakışta basit görünen bir komut satırı aracı ama içine girince ne kadar güçlü olduğunu anlıyorsun. Özellikle Server Core ortamları yaygınlaştıkça, PowerShell DSC ve otomatik deployment pipeline’ları hayatımıza girdikçe, diskpart scriptleri daha da değerli hale geliyor.
En önemli tavsiyem: Bu komutları üretim ortamında uygulamadan önce mutlaka bir test VM’inde dene. clean komutunun affetmediği ortamlarda çalışıyoruz ve “geri al” tuşu yok. İkinci önemli nokta: Hangi disk numarasını seçtiğini her zaman list disk ile doğrula, disk sıralaması her boot sonrasında veya yeni disk eklendiğinde değişebilir.
Diskpart’ı iyi öğrendiğinde, yeni sunucu kurulumlarını otomatize etmek, sorunlu diskleri komut satırından çözmek ve hatta boot edilemeyen sistemleri WinPE üzerinden kurtarmak gibi kritik işlemleri güvenle yapabilirsin. Bu bilgi, özellikle gece yarısı bir production sunucusunda disk sorunu yaşandığında seni rahatlatacak.