Windows Server  ·  critical  ·  Storage, SAN & file services

Storage Spaces virtual disk detached or degraded

A physical disk has been lost from the pool. Whether the data is still available depends on the resiliency and how many are missing.

What you see

A virtual disk shows Detached or the volume is inaccessible. Get-VirtualDisk reports Degraded or Incomplete health.

What is actually wrong

A failed or removed physical disk, a pool that has no free space to repair into, or disks that did not enumerate in time at boot.

Codes and articles

Event 200 StorageSpacesDetachedIncompleteDegradedRetired physical diskNo Redundancy

Fixes (2)

Replace the disk and repair the space
Elevated PowerShell2–12 hoursmedium riskreversible

Degraded but online. Act promptly — a second failure on a two-way mirror loses the data.

  1. Identify the failed disk and its physical location.

    PowerShell
    Get-PhysicalDisk | Format-Table FriendlyName,SerialNumber,MediaType,HealthStatus,OperationalStatus,Usage,SizeGet-VirtualDisk | Format-Table FriendlyName,ResiliencySettingName,HealthStatus,OperationalStatus,Size
  2. Turn on the identification light where the enclosure supports it, so the right disk is pulled.

    PowerShell
    Get-PhysicalDisk -SerialNumber ABC123 | Enable-PhysicalDiskIndication

    Pulling the wrong disk from a degraded pool loses everything. Thirty seconds with the identification light removes the guesswork entirely.

  3. Retire the failed disk so the pool stops trying to use it.

    PowerShell
    Get-PhysicalDisk -SerialNumber ABC123 | Set-PhysicalDisk -Usage Retired
  4. Add the replacement to the pool.

    PowerShell
    $pool = Get-StoragePool -FriendlyName Pool1Get-PhysicalDisk -CanPool $true | Add-PhysicalDisk -StoragePool $pool
  5. Start the repair and watch it.

    PowerShell
    Get-VirtualDisk -FriendlyName Data | Repair-VirtualDiskGet-StorageJob | Format-Table Name,JobState,PercentComplete,BytesProcessed
  6. Remove the retired disk once the repair completes.

    PowerShell
    Get-PhysicalDisk -SerialNumber ABC123 | Remove-PhysicalDisk -StoragePool (Get-StoragePool -FriendlyName Pool1)
  7. Keep free space in the pool equal to at least one disk, so a future repair can start without waiting for a replacement.

    A pool with no free capacity cannot begin repairing until new hardware arrives, which extends the window in which a second failure is fatal.

Confirm it workedHealth is Healthy and no storage jobs remain.
PowerShell
Get-VirtualDisk | Format-Table FriendlyName,HealthStatus,OperationalStatusGet-StorageJob
If you need to undo itSet-PhysicalDisk -Usage AutoSelect returns a retired disk to service if it was retired in error.
Reattach a detached virtual disk
Elevated PowerShell60 minuteshigh riskreversible

Detached or Incomplete.

  1. Establish which physical disks are missing.

    PowerShell
    Get-StoragePool | Format-Table FriendlyName,HealthStatus,OperationalStatus,IsReadOnlyGet-PhysicalDisk | Format-Table FriendlyName,SerialNumber,HealthStatus,OperationalStatus,Usage
  2. Check cabling and controller before any software action. A detached space is frequently a loose SAS cable or an enclosure that lost power, and reattaching without fixing that will not hold.

    Storage Spaces detaches to protect data when it cannot see enough disks. Forcing it back online with disks still missing is how a recoverable situation becomes a lost one.

  3. Clear the read-only flag on the pool, which is set automatically when it detaches.

    PowerShell
    Get-StoragePool -FriendlyName Pool1 | Set-StoragePool -IsReadOnly $false
  4. Reattach the virtual disk.

    PowerShell
    Get-VirtualDisk -FriendlyName Data | Connect-VirtualDiskGet-VirtualDisk | Format-Table FriendlyName,HealthStatus,OperationalStatus
  5. Bring the disk online and check the filesystem.

    PowerShell
    Get-Disk | Where-Object OperationalStatus -eq 'Offline' | Set-Disk -IsOffline $falseRepair-Volume -DriveLetter E -Scan
  6. If more disks are missing than the resiliency can tolerate, the data is not recoverable from the pool and the answer is the backup.

Confirm it workedThe volume mounts and Repair-Volume -Scan reports no problems.
PowerShell
Get-Volume | Format-Table DriveLetter,FileSystemLabel,HealthStatus,SizeRemaining
If you need to undo itNone. Do not force anything online with disks missing beyond the resiliency level.

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.