windows有自带的硬盘扫描程序
在开始-运行里输入cmd
然后输入chkdsk x:就会扫描硬盘,如果有报错的话就改为chkdsk x:/f
能修复逻辑坏道.(x为你的目标盘符)
如果是物理坏道可以使用一些低格工具来对坏道屏蔽.
建议:如果不熟悉低级格式化不要自己动手
取消windows启动过程中检测硬盘
  如果我们意外断电或者非正常关机,则下次重启windows时会被要求检测硬盘,蓝的界面,一大堆的英文字母。如果能顺利通过也就罢了。我就碰到一个情况,它要求检测H:盘,我允许了,结果0%,怎么也检测不过去,直接就是停止在那里不动了。从百度上得到的解决方法:
  在注册表里禁止开机自检硬盘:
  运行Regedit,进入注册表然后到下面的键值: 
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 再到右边
  这个值:BootExecute把里面的数据全部删除,这样就可以彻底禁止重启的时候运行磁盘扫描程序。 
  不过也可以改参数,把BootExecute里面的autocheck autochk * 改成autocheck autochk /k:E * 
  这里的E是表示盘符。这里的utocheck autochk /k:E *是表示不检测E盘。
  其中我一不小心,将BootExecute的键值也删除了,于是,在开机时出现“au program not found—skipping AUTOCHECK”,解决方法:在注册表中增加相关的键值
进入注册表  BootExecute——它位于注册表中〔HKEY_LOCAL_MACHINE\\System\\ControlSet001\\Session Manager\\〕下面,有一个名为BootExecute的多字符串值键,它的默认值是"autocheck autochk *",用于系统启动时的某些自动检查。这个启动项目里的程序是在系统图形界面完成前就被执行的,所以具有很高的优先级。