How to check disk health in Windows

Table of Contents

For high level guidance on how to perform an overall hardware health check of a Windows machine, refer to the following KB article: https://stefanos.cloud/kb/how-to-perform-hardware-health-checks-in-windows/.

Case #

You need to either proactively check the disk health and integrity in any Windows based computer as part of period maintenance or resolve disk-related issues.

Solution #

The following tools can be used to check disk health in any Windows-based system.

  • chkdsk. Documentation is available at: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk
  • sfc /scannow. Documentation is available at: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/sfc
  • DISM /Online /Cleanup-Image /ScanHealth. Documentation is available at: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/deployment-image-servicing-and-management--dism--command-line-options.
  • In case a restoration of the component store is required with DISM, then the following command can be used. This assumes that you have a healthy computer with same Windows operating system version, whose C:\Windows folder can be made accessible via SMB share.
    DISM /Online /Cleanup-Image /RestoreHealth /Source:\\UNCPathToWindowsCleanSystemFolder[C:\Windows] /LimitAccess

An alternative DISM restoration option is to run the following command. This assumes that you have generated the Windows iso image and that you have mounted the image to computer which is accessible by the computer having the issue (locally or via SMB share). You can create the ISO file by using the Microsoft media creation tool for Windows 10 or Windows 11.

#First get image info to ensure that you are using the correct wim image index for your DISM restore health operation. Run below commands after having mounted the Windows ISO and having shared its path via SMB share.
DISM /Get-ImageInfo /ImageFile:[WIM_FILE_PATH/install.wim] [/Index:image_index]
DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:E:\Sources\install.wim:1 /LimitAccess

The dism health check and restoration commands can also be run from within a Powershell terminal, as shown below.

#CheckHealth
Repair-WindowsImage -CheckHealth
#ScanHealth
Repair-WindowsImage -ScanHealth
#RestoreHealth
Repair-WindowsImage -RestoreHealth

Last but not least, always review the sfc.exe log file (CBS.log, which is located at %windir%\logs\cbs\cbs.log), to ensure that you understand the root cause of any errors found. You can review the whole file or run the command below to search for [SR] tags only.

findstr /c:"[SR]" %windir%\logs\cbs\cbs.log >sfcdetails.txt

There are known cases in which errors in the sfc.exe /scannow check do not necessarily mean there is an issue (false flags), such as the cases below:

Finally, there are more third party tools available for checking the health of your disk, either HDD or SSD. You should first refer to your disk manufacturer for any diagnostic and health check tools available by them. One generic disk health check tool example is CrystalDiskInfo: https://crystalmark.info/en/software/crystaldiskinfo/.

To check the available disks, volumes and partitions on a Windows machine, you can make use of the diskpart.exe tool.

Diskpart.exe

Also the diskmgmt.msc MMC snap-in allows for logical management of all discs from a GUI environment.

Other free tools such as GParted in Linux and EaseUS in Windows also allow you to manage partitions in Windows systems.

Powered by BetterDocs