专利名称:检测可读写媒体的方法
技术领域:
本发明是有关于检测可读写媒体的方法与系统,特别是不经过基本输入输出系统(BIOS)命令或视窗应用程序界面(API)指令,并且直接依照检测结果修改可读写媒体的区域列表的方法。
可读写媒体,例如软盘、可重复读写光盘与磁性光盘,是电脑(或说计算机)应用上相当重要的一部分,由于可读写媒体总难免会有一些区域是不良的,不论是格式化程序的错失或是反复读写过程的缺失,所以如何确实快速地掌握可读写媒体上个区域的好坏,以避免数据因被存储在不良区域而发生损毁或遗失,便成为一个重要的课题。
熟知技术中有许多种检测可读写媒体的方法,特别是最常见的硬盘,而且一般检测都是使用BIOS命令或视窗API指令来进行检测,然后将检测后结果记录在文件分配表(FAT)。其优点是较便利,可以直接在操作系统(如视窗操作系统)下来检测硬盘,而不需要处理与可读写媒体的驱动程式相关的程式语言。
无论如何,这些通过BIOS命令或视窗API指令来进行检测的熟知技术都会面临下列的缺失第一、不是所有的操作系统都会使用到文件分配表,因此当电脑所使用的是诸如视窗NT等不使用文件分配表的操作系统时,操作系统无法经由文件分配表掌握到最后一次检测的结果,可能会将档案存储在不良区域(area,不限定是扇区Sector或磁区block或其它单位)而导致档案遣失与程式损毁等不良效果。第二、文件分配表仅记录不良区域的位置来避免这些不良区域被再使用,因此可读写媒体的有效容量会随着不良区域的增加而减少,而且可使用区域的分布也会变得零乱;第三、每当文件分配表损坏或是要更改操作系统,使用者便需要重新检测可读写媒体并重新建立新的文件分配表;第四、由于BIOS指令的BIOS中断已固定重复读写可读写媒体的次数,因此不能弹性调整判断为不良区域的标准。
再者,虽然可读写媒体在格式化程序处理后会建立一份区域列表,但由于此区域列表只会在进行格式化程序后被修改,一般的扫描程序所发现的不良区域仅记录在文件分配表中,因此就算不使用文件分配表而直接使用可读写媒体的区域列表,也只能克服部分操作系统不使用文件分配表的缺失,仍无法有效地掌握不良区域的分布以及减少不良区域所带来的缺点。
显然地,熟知技术的各检测可读写媒体的方法都有待改善的缺点,因此有必要发展可以克服前述缺失的新的检测读写媒体的方法。
本发明的主要目的在于提供检测可读写媒体(如硬盘)的方法,特别是还可以重整可读写媒体的方法。
本发明的另一目的是提出直接使用可读写媒体的控制程式来侦测重整可读写媒体的方法。
本发明的又一目的是提出可以弹性调整检测与重整可读写媒体的方法。
图1为本发明一较佳实施例的流程示意图;以及图2为本发明的另一较佳实施例的流程示意图。
本发明之一较佳实施例为检测并重整可读写媒体的方法,至少包含下列步骤接收至少一个检测参数;依照这些检验参数的内容执行测试程序,以测试可读写媒体是否有不良区域,在此测试程序直接将这些不良区域记录在可读写媒体上的区域列表;以及当不良区域存在时,直接向可读写媒体执行重整程序,让可读写媒体将这些不良区域从区域列表删除,再分配备用区域替换不良区域。
本发明的另一较佳实施例为一种检测硬盘的方法,至少包含接收至少一个硬盘检验参数;以及依照这些硬盘检验参数的内容测试一硬盘,在此当硬盘为集成设备电子规范(IDE)硬盘时是使用集成电路电子规范硬盘控制器端口指令进行测试,而当硬盘为小型计算机系统接口(SCSI)硬盘时是使用高级小型计算机系统接口编程接口(ASPI)指令进行测试。
针对前述的问题,本发明的发明人指出下列几个切入点首先,由于不是所有的操作系统都会使用文件分配表,因此要使各种操作系统都能正确地掌握可读写媒体上不良区域的分布,还是必需使用可读写媒体上的区域列表。再者,虽然熟知技术中区域列表的内容仅会在对可读写媒体进行格式化程序后才会修改,而不会每对可读写媒体进行一次扫描便记录最新的不良区域,但由于区域列表的改写时机是可以调整的,因此可以设定成区域列表的内容会随着每次格式化程序的进行而自动修正。此外,使用文件分配表时一般只能标示出不良区域的位置而不能重整可读写媒体,但若使用直接修改区域列表的方式,则可能可以在标示出不良区域位置的同时也重整可读写媒体。
根据前述的三个切入点,本发明的发明人提出一本发明之一较佳实施例检测并重整可读写媒体的方法。如图1所示,此方法至少包含下列步骤如接收方块11所示,接收至少一个检验参数;如测试方块12所示,依照这些检验参数的内容执行一测试程序,以通过可读写媒体的驱动程式组测试可读写媒体是否有不良区域;如重整方块13所示,当不良区域存在时,直接通过驱动程式组向可读写媒体执行重整程序,将这些不良区域从可读写媒体的区域列表删除,再分配可及的备用区域替换这些不良区域。
必须强调的是在此测试程序是直接根据这些不良区域修改可读写媒体上的区域列表,而不会记录在操作可读写媒体的操作系统的文件分配表。换言之,测试与重整的结果仅记录在可读写媒体的区域列表中,亦即操作系统可以直接经由区域列表取得可读写媒体中不良区域的分布,以避免将档案存储在这些不良区域。而由于与文件分配表无关,因此无论是那种操作系统都可以适用本发明。
除此之外,在测试程序中是将测试所得的数据与所测试的可读写媒体的数据记录在一文件中。除可避免可读写媒体在测试过程中的输出输入过程发生混淆外,也可作为日后追踪的根据。
当然,由于可读写媒体的读写是由一操作系统所控制的,所以本方法尚包含操作系统依据修正过的区域列表,将至少一档案存储在该可读写媒体中,但这些不良区域并不会被用来存储任何档案,如操作系统方块14所显示。
附带一提地,可读写媒体的可能种类至少有硬盘、软盘、可重复读写光盘与磁性光盘(MO)。
除此之外,上述的检验参数是由操作系统所调整的,而且上述的检验参数至少包含一错误敏感度、一测试模式、一读写模式以及一测试范围。其中错误敏感度是用以限定每次读写该硬盘时必须重复进行的次数,测试模式是用以决定是顺序测试或者依序测试,读写模式是用以决定是否需要保护该硬盘上的数据,而且硬盘检验参数是用以定义该硬盘上将要进行测试的至少一区域。由此可以看出,本方法除允许使用者自行调整判断是否为不良区域的标准以及进行测试的方式,也允许使用者选择要测试的部分以及是否要保留数据避免操作疏忽造成数据流失,并且检验参数还可以由使用者自行依需要调整,因此是一种弹性调整检测与重整可读写媒体的方法。
本发明的另一较佳实施例为一种检测硬盘的方法,亦即是本发明的一个较常见的应用(因为硬盘可以是最普及最广泛被应用的可读写媒体)。如图2所示,此方法至少包含如接收参数方块21所示,接收至少一个硬盘检验参数;以及如直接测试方块22所示,依照这些硬盘检验参数的内容测试一硬盘,在此当硬盘为IDE硬盘时,是使用IDE硬盘控制器端口指令进行测试,而当硬盘为小型计算机系统接口硬盘时,则是使用SCSI指令进行测试。
再者,本方法尚可包含如修正方块23所示的,当侦测到至少一不良区域存在于硬盘,便修改硬盘的区域列表,但此时对应到此硬盘的文件分配表则并不会被修改。本方法也可包含如重整方块24所示的,在侦测到不良区域时,向硬盘发出重整命令,让硬盘自动将不良区域从区域列表删除。当然,也可如替换方块25所示的,当可及的备用区域存在时,以备用区域替换这些不良区域。
附带地,当硬盘为IDE硬盘时,是使用IDE硬盘控制器端口指令发出与执行此重整命令;当硬盘为小型计算机系统接口硬盘时,则是使用SCSI指令发出与执行此重整命令。并且是通过对硬盘的多个区域进行读写操作,经由检查数据的正确性来确定这些区域的好坏。
除此之外,上述的硬盘检验参数至少包含用以限定每次读写该硬盘时必须重复进行次数的错误敏感度;用以决定是顺序测试或者依序测试的测试模式;用以决定是否需要保护硬盘上数据的读写模式;以及用以定义硬盘上将要进行测试的区域的测试范围。
当然,当多个硬盘被检测时,任一硬盘的测试数据皆是与其它硬盘的测试数据分开记录在不同的记录文件,以避免混淆。而且上述的记录文件至少记录了相对应的硬盘的系列号或者不良区域位置参数的总合检查值。
以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明提揭示的精神下所完成的等效改变或修饰,均应包含在下述的申请专利范围内。
权利要求
1.一种防止存储于一可读写媒体的数据发生损坏的方法,至少包含依照至少一检验参数的内容执行一测试程序,以通过该可读写媒体的一驱动程式组测试该可读写媒体是否存在至少一不良区域,在此该测试程序是将这些不良区域记录在该可读写媒体上的一区域列表;当至少一该不良区域存在时,直接向该可读写媒体执行一重整程序,以通过该驱动程式组将这些不良区域从该区域列表删除,再分配至少一可及的备用区域替换这些不良区域;和该操作系统依据修正过的该区域列表,将至少一档案存储在该可读写媒体中,其中这些不良区域并不会被用来存储这些档案。
2.按权利要求1的方法,其中上述的可读写媒体是为下列之一硬盘、软盘、可重复读写光盘与磁性光盘。
3.按权利要求1的方法,其中上述的检验参数至少包含一错误敏感度,用以限定每次读写该硬盘时必须重复进行的次数。
4.按权利要求1的方法,其中上述的检验参数至少包含一测试模式,用以决定是顺序测试或者依序测试。
5.按权利要求1的方法,其中上述的检验参数至少包含一读写模式,用以决定是否需要保护该硬盘上的数据。
6.按权利要求1的方法,其中上述的检验参数至少包含一测试范围,用以定义该硬盘上将要进行测试的至少一区域。
7.按权利要求1的方法,其中是通过对该可读写媒体的多个区域进行读写操作,经由检查数据的正确性来确定这些区域的好坏。
8.按权利要求1的方法,其中当多个可读写媒体被检测时,任一该可读写媒体的测试数据是与其它该可读写媒体的测试数据分开记录在不同的该记录文件。
9.按权利要求8的方法,其中上述的记录文件至少记录了相应的该可读写媒体的一序号。
10.按权利要求1的方法,其中上述的记录文件至少记录了至少一不良区域位置参数的一总合检查值。
11.一种检测并重整一可读写媒体的方法,至少包含下列步骤接收至少一个检验参数;依照这些检验参数的内容执行一测试程序,以测试该可读写媒体是否有至少一不良区域,在此该测试程序会直接将这些不良区域记录在该可读写媒体上的一区域列表;以及当至少一该不良区域存在时,直接向该可读写媒体执行一重整程序,让该可读写媒体将这些不良区域从该区域列表删除,再分配至少一可及的备用区域替换这些不良区域。
12.按权利要求11的方法,其中上述的测试程序是通过该可读写媒体的一驱动程式组所进行的。
13.按权利要求11的方法,其中上述重整程序是通过该可读写媒体的一驱动程式组所进行的。
14.按权利要求11的方法,其中上述的可读写媒体为硬盘。
15.按权利要求11的方法,其中上述的可读写媒体是为下列之一软盘、可重复读写光盘与磁性光盘。
16.一种检测硬盘的方法,至少包含接收至少一个硬盘检验参数;以及依照这些硬盘检验参数的内容测试一硬盘,在此当该硬盘为一集成电路电子规范硬盘时,是使用集成电路电子规范硬盘控制器端口指令进行测试,而当此硬盘为一小型计算机系统接口硬盘时,则是使用高级小型计算机系统接口编程接口指令进行测试。
17.按权利要求16的方法,其中更包含当侦测到至少一不良区域时,修改该硬盘的一区域列表。
18.按权利要求16的方法,其中更包含在侦测到一不良区域时,向该硬盘发出一重整命令,让该硬盘自动将这些不良区域从一区域列表删除,再分配一备用区域替换这些不良区域。
19.按权利要求18的方法,当该硬盘为该集成电路电子规范硬盘时,是使用集成电路电子规范硬盘控制器端口指令发出与执行该重整命令,而当此硬盘为该小型计算机系统接口硬盘时,则是使用高级小型计算机系统接口编程接口指令发出与执行该重整命令。
20.如权利要求16的方法,其中上述的检验参数至少包含一错误敏感度、一测试模式、一读写模式以及一测试范围。
全文摘要
本发明提出检测可读写媒体的方法。至少包含:接收至少一个检验参数;以此测试可读写媒体,当为IDE硬盘时,使用IDE硬盘控制器端口指令进行测试,而为小型计算机系统接口硬盘时,使用SCSI指令测试。更包含当侦测到不良区域时修改区域列表,还包含在侦测到不良区域时,向硬盘发出重整命令,将不良区域从区域列表删除,再分配备用区域替换不良区域。可读写媒体为任何必须先格式化并建立区域列表后才使用的可读写媒体。
文档编号G06F11/22GK1369794SQ0110347
公开日2002年9月18日 申请日期2001年2月14日 优先权日2001年2月14日
发明者王云松, 陈玄同, 林光信 申请人:英业达股份有限公司