How to Configure Disk Management and Storage Spaces on Windows Server 2025
Effective storage management is a foundational skill for any Windows Server administrator. Windows Server 2025 provides two complementary toolsets for managing disks and resilient storage: the classic Disk Management MMC snap-in (diskmgmt.msc) and the more powerful Storage Spaces feature, which allows you to pool physical disks into resilient virtual volumes. Whether you need to initialise a freshly installed drive, partition a volume for a new application, or build a mirror pool that survives a disk failure, understanding both layers gives you the flexibility to match the right technology to each workload. This guide walks through the complete workflow — from raw disk to formatted, resilient volume — using both the graphical console and PowerShell, so you can automate everything in a scripted deployment.
Prerequisites
- Windows Server 2025 (Standard or Datacenter) installed and activated.
- Local Administrator or equivalent privileges.
- For Storage Spaces: at least two additional physical or virtual disks attached and unformatted.
- PowerShell 7.x or Windows PowerShell 5.1 — both are supported; examples below use 5.1 syntax available in-box.
- Basic familiarity with the PowerShell console and running commands as Administrator.
Step 1: Open Disk Management and Understand the Interface
The Disk Management MMC snap-in remains the quickest way to get a visual overview of all disks and volumes on a server. Press Win + R, type diskmgmt.msc, and press Enter. The top pane lists all volumes with their file system, status, and capacity. The bottom pane shows each physical disk as a horizontal bar divided into its partitions.
New disks appear as Unknown / Not Initialised. Right-click the disk label in the bottom pane and choose Initialise Disk. You will be asked to choose between two partition styles:
- MBR (Master Boot Record) — legacy style; maximum disk size 2 TB; maximum four primary partitions. Use only for compatibility with very old systems.
- GPT (GUID Partition Table) — modern standard; supports disks larger than 2 TB; up to 128 primary partitions; required for UEFI boot. Always prefer GPT on new deployments.
After initialisation, the disk shows as Online with unallocated space, ready to be partitioned.
Step 2: Initialise and Partition Disks with PowerShell
Graphical tools are useful for ad-hoc work, but PowerShell is essential for repeatable, automated builds. The Storage module is built into Windows Server 2025 and requires no additional installation.
List all disks to find the disk number of your new drive:
Get-Disk | Select-Object Number, FriendlyName, OperationalStatus, PartitionStyle, Size
Initialise an offline or uninitialised disk as GPT:
# Replace 1 with your disk number
Initialize-Disk -Number 1 -PartitionStyle GPT -PassThru
Create a partition using all available space and assign the next available drive letter:
New-Partition -DiskNumber 1 -UseMaximumSize -AssignDriveLetter
To assign a specific drive letter or size, use the -DriveLetter and -Size parameters:
# Create a 500 GB partition on disk 1 and assign drive letter D
New-Partition -DiskNumber 1 -Size 500GB -DriveLetter D
Step 3: Format Volumes with Format-Volume
After creating a partition, format it before use. Windows Server 2025 supports NTFS (general purpose), ReFS (resilient file system for large-scale or Hyper-V workloads), and exFAT (removable media). For server workloads, NTFS or ReFS is appropriate.
# Format drive D as NTFS with a label
Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel "DataDrive" -Confirm:$false
# Format as ReFS for Hyper-V VM storage
Format-Volume -DriveLetter D -FileSystem ReFS -NewFileSystemLabel "VMStorage" -Confirm:$false
ReFS offers built-in integrity checksums, automatic corruption repair, and better performance with large files, making it the preferred file system for Hyper-V virtual machine storage and Storage Spaces deployments.
Step 4: Understand Basic vs Dynamic Disks
Windows historically distinguished between basic disks (standard GPT/MBR partition tables) and dynamic disks (proprietary LDM format enabling software RAID volumes like spanned, striped, or mirrored sets). Dynamic disks are considered legacy in Windows Server 2025. Microsoft has deprecated dynamic disk volumes in favour of Storage Spaces, which offers equivalent and superior functionality through a modern, PowerShell-manageable framework. New deployments should always use Storage Spaces rather than dynamic disk volumes.
Step 5: Create a Storage Pool with Storage Spaces
Storage Spaces virtualises physical disks into a pool from which you carve out resilient virtual disks. First, identify available physical disks that have no existing partitions (CanPool = True):
Get-PhysicalDisk | Where-Object CanPool -eq $true | `
Select-Object FriendlyName, MediaType, Size, CanPool
Create a storage pool from all poolable disks:
$PhysicalDisks = Get-PhysicalDisk | Where-Object CanPool -eq $true
New-StoragePool `
-FriendlyName "DataPool01" `
-StorageSubSystemFriendlyName (Get-StorageSubSystem).FriendlyName `
-PhysicalDisks $PhysicalDisks
Verify the pool was created:
Get-StoragePool | Select-Object FriendlyName, OperationalStatus, HealthStatus, Size, AllocatedSize
Step 6: Create Virtual Disks with Resiliency Settings
A virtual disk (also called a storage space) is carved from a pool with a chosen resiliency level. Storage Spaces supports three resiliency settings:
- Simple — striping across disks for maximum performance; no redundancy; one disk failure loses data. Requires at least one disk.
- Mirror — data is duplicated across two (two-way mirror) or three (three-way mirror) disks; survives one or two disk failures respectively. Requires two or three disks.
- Parity — similar to RAID 5; parity information is striped across disks; more storage-efficient than mirror but with higher write overhead. Requires at least three disks.
# Create a two-way mirror virtual disk
New-VirtualDisk `
-StoragePoolFriendlyName "DataPool01" `
-FriendlyName "MirroredSpace" `
-ResiliencySettingName Mirror `
-UseMaximumSize `
-ProvisioningType Fixed
# Create a parity virtual disk (minimum 3 disks required)
New-VirtualDisk `
-StoragePoolFriendlyName "DataPool01" `
-FriendlyName "ParitySpace" `
-ResiliencySettingName Parity `
-Size 2TB `
-ProvisioningType Fixed
# Create a simple (striped) virtual disk
New-VirtualDisk `
-StoragePoolFriendlyName "DataPool01" `
-FriendlyName "SimpleSpace" `
-ResiliencySettingName Simple `
-Size 500GB `
-ProvisioningType Fixed
Step 7: Initialise and Format the Virtual Disk
A newly created virtual disk appears as an uninitialised disk in the disk stack. Initialise it, create a partition, and format it just like any physical disk:
# Get the disk number for the new virtual disk
$VDisk = Get-VirtualDisk -FriendlyName "MirroredSpace" | Get-Disk
# Initialise, partition, and format in one pipeline
$VDisk | Initialize-Disk -PartitionStyle GPT -PassThru |
New-Partition -UseMaximumSize -DriveLetter E |
Format-Volume -FileSystem ReFS -NewFileSystemLabel "MirroredData" -Confirm:$false
Step 8: Configure Storage Tiers
If your storage pool contains a mix of SSDs and HDDs, Storage Spaces can automatically tier data — placing frequently accessed (hot) data on SSDs and cold data on HDDs. First, verify the media types in your pool:
Get-StorageTier -StoragePoolFriendlyName "DataPool01" | `
Select-Object FriendlyName, MediaType, Size
Create a tiered virtual disk that spans both SSD and HDD tiers:
$SSDTier = New-StorageTier -StoragePoolFriendlyName "DataPool01" `
-FriendlyName "SSDTier" -MediaType SSD
$HDDTier = New-StorageTier -StoragePoolFriendlyName "DataPool01" `
-FriendlyName "HDDTier" -MediaType HDD
New-VirtualDisk `
-StoragePoolFriendlyName "DataPool01" `
-FriendlyName "TieredSpace" `
-ResiliencySettingName Mirror `
-StorageTiers $SSDTier, $HDDTier `
-StorageTierSizes 200GB, 2TB
Step 9: Monitor Storage Pool Health and Maintenance Jobs
Storage Spaces runs background maintenance jobs to scrub data, repair corruption, and regenerate parity. Monitor these with Get-StorageJob:
# List all active storage maintenance jobs
Get-StorageJob
# Check health of all pools and virtual disks
Get-StoragePool | Select-Object FriendlyName, HealthStatus, OperationalStatus
Get-VirtualDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus, ResiliencySettingName
# Check physical disk health
Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus, Usage
# Start a manual integrity scrub on a pool
Get-StoragePool -FriendlyName "DataPool01" | Start-StorageDiagnosticLog
If a virtual disk shows Degraded health (indicating a failed disk), replace the physical disk and trigger repair:
# After physically replacing the failed disk
Get-VirtualDisk -FriendlyName "MirroredSpace" | Repair-VirtualDisk
Step 10: Storage Spaces Direct Overview
Storage Spaces Direct (S2D) extends Storage Spaces to hyper-converged and disaggregated cluster scenarios, allowing nodes to pool their local disks across the network using RDMA or standard Ethernet. S2D is available in Windows Server 2025 Datacenter edition and requires a minimum of two cluster nodes. Enabling S2D replaces the traditional storage subsystem:
# Enable Storage Spaces Direct on a prepared failover cluster
# Run from one cluster node with administrative privileges
Enable-ClusterStorageSpacesDirect -CacheMode Enabled -AutoConfig:$true -SkipEligibilityChecks
# After enabling, create a pool and volumes as normal
Get-ClusterNode | Get-PhysicalDisk | Where-Object CanPool -eq $true
S2D provides software-defined storage with NVMe, SSD, and HDD caching tiers, all managed through the same PowerShell cmdlets and Windows Admin Center as standard Storage Spaces.
Conclusion
Windows Server 2025 offers a rich, layered storage stack that spans from simple disk initialisation through to software-defined, hyper-converged storage clusters. For most standalone server deployments, mastering Initialize-Disk, New-Partition, Format-Volume, and the New-StoragePool / New-VirtualDisk pipeline gives you resilient, maintainable storage that far surpasses the old dynamic disk model. Use mirror resiliency for mission-critical data volumes, parity for bulk capacity workloads, and storage tiers whenever you have a mix of flash and spinning media. For enterprise clusters, Storage Spaces Direct extends these same concepts to deliver scalable, fault-tolerant shared storage without dedicated SAN hardware.