首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Windows 9X | Linux&Uinx | Windows Server | 其它操作系统 | Vista | FreeBSD | Windows 7 |
首页 > 操作系统 > Windows 95/98/XP > 全面剖析windows 2000/xp的磁盘扫描功能 > 正文

全面剖析windows 2000/xp的磁盘扫描功能

出处:天极网 作者:陈宏力 时间:2004-7-12 16:06:00
 Windows2000/XP 系统磁盘扫描已经升级到卷的高度,不再是简单的 SCANDISK。卷被定义为包含文件系统的分区,它可以用驱动器号/卷安装点或全局唯一标识符(GUID) 来寻址。我们可以在系统运行时强制进行卷检查,或安排在重新启动时进行卷检查,如果使用脚本还可以更准确地控制何时在卷上进行文件系统检查。要掌握磁盘扫描特点,需要灵活使用下面相互关联的3个工具:Chkdsk.exe、 Chkntfs.exe 以及Autochk.exe。让我们先来简单认识一下他们。

    chkdsk.exe

    检查硬盘驱动器的完整性,检查磁盘和修复文件系统就靠它了。chkdsk.exe 同时可以恢复文件系统错误, 并可以试图恢复坏扇区,如果无法修复就标记坏扇区,以避免文件被误写入导致丢失。

    Chkntfs.exe

    显示文件系统类型、文件系统“脏字位”状态,以及手工安排启动时运行 Chkdsk进行卷检查,或取消所 有安排的检查项目等。

    Autochk.exe

    查找每个卷上的“脏字位”,以及 Chkdsk /F 和 Chkntfs /X 或 /C 所作的注册表设置,决定是检查卷, 还是跳过检查。它可以区分是手工安排的卷检查,还是由于文件系统发现卷处于“脏”状态而自动进行卷检查 ,并会把相应的消息写入应用程序事件日志。该命令不能在 WIN32 模式下运行。

    一、在系统运行时强制进行卷检查

    安装 Windows2000/XP 后,“系统工具”文件夹中不显示磁盘扫描命令。不是没有了,具体这样做:

    双击我的电脑,然后右键单击要检查的硬盘驱动器。

    单击属性,然后单击工具。

    在查错下,单击开始检查。

    这样就可以在 Windows 中检查硬盘驱动器的完整性了。

    或者到命令提示符下执行CHKDSK /X 命令。

    /X 是一个新的命令参数,它运行 Chkdsk /F,并强制执行卷卸除,关闭非系统卷上打开的文件句柄,以 便立即对卷进行检查。这样,要运行 Chkdsk 并修复卷,就不必重新启动。

    二、安排在下一次重新启动时进行卷检查

    Autochk 通过有2个因素控制是否进行卷检查或跳过检查。一个是当文件系统检测到问题时,系统自己设置 的“脏字位”,设置脏字位的的目的就是为了在下次启动时对卷进行检查。 另一个是人工安排,既用 Chkdsk  /F 和 Chkntfs /X 或 /C 所作的注册表设置。通过 Chkntfs volume:命令可以查询文件系统类型、文件系统 “字位”状态,以及是否已手工安排启动时运行 Chkdsk 进行卷检查等信息。

    Autochk 在确定启动时检查哪些卷所使用的注册表项为:
  Hkey_local_machine\System\CurrentControlSet\Control\Session Manager\BootExecute:REG_MULTI_SZ:  autocheck autochk *

    这是 Autochk 的默认设置,也是使用 Chkntfs /d 安排启动时检查所有卷所得到的结果。

    下面通过设置或重设注册表,来控制 Autochk。

  命令             BootExecute键植

  Chkdsk C: /F         autochk /p \??\C: 
  Chkdsk C:\mountpoint /F    Autocheck autochk /p \??\VOLUME{GUID} 
  Chkntfs D: E: /X       Autocheck autochk /k:D /k:E * 
  Chkntfs G: /C        Autocheck autochk /m \??\G: 

  注解:

  /P \??\Volume:         安排 Chkdsk 无条件地运行来检查卷。 
  /p \??\VOLUME{GUID}      安排 Chkdsk 无条件地运行来检查卷安装点。 
  /k:Volume *          不对卷执行 Chkdsk 检查。 
  /m \??\Volume:         让 Autochk 仅查找卷上的脏字位,如果已设置脏字位,则运行 Chkdsk。 

    另外,Chkntfs /T:time: 在默认情况下,开机时扫描每个分区前会等待10秒钟,用户此时可以按任意键 跳过扫描继续启动。该参数就是用来设置等待时间的,即将Autochk 超时值改为指定时间(秒数),如果没有指定时间,则显示当前设置。系统在注册表项 key_local_machine\System\CurrentControlSet\Control\SessionManager\下增加一个键:AutoChkTimeOut,类型为 REG_DWORD,数值为当前设置的超时值。


    三、用脚本从程序中安排卷的修复日程

    由于可以通过设置或重设注册表,来控制 Autochk,因此可使用脚本,从程序中安排卷的修复日程。

    在记事本程序中,使用.VBS文件扩展名存储相应文件(例如:MyScript.vbs)。同时,建议您在一个公共文 件夹(例如:C:\Scripts)中保存这些脚本。打开命令行窗口。如果需要,使用cd命令切换到用以存储脚本的 文件夹中。在命令行窗口中,输入csript 命令并在其后跟随脚本名称。

    例如:

  cscript myscript.vbs

    1、修改 AutoChk 的 Timeout 值

    为 Autochk.exe 设定自动延迟时间为 30 秒。适用于 Windows XP 或 Windows 2003 Server。

  strComputer = "."
  Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set colAutoChkSettings = objWMIService.ExecQuery _
  ("Select * from Win32_AutochkSetting")
  For Each objAutoChkSetting in colAutoChkSettings
  objAutoChkSetting.UserInputDelay = 30
  objAutoChkSetting.Put_
  Next

    2、防止 AutoChk 在开机时自动运行
 
    即使电脑下次开机时,就算 C盘的 "字位" 已被设定, Autochk 也不会对C磁盘执行检查。适用于  Windows XP 或 Windows 2003 Server。

  strComputer = "."
  Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set objDisk = objWMIService.Get("Win32_LogicalDisk")
  errReturn = objDisk.ExcludeFromAutoChk(Array("C:"))
  Wscript.Echo errReturn

    3、执行 ChkDsk

    对电脑的D盘执行ChkDks.exe。适用于 Windows XP 或 Windows 2003 Server。

  Const FIX_ERRORS = True
  strComputer = "."
  Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set objDisk = objService.Get("Win32_LogicalDisk.DeviceID='D:'")
  errReturn = objDisk.ChkDsk(FIX_ERRORS)
  Wscript.Echo errReturn

    4、安排在电脑下一次重新启动时,对 C 盘执行 Autochk.exe。适用于 Windows XP 或

  Windows 2003 Server 。

  strComputer = "."
  Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set objDisk = objWMIService.Get("Win32_LogicalDisk")
  errReturn = objDisk.ScheduleAutoChk(Array("C:"))
  Wscript.Echo errReturn


    四、几点重要说明

    1、开机时按下某个键跳过 Autochk

    如果安排 Chkdsk 在启动时运行以检查某个卷,但实际启动时决定按下某个键跳过Autochk,则 Autochk 将 不会检查该卷,并删除相应的注册表项,在以后,Autochk也不会检查该卷。

    2、Autochk应用程序事件日志

    当 Autochk 在启动时运行检查某个卷时,它会输出记录到一个称为 Bootex.log 的文件中,该文件放在被 检查卷的根目录下。随后,Winlogon 服务将每个 Bootex.log文件的内容移到“应用程序事件日志”中。每个 被检查卷的事件日志消息按以下方式:

    记录: 
    事件 ID:1001 
    源:Winlogon

    说明:它包括文件系统类型、驱动器号或 GUID 及卷名称或序列号,可以帮助确定Chkdsk 检查的是哪个卷。此外还包括,Chkdsk 是因为用户的安排而运行的呢,还是因为已设置了脏字位而运行的等信息。

    3、以只读方式运行的 Chkdsk 未检测到 NTFS 卷上的损坏

    当只读模式对一个使用 NTFS 文件系统的磁盘卷运行 Chkdsk 时,Chkdsk 可能检测不到磁盘结构的损坏。原因是如果主文件表中的 $logfile 数据区被破坏,则可能会出现这一现象。解决方案是若要解决这一问题, 请在运行 Chkdsk 时使用 /f 选项,以便重新初始化 $logfile 数据区并修复损坏问题。

    在命令提示符下键入下面的命令,然后按 ENTER 键

  chkdsk volume_label :/v /f

    其中, volume_label是您要对其运行 Chkdsk 的磁盘卷标。

    4、在Microsoft Windows 2000 Server SP3上,在还原或复制大量的数据后 Chkdsk 找到不正确的安全 ID在您还原或复制大量的数据和与这些数据关联的 NTFS 文件系统安全信息时,Chkdsk.exe 可能会报告此分 区有错误。即使您把数据还原或复制到一个已知无错误的分区中时也会发生此问题。Chkdsk 可能会报告类似如 下内容的错误消息:

  CHKDSK is verifying security descriptors (stage 3 of 3)...
  Repairing the security file record segment.
  Deleting an index entry with Id 8447 from index $SII of file 9.
  Deleting an index entry with Id 31126 from index $SII of file 9.
  Deleting an index entry with Id 50636 from index $SII of file 9.
  Deleting an index entry with Id 31126 from index $SDH of file 9.
  Deleting an index entry with Id 50636 from index $SDH of file 9.
  Deleting an index entry with Id 8447 from index $SDH of file 9.
  Replacing invalid security id with default security id for file 1461234.
  Security descriptor verification completed.
  Windows found problems with the file system.

    注意,报告的错误数和安全 ID 可能因具体情况而异。索引项 ID 和文件编号也可能会有所变化。

    如果您接着对此分区运行 chkdsk /f 命令,并对应用的权限执行审核,则会发现某些文件和文件夹可能已 丢失了用户定义的权限。这些权限可能已被默认权限代替,而默认权限只向 Local System 和 Administrators  帐户授予访问权。

    无论您使用何种程序还原或复制数据都会发生此问题。报告发生此问题的情形有:

    在使用 Ntbackup.exe  工具还原数据(带安全信息)之后,以及在使用 Xcopy.exe 带/o和/x参数复制数据(带安全信息)之后。

    原因在设计上,NTFS 文件系统要求以块的形式编写安全描述符,而且在每一个安全描述符块的末尾至少要留下  20 字节。这是为安全描述符标头留下的空间。然而,在某些情况下,NTFS 代码的错误计算会导致安全描述符 几乎写到了块的末尾,以致留下不足 20 字节的可用空间。Chkdsk.exe 于是就会删除这些安全描述符并使用默 认安全描述符代替它们,以确保在块的最后留下最少 20 字节的可用空间。这将导致某些文件和文件夹丢失用 户自定义的安全性。

    通过下载SP4解决此问题。

    5、关于共享群集磁盘

    对于运行群集服务的服务器群集节点所共享的卷,不允许在启动时运行Autochk.exe 进行检查。当这些卷 被联机,或从一个节点移到另一节点时,群集服务会检查该卷是否处于“脏”状态。如果是,那么在联机前, 就要使用 Chkdsk 来检查该卷。但并去不检查 BootExecute 注册表值,所以也不会去考虑那些值。

,
相关文章 热门文章
  • 微软宣布已售出4亿份Windows 7许可
  • Powercfg 从命令行控制系统的电源管理
  • windows NT 4.0 Domain升级到windows server 2008 R2需要注意的几个问题
  • windows 7使用GPO统一桌面黑屏
  • Windows 2003域更名工具(Domain Rename Tool)
  • 创建Windows 7部署介质
  • 轻松传送——Windows Easy Transfer
  • 使用MDT 2010执行Windows 7裸机安装
  • Windows Server 2008 R2和Windows 7的组策略
  • 监视Windows 7中的系统启动性能
  • Windows 7十大快捷键
  • 使用Windows Server 2003的Netsh命令创建DHCP作用域
  • Win2000/XP与Win98互访
  • Windows XP系统恢复全攻略
  • Windows蓝屏代码详解
  • Windows系统操作技巧
  • 在dos系统下使用USB盘
  • 彻底解决Windows XP网络文件共享
  • Windows下的netstat和nbtstat
  • 在Win98中更改Win2000的密码
  • 资源共享,如此“GUEST”
  • Windows Me优化指南
  • 解析Win XP恢复管理员密码的五大秘诀
  • FTP用户无法登录排错详解
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号