系统磁盘扫描程序详解.docx
- 文档编号:10123438
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:38
- 大小:44.91KB
系统磁盘扫描程序详解.docx
《系统磁盘扫描程序详解.docx》由会员分享,可在线阅读,更多相关《系统磁盘扫描程序详解.docx(38页珍藏版)》请在冰豆网上搜索。
系统磁盘扫描程序详解
磁盘扫描小知识
禁用磁盘扫描功能命令chkntfs/x
重现开机磁盘扫描功能chkntfs/d
Chkdsk/f命令强制对磁盘进行检测和修复,此时会提示“在下次重启时检查这个卷”的提示,回答Y,并重新启动电脑。
在Windows2000/xp/Vista操作系统下,分别有Chkdsk.exe、chkntfs.exe与Autochk.exe三个磁盘扫描工具。
Chkdsk.exe的主要功能是检查硬盘驱动器的完整性,检查磁盘和修复文件系统;Chkntfs.exe的主要功能是手工安排启动时运行Chkdsk进行磁盘检查,可以显示文件系统类型、文件系统“脏字位”状态;Autochk.exe则查找每个卷上的“脏字位”,以及Chkdsk/F和Chkntfs/x所作的注册表位置,决定是检查还是路跳过。
它可以区分是手工安排的卷检查,还是由于文件系统发现卷处于“脏”状态而自动进行卷检查,并会把相应的消息写入应用程序事件日志,该命令不能在Win32模式下运行。
chkdsk用法详解
chkdsk基于所用的文件系统,创建和显示磁盘的状态报告。
Chkdsk还会列出并纠正磁盘上的错误。
如果不带任何参数,chkdsk将显示当前驱动器中的磁盘状态。
语法
chkdsk[volume:
][[Path]FileName][/f][/v][/r][/x][/c][/l[:
size]]
参数
volume:
指定驱动器号(冒号分隔)、装入点或卷名。
[Path}FileName]
指定需要chkdsk检查碎片整理的文件或文件集的位置和名称。
使用通配符(*和?
)可以指定多个文件。
/f
修复磁盘上的错误。
必须锁定磁盘。
如果chkdsk无法锁定驱动器,则会显示一条消息,询问您是否希望在下次重新启动计算机时检查该驱动器。
/v
当检查磁盘时,显示所有目录中每个文件的名称。
/r
找到坏扇区并恢复可读取的信息。
必须锁定磁盘。
/x
仅在NTFS上使用。
如果必要,首先强制卸载卷。
该驱动器的所有打开句柄都无效。
/x还包含了/f的功能。
/i
仅随NTFS使用。
对索引项执行充分检查,降低运行chkdsk的所用时间量。
/c
仅随NTFS使用。
跳过文件夹结构中的周期检查,减少运行chkdsk所需的时间量。
/l[:
size]
仅随NTFS使用。
将日志文件的大小更改为由用户输入的大小。
如果省略该参数,则/l会显示当前日志文件的大小。
/?
在命令提示符显示帮助。
注释
运行chkdsk
要在固定磁盘上运行chkdsk命令,您必须是该Administrators组的成员。
重新启动时检查锁定的驱动器
如果希望chkdsk修复磁盘错误,则此前不能打开该驱动器上的文件。
如果有文件打开,会显示下述错误消息:
Chkdskcannotrunbecausethevolumeisinusebyanotherprocess.Wouldyouliketoschedulethisvolumetobecheckedthenexttimethesystemrestarts?
(Y/N)
如果选择下次重新启动计算机时检查该驱动器,则重新启动计算机后chkdsk会自动检查该驱动器并修复错误。
如果该驱动器分区为启动分区,则chkdsk在检查完该驱动器后会自动重新启动计算机。
报告磁盘错误
chkdsk命令会检查磁盘空间和文件分配表(FAT)以及NTFS文件系统的使用情况。
Chkdsk在状态报告中提供特定于每个文件系统的信息。
状态报告显示文件系统中找到的错误。
在活动分区上运行chkdsk时,如果未含/f命令行选项,则它可能会因为无法锁定该驱动器而报告虚假信息。
应该不定期使用chkdsk检查每个磁盘上的错误。
修复磁盘错误
只有指定/f命令行选项,chkdsk命令才修复磁盘错误。
Chkdsk必须可以锁定驱动器以纠正错误。
由于修复通常会更改磁盘的文件分配表,有时还会丢失数据,所以chkdsk会首先发送如下所示的确认消息:
10lostallocationunitsfoundin3chains.
Convertlostchainstofiles?
如果按Y,Windows会在根目录中将所有丢失链保存在一个名为Filennnn.chk的文件中。
chkdsk结束后,可以查看这些文件是否包含了所需的数据。
如果按N,Windows会修复磁盘,但对于丢失的分配单元,它不保存其内容。
如果不使用/f命令行选项,则在有文件需要修复时,chkdsk会发送消息,但它不修复任何错误。
如果在大磁盘(例如,70GB)或有大量文件(数百万)的磁盘上使用chkdsk/f,这可能要花很长时间(比如说,数天)才能完成。
因为chkdsk直到工作完成它才会交出控制权,所以计算机在这段时间内将不可用。
检查FAT磁盘
Windows以下列格式显示FAT磁盘的chkdsk状态报告:
VolumeSerialNumberisB1AF-AFBF
72214528bytestotaldiskspace
73728bytesin3hiddenfiles
30720bytesin12directories
11493376bytesin386userfiles
61440bytesinbadsectors
60555264bytesavailableondisk
2048bytesineachallocationunit
35261totalallocationunitsondisk
29568availableallocationunitsondisk
检查NTFS磁盘
Windows以下列格式显示NTFS磁盘的chkdsk状态报告:
ThetypeofthefilesystemisNTFS.
CHKDSKisverifyingfiles...
Fileverificationcompleted.
CHKDSKisverifyingindexes...
Indexverificationcompleted.
CHKDSKisverifyingsecuritydescriptors...
Securitydescriptorverificationcompleted.
12372kilobytestotaldiskspace.
3kilobytesin1userfiles.
2kilobytesin1indexes.
4217kilobytesinusebythesystem.
8150kilobytesavailableondisk.
512bytesineachallocationunit.
24745totalallocationunitsondisk.
16301allocationunitsavailableondisk.
存在打开文件的情况下使用chkdsk
如果该驱动器上有打开的文件,则指定/f命令行选项后,chkdsk会发送错误消息。
如果未指定/f命令行选项并且存在打开的文件,则chkdsk会报告磁盘上丢失的分配单元。
如果打开的文件没有记录在文件分配表时,可能会发生这种情况。
如果chkdsk报告大量分配单元丢失,可以考虑修复该磁盘。
查找物理磁盘错误
使用/r命令行选项可查找文件系统中的物理磁盘错误。
报告磁盘坏扇区
在磁盘第一次准备运行时,chkdsk报告的坏扇区标记为损坏。
它们不会造成危险。
chkdsk完成任务后报告的退出码。
0没有发现错误。
1错误已找到并修复。
2已执行清理磁盘(例如碎片收集),或者因为没有指定/f而未执行清理磁盘。
3由于未指定/f选项,无法检查磁盘,错误不能修复或错误未修复。
故障恢复控制台提供了带有不同参数的chkdsk命令。
范例
如果要检查驱动器D中的磁盘,并且希望Windows修复错误,请键入:
chkdskd:
/f
如果遇到错误,chkdsk会暂停并显示消息。
Chkdsk完成任务时会显示列有磁盘状态的报告。
除非chkdsk已完成任务,否则无法打开指定驱动器上的任何文件。
在FAT磁盘上,要检查当前目录中所有文件的不相邻块,请键入:
chkdsk*.*
Chkdsk显示状态报告,然后列出符合具有不相邻块条件的文件。
每次开机都自动检查磁盘,检测通过后下次还是一样,NTFS/FAT32分区都有可能有这样的情况,即使重装系统,仍可能出现同样情况,但是硬盘可以通过Dell随机带的检测程序
解决方法:
在命令行窗口中输入CHKDSK/FX:
(X:
是每次开机都自动检查的磁盘分区)
CHKDSK/F可以恢复文件系统错误,并可以试图恢复坏扇区,如果无法修复就标记坏扇区,以避免文件被误写入导致丢失
如CHKDSK/F提示已修复或无问题,开机仍然自动检查磁盘的情况:
输入CHKNTFS/XE:
(每次启动时不自动检查E:
)
如有多个卷的话这样输入CHKNTFS/XD:
E:
F:
(对FAT32格式分区同样有效)
2007-10-1812:
26最近有好多同事问开机取消磁盘检查方法,而且都强调是正常关机,但是每次开机时会自动询问是否扫描磁盘。
遇到这种问题,可以按照以下步骤进行处理:
(1)运行FsutildirtyqueryDriveLetter命令,检查该磁盘是否设置了DirtyBit。
如果是的话,可能是硬盘本身的问题,请联系硬盘厂商或者计算机经销商进行检测。
如果需要防止系统自动检测标记DirtyBit的卷,可以运行以下命令进行排除:
chkntfs/xDriveLetter
(2)检查任务计划、启动项里有没有相应的加载项,有的话删除即可。
(3)打开注册表编辑器,进入以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\SessionManager
检查其下的多字符串键值BootExecute,是否为类似以下的数值数据:
autocheckautochk/r\?
?
\D:
如果是的话,删除其中/r\?
?
\D:
即可。
如何取消开机磁盘检测
1.选择“开始→运行”,在运行对话框中键入“chkntfs/t:
0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs/xc:
”命令;如果要恢复对C盘的扫描,可使用“chkntfs/dc:
”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。
2、单击“开始→运行”,在“运行”对话框中输入“regedit”打开注册表编辑器,依次选择“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager”子键,然后在右侧窗口中找到“BootExecute”键值项并将其数值清空,最后按“F5”键刷新注册表即可。
(此法可取消开机时系统对所有磁盘的扫描)
注:
C:
\\>chkntfs/?
在启动时显示或修改磁盘检查。
CHKNTFSvolume[...]
CHKNTFS/D
CHKNTFS/T[:
time]\\r\\nCHKNTFS/Xvolume[...]
CHKNTFS/Cvolume[...]
volume:
指定驱动器(后面跟一个冒号)、装入点或卷名。
/D将计算机恢复成默认状态,启动时检查所有驱动器,并对有问题的驱动器执行chkdsk命令。
/T:
time将AUTOCHK初始递减计数时间改成指定的时间量,单位为秒数。
如果没有指定时间,则显示当前设置。
/X排除启动时不作检查的驱动器。
上次执行此命令排除的驱动器此时无效。
/C安排启动时检查驱动器,如果驱动器有问题,运行chkdsk。
如果没有指定命令选项,CHKNTFS会显示每一驱动器有问题的位的状态。
从上面可以看出,输入:
chkntfs/xc:
可以实现非法关机不扫描C盘。
扫描主要是检测非法关机时是否损坏硬盘,并进行一些文件系统修复工作,建议还是不要关闭
把下面复制到文本文件中保存成*.reg文件再执行也可以实现
WindowsRegistryEditorVersion5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SessionManager]
"BootExecute"=hex(7):
61,00,75,00,74,00,6f,00,63,00,68,00,65,00,63,00,6b,00,20,\
00,61,00,75,00,74,00,6f,00,63,00,68,00,6b,00,20,00,2f,00,6b,00,3a,00,43,00,\
20,00,2f,00,6b,00,3a,00,44,00,20,00,2f,00,6b,00,3a,00,45,00,20,00,2f,00,6b,\
00,3a,00,46,00,20,00,2f,00,6b,00,3a,00,47,00,20,00,2f,00,6b,00,3a,00,48,00,\
20,00,2f,00,6b,00,3a,00,49,00,20,00,2a,00,00,00,00,00
:
:
说明:
这是取消自动扫描,从C盘到I盘。
以上字符是16进制,您在这里看不出是什么意思,
:
:
要导入后进注册表相应的键值才能看到是什么意思。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters]
"EnablePrefetcher"=dword:
00000000
:
:
说明:
上面这段是预读取设为0,即不预读,这是和取消自动扫描相结合,否则非法关机,下次
:
:
启动进桌面后会弹出c:
\windows\prefetch目录内文件出错的提示。
:
:
在给人修机时,偶尔遇到某些硬盘有问题的电脑,尽管开机时已经自动扫描过了,下次启动时竟
:
:
然还继续扫描,每次开机都这样。
这时就需要用修改注册表的办法,把扫描取消了。
:
:
注意不要曲解这里的意思:
只是自动被取消,手动并没有取消,您仍然可以手动扫描。
有时候进入系统前会莫名其妙地自动启动chkdsk,如果选择不运行,那么每次进入系统前都会提示,很讨厌,但是如果允许运行,那么有时就会造成系统盘的数据丢失,记得以前还看到过一篇文章说chkdsk有时反而会造成硬盘损坏,是个鸡肋,应该取消。
微软的技术支持给出了三个方法如下:
解决方案
方法1:
从“任务计划”中删除Chkdsk.exe或Autochk.exe程序。
方法2:
检查SessionManager注册表项
方法3:
确认硬盘或文件系统未被损坏
原文太长,详细介绍请查看:
~~~~~~~~~
在方法一中,我在任务计划中没有看到有什么列表,也无法继续操作;在方法二中,找到HKEY_LOCAL_MACHINESystemCurrentControlSetControlSessionManagerBootExecute然后修改时,发现默认的就是文章提示修改键入autocheckautochk*;至于方法三,我没发现硬盘或者文件有损坏,反而是允许chkdsk自动运行后,有时会出现问题。
打开注册表,在
HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Control|SessionManager下找出“BootExecute”键值项并将其数值清空!
本文出自51CTO.COM技术博客
如何禁止开机磁盘扫描
1.必须以某管理员身份登录WindowsXP
2.运行cmd打开命令提示符
3.输入“chkntfs/x[盘符]”即可。
例如,如果想屏蔽C盘的磁盘扫描,则输入chkntfs/xc:
即可。
4.要重新开启磁盘扫描程序,运行chkntfs/dc:
命令即可。
备注
Chkntfs简介:
当Windows在非正常关机后重新启动时,禁止在特定卷上自动运行chkdsk。
解决每次开机都要扫描磁盘方法
解决每次开机都要扫描磁盘方法
问题故障:
我的windowsxpsp2系统现在不知道是什么原因,不管是正常关机还是非正常关机,启动时都会自动扫描D盘,我用了chkdsk/f命令和诺顿磁盘医生,pq8等工具修复都没用,也没检查出磁盘有坏道。
解决方案:
在确定硬盘没有问题的情况下,请单击“开始→运行”,在“运行”对话框中输入“regedit”打开注册表编辑器,依次选择“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager”子键,然后在右侧窗口中找到“BootExecute”键值项并将其数值清空,最后按“F5”键刷新注册表即可。
重启后你会发现一切恢复正常!
您可以下以下指令,就可以解決了:
chkntfs/xd:
-------------------------------------------------------------------------------------------------------------------------------------------
在注册表里禁止开机自检硬盘:
运行Regedit,进入注册表然后找到下面的键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager
再找到右边这个值:
BootExecute把里面的数据全部删除,这样就可以彻底禁止重启的时候运行磁盘扫描程序。
-------------------------------------------------------------------------------------------------------------------------------------------
以下二法:
方法一:
如果没一次自检是不是按键盘跳过自检,?
请不要跳过让他完成自检,如果还是这样,那你的硬盘就有坏道了,你可以!
选择“开始→运行”,在运行对话框中键入“chkntfs/t:
0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs/xc:
”命令;如果要恢复对C盘的扫描,可使用“chkntfs/dc:
”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。
方法二:
明明是正常关机,但是每次开机时会自动询问是否扫描磁盘。
遇到这种问题,可以按照以下步骤进行处理:
(1)运行FsutildirtyqueryDriveLetter命令,检查该磁盘是否设置了DirtyBit。
如果是的话,可能是硬盘本身的问题,请联系硬盘厂商或者计算机经销商进行检测。
如果需要防止系统自动检测标记DirtyBit的卷,可以运行以下命令进行排除:
chkntfs/xDriveLetter
(2)检查任务计划、启动项里有没有相应的加载项,有的话删除即可。
(3)打开注册表编辑器,进入以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\SessionManager
检查其下的多字符串键值BootExecute,是否为类似以下的数值数据:
autocheckautochk/r\?
?
\D:
如果是的话,删除其中/r\?
?
\D:
即可。
不过也可以改参数,把BootExecute里面的autocheckautochk*改成autocheckautochk/k:
E*
这里的E是表示盘符。
这里的autocheckautochk/k:
E*是表示不检测E盘。
=========================附注=============================
chkntfs与chkdsk含义比较
2008年06月12日星期四下午06:
38
chkntfs与chkdsk
Microsoft已经开发了Chkntfs.exe实用工具,该实用工具可以在MicrosoftWindowsNT4.0ServicePack2及更新版本的Windows中找到。
该实用工具被设计为:
当Windows在非正常关机后重新启动时,禁止在特定卷上自动运行chkdsk。
如果使用chkdsk/f安排了在下一次系统重新启动时在活动卷上运行chkdsk,则也可以使用chkntfs来取消安排chkdsk。
chkntfsdrive:
[...]
chkntfs/d
chkntfs/xdrive:
[...]
chkntfs/cdrive:
[...]
drive:
指定驱动器号。
/D 将计算机还原为默认状态,启动时检查所有驱动器并对有问题的驱动器执行chkdsk命令。
这将取消/X选项的效果。
/X 排除默认启动时检查的驱动器。
上次执行此命令排除的驱动器此时无效。
/C 如果已经设置了非正常位,则安排在下一次重新启动时运行chkdsk。
示例:
chkntfs/xc:
此命令禁止chkdsk在驱动器C:
上运行
chkntfs/xd:
e:
此命令禁止chkdsk在驱动器D:
和E:
上运行
chkntfs/x命令不是累积性的,该命令会覆盖以前建立的任何驱动器排除项。
在上面的示例中,chkntfs命令只禁止chkdsk在驱动器D和E上进行检查,不检查驱动器C是否存在非正常位。
chkntfs/xc:
意思是chkntfs指令Chkdsk/f安排在下一次重新启动时自行运行,即不进行对C盘扫描。
Chkdsk/f永远不能在那些被排除在chkntfs执行的非正常位检查的范围之外的卷上运行,意思是指对C盘以外的盘符还是要进行磁盘扫描(chkdsk)的。
在默认情况下,扫描每个分区前会等待10秒钟,用户此时可以按任意键跳过扫描继续启动。
但如果每个分区都要等上10秒才能开始进行扫描,再加上扫
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 磁盘 扫描 程序 详解