STATUS_BAD_CLUSTERS (0xC0000805): Fix bad disk clusters on Windows Server
This error hits when Windows can't read from a disk with bad sectors. Most common on aging servers or after a power spike.
When This Error Shows Up
You're working on a Windows Server 2016 or 2019 box, maybe running SQL Server or a file share, and suddenly you can't open a file or a backup job fails cold. The event log throws STATUS_BAD_CLUSTERS (0xC0000805). I've seen this pop up most often after an unexpected power loss on an older RAID 5 array, or when a drive starts clicking and the system tries to read from a bad spot. Last month, a client's Hyper-V host started throwing this error on a VM disk—turned out the underlying storage had bad sectors the RAID controller hadn't mapped out yet.
What's Actually Happening
At the hardware level, your disk has sectors that went bad. They can't hold data reliably anymore. When NTFS tries to read from one of those sectors, it fails and throws this error. The OS isn't broken—your disk is. The real fix is to identify the bad clusters, mark them so the OS won't use them again, and recover any data you can. If you're on a hardware RAID, the controller might handle this transparently, but you still need to verify.
Step-by-Step Fix
1. Check S.M.A.R.T. status first
Before you run chkdsk, check if the drive is about to die entirely. Open a command prompt as admin and run:
wmic diskdrive get statusIf it says Bad or Caution, replace the drive now. I've seen people waste hours on software fixes when the drive was already a ticking time bomb.
2. Run chkdsk with the right flags
The standard recovery tool is chkdsk. But don't just run it plain—you need the /f and /r flags. /r finds bad sectors and recovers readable data. /f fixes file system errors. Run this from an elevated command prompt:
chkdsk C: /f /rIf it's the system drive, it'll ask you to schedule a scan at next reboot. Say Y and restart. For non-system drives, it runs immediately. This can take hours on large volumes—plan accordingly.
3. Wait for the scan to complete
During the scan, chkdsk will show a progress bar and report any bad clusters it finds. It'll mark them in the NTFS bit map as unusable, so future reads skip them. If the scan hangs for more than 30 minutes at the same percentage, your drive might be too far gone—consider data recovery software or a replacement.
4. After the scan, check the logs
Once done, view the chkdsk results via Event Viewer. Go to Windows Logs > Application and look for events from Wininit (source). Or run:
Get-WinEvent -LogName Application | Where-Object { $_.ProviderName -eq 'Wininit' } | Format-List TimeCreated, MessageThis tells you exactly how many bad clusters were found and whether data was recovered.
5. Verify the error is gone
Try the operation that triggered the error. If it's a specific file, copy it to another location first. If the error returns, you've got more bad clusters or the file header is toast—skip to the next section.
What to Check If It Still Fails
If chkdsk ran clean but the error persists, don't assume the problem is fixed. Here's what I'd check:
- Cable issues: Loose or failing SATA/SAS cables can cause intermittent read errors that mimic bad clusters. Reseat cables on both ends.
- RAID controller: Some controllers silently hide bad sectors from the OS. Check the RAID management tool for the disk status. I've seen an Adaptec 6805 report a drive as healthy while it was literally clicking.
- NTFS corruption: If chkdsk didn't fix it, try
sfc /scannowon system drives, ordism /online /cleanup-image /restorehealth. But these rarely address bad clusters directly. - Backup and replace: Honestly, if you're seeing this error repeatedly, the drive is compromised. Backup everything you can and swap it out. Had a client last year who ignored it after a single chkdsk fix—three days later the whole array crashed.
Pro tip: If the data on the affected volume is critical and you're not comfortable with chkdsk, use a tool like SpinRite or HDD Regenerator before the OS tries to read the bad area. They can sometimes recover data without marking the sector bad. But this is advanced—don't try it if you're not prepared to lose the data.
The bottom line: 0xC0000805 is your disk crying for help. Listen to it. Run chkdsk, check S.M.A.R.T., and if it comes back, replace the drive. Don't put it off—I've seen too many servers go down because someone thought a reboot would fix it.
Was this solution helpful?