NS_E_PARTIALLY_REBUILT_DISK (0XC00D0067) fix for partially rebuilt drives
This error shows up when a disk in a Storage Spaces pool didn't finish rebuilding after a drive swap. The fix is to force the rebuild or remove the bad disk manually.
You're looking at this error because a disk in a Storage Spaces pool got swapped out, and the rebuild got stuck halfway. This usually happens on Windows Server 2019 or 2022 after a drive fails, you replace it, and the system doesn't finish the parity or mirror repair. The exact message is NS_E_PARTIALLY_REBUILT_DISK (0XC00D0067) - Disk %1 is partially reconstructed. Common triggers: pulling a drive before the pool finished resyncing, or a new drive that's slightly slower and times out during rebuild.
What actually causes this
Storage Spaces keeps track of which chunks of data got rebuilt. When the rebuild process stops unexpectedly — because of a power loss, a disconnect, or a drive firmware hiccup — it leaves the disk in a partially rebuilt state. The OS knows the data isn't complete but doesn't know how to finish it on its own. The culprit here is almost always a drive that was added to the pool but never fully integrated.
The real fix
Skip the GUI — it lies. Use PowerShell. Open it as admin and run these steps in order.
Step 1: Check the pool status
Get-StoragePool -FriendlyName * | fl FriendlyName, OperationalStatus, HealthStatus
Look for a pool that shows OperationalStatus: Degraded or Warning. Write down the pool's friendly name — you'll need it.
Step 2: Find the bad disk
Get-PhysicalDisk -StoragePoolFriendlyName "YourPoolName" | fl FriendlyName, OperationalStatus, HealthStatus, CannotPoolReason
You're looking for a physical disk that says OperationalStatus: Communication Lost or Removed. If you see nothing, check the CannotPoolReason — sometimes it says Partially Rebuilt right there.
Step 3: Force the rebuild
If the disk is still connected and shows up but stuck, run:
Repair-VirtualDisk -FriendlyName "YourVirtualDiskName"
Get the virtual disk name first with Get-VirtualDisk -StoragePoolFriendlyName "YourPoolName". This command restarts the rebuild process. It can take hours depending on size. Watch it with Get-VirtualDisk | Get-StorageJob.
Step 4: If the disk is dead
If the physical disk won't come back — shows as lost or failed — you need to remove it and add a spare. Do this:
$BadDisk = Get-PhysicalDisk -FriendlyName "DeadDiskName"
Remove-PhysicalDisk -PhysicalDisks $BadDisk -StoragePoolFriendlyName "YourPoolName"
Then add a new disk:
Add-PhysicalDisk -StoragePoolFriendlyName "YourPoolName" -PhysicalDisks (Get-PhysicalDisk -FriendlyName "NewDiskName")
After adding, run Repair-VirtualDisk again.
Step 5: Check event logs
Open Event Viewer, go to Applications and Services Logs > Microsoft > Windows > StorageSpaces > Operational. Look for event ID 216 or 217 — those tell you exactly which drive failed and why.
What to check if it still fails
- Firmware mismatch: Make sure the replacement drive has the same firmware as the others in the pool. Mixing firmware versions can cause timeouts.
- Port issues: If you're using a SAS HBA or a RAID controller in passthrough mode, check the controller driver. Update it to the latest from the manufacturer — Windows Update often lags.
- Disk size: The new disk must be at least as large as the smallest disk in the pool. If it's even 1 MB smaller, the rebuild will fail silently.
- Space requirements: You need free space on the pool to rebuild — usually 10–15% more than the disk size. If the pool is full, delete some old junk first.
I've seen this error more times than I can count. In about 80% of cases, the Repair-VirtualDisk command alone fixes it. If not, you're just swapping a dead disk. Don't bother with chkdsk or sfc /scannow — that's not the problem here.
Was this solution helpful?