專利名稱:檢測可讀寫媒體的方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于檢測可讀寫媒體的方法與系統(tǒng),特別是不經(jīng)過基本輸入輸出系統(tǒng)(BIOS)命令或視窗應(yīng)用程序界面(API)指令,并且直接依照檢測結(jié)果修改可讀寫媒體的區(qū)域列表的方法。
可讀寫媒體,例如軟盤、可重復(fù)讀寫光盤與磁性光盤,是電腦(或說計(jì)算機(jī))應(yīng)用上相當(dāng)重要的一部分,由于可讀寫媒體總難免會(huì)有一些區(qū)域是不良的,不論是格式化程序的錯(cuò)失或是反復(fù)讀寫過程的缺失,所以如何確實(shí)快速地掌握可讀寫媒體上個(gè)區(qū)域的好壞,以避免數(shù)據(jù)因被存儲(chǔ)在不良區(qū)域而發(fā)生損毀或遺失,便成為一個(gè)重要的課題。
熟知技術(shù)中有許多種檢測可讀寫媒體的方法,特別是最常見的硬盤,而且一般檢測都是使用BIOS命令或視窗API指令來進(jìn)行檢測,然后將檢測后結(jié)果記錄在文件分配表(FAT)。其優(yōu)點(diǎn)是較便利,可以直接在操作系統(tǒng)(如視窗操作系統(tǒng))下來檢測硬盤,而不需要處理與可讀寫媒體的驅(qū)動(dòng)程式相關(guān)的程式語言。
無論如何,這些通過BIOS命令或視窗API指令來進(jìn)行檢測的熟知技術(shù)都會(huì)面臨下列的缺失第一、不是所有的操作系統(tǒng)都會(huì)使用到文件分配表,因此當(dāng)電腦所使用的是諸如視窗NT等不使用文件分配表的操作系統(tǒng)時(shí),操作系統(tǒng)無法經(jīng)由文件分配表掌握到最后一次檢測的結(jié)果,可能會(huì)將檔案存儲(chǔ)在不良區(qū)域(area,不限定是扇區(qū)Sector或磁區(qū)block或其它單位)而導(dǎo)致檔案遣失與程式損毀等不良效果。第二、文件分配表僅記錄不良區(qū)域的位置來避免這些不良區(qū)域被再使用,因此可讀寫媒體的有效容量會(huì)隨著不良區(qū)域的增加而減少,而且可使用區(qū)域的分布也會(huì)變得零亂;第三、每當(dāng)文件分配表損壞或是要更改操作系統(tǒng),使用者便需要重新檢測可讀寫媒體并重新建立新的文件分配表;第四、由于BIOS指令的BIOS中斷已固定重復(fù)讀寫可讀寫媒體的次數(shù),因此不能彈性調(diào)整判斷為不良區(qū)域的標(biāo)準(zhǔn)。
再者,雖然可讀寫媒體在格式化程序處理后會(huì)建立一份區(qū)域列表,但由于此區(qū)域列表只會(huì)在進(jìn)行格式化程序后被修改,一般的掃描程序所發(fā)現(xiàn)的不良區(qū)域僅記錄在文件分配表中,因此就算不使用文件分配表而直接使用可讀寫媒體的區(qū)域列表,也只能克服部分操作系統(tǒng)不使用文件分配表的缺失,仍無法有效地掌握不良區(qū)域的分布以及減少不良區(qū)域所帶來的缺點(diǎn)。
顯然地,熟知技術(shù)的各檢測可讀寫媒體的方法都有待改善的缺點(diǎn),因此有必要發(fā)展可以克服前述缺失的新的檢測讀寫媒體的方法。
本發(fā)明的主要目的在于提供檢測可讀寫媒體(如硬盤)的方法,特別是還可以重整可讀寫媒體的方法。
本發(fā)明的另一目的是提出直接使用可讀寫媒體的控制程式來偵測重整可讀寫媒體的方法。
本發(fā)明的又一目的是提出可以彈性調(diào)整檢測與重整可讀寫媒體的方法。
圖1為本發(fā)明一較佳實(shí)施例的流程示意圖;以及圖2為本發(fā)明的另一較佳實(shí)施例的流程示意圖。
本發(fā)明之一較佳實(shí)施例為檢測并重整可讀寫媒體的方法,至少包含下列步驟接收至少一個(gè)檢測參數(shù);依照這些檢驗(yàn)參數(shù)的內(nèi)容執(zhí)行測試程序,以測試可讀寫媒體是否有不良區(qū)域,在此測試程序直接將這些不良區(qū)域記錄在可讀寫媒體上的區(qū)域列表;以及當(dāng)不良區(qū)域存在時(shí),直接向可讀寫媒體執(zhí)行重整程序,讓可讀寫媒體將這些不良區(qū)域從區(qū)域列表刪除,再分配備用區(qū)域替換不良區(qū)域。
本發(fā)明的另一較佳實(shí)施例為一種檢測硬盤的方法,至少包含接收至少一個(gè)硬盤檢驗(yàn)參數(shù);以及依照這些硬盤檢驗(yàn)參數(shù)的內(nèi)容測試一硬盤,在此當(dāng)硬盤為集成設(shè)備電子規(guī)范(IDE)硬盤時(shí)是使用集成電路電子規(guī)范硬盤控制器端口指令進(jìn)行測試,而當(dāng)硬盤為小型計(jì)算機(jī)系統(tǒng)接口(SCSI)硬盤時(shí)是使用高級(jí)小型計(jì)算機(jī)系統(tǒng)接口編程接口(ASPI)指令進(jìn)行測試。
針對(duì)前述的問題,本發(fā)明的發(fā)明人指出下列幾個(gè)切入點(diǎn)首先,由于不是所有的操作系統(tǒng)都會(huì)使用文件分配表,因此要使各種操作系統(tǒng)都能正確地掌握可讀寫媒體上不良區(qū)域的分布,還是必需使用可讀寫媒體上的區(qū)域列表。再者,雖然熟知技術(shù)中區(qū)域列表的內(nèi)容僅會(huì)在對(duì)可讀寫媒體進(jìn)行格式化程序后才會(huì)修改,而不會(huì)每對(duì)可讀寫媒體進(jìn)行一次掃描便記錄最新的不良區(qū)域,但由于區(qū)域列表的改寫時(shí)機(jī)是可以調(diào)整的,因此可以設(shè)定成區(qū)域列表的內(nèi)容會(huì)隨著每次格式化程序的進(jìn)行而自動(dòng)修正。此外,使用文件分配表時(shí)一般只能標(biāo)示出不良區(qū)域的位置而不能重整可讀寫媒體,但若使用直接修改區(qū)域列表的方式,則可能可以在標(biāo)示出不良區(qū)域位置的同時(shí)也重整可讀寫媒體。
根據(jù)前述的三個(gè)切入點(diǎn),本發(fā)明的發(fā)明人提出一本發(fā)明之一較佳實(shí)施例檢測并重整可讀寫媒體的方法。如圖1所示,此方法至少包含下列步驟如接收方塊11所示,接收至少一個(gè)檢驗(yàn)參數(shù);如測試方塊12所示,依照這些檢驗(yàn)參數(shù)的內(nèi)容執(zhí)行一測試程序,以通過可讀寫媒體的驅(qū)動(dòng)程式組測試可讀寫媒體是否有不良區(qū)域;如重整方塊13所示,當(dāng)不良區(qū)域存在時(shí),直接通過驅(qū)動(dòng)程式組向可讀寫媒體執(zhí)行重整程序,將這些不良區(qū)域從可讀寫媒體的區(qū)域列表刪除,再分配可及的備用區(qū)域替換這些不良區(qū)域。
必須強(qiáng)調(diào)的是在此測試程序是直接根據(jù)這些不良區(qū)域修改可讀寫媒體上的區(qū)域列表,而不會(huì)記錄在操作可讀寫媒體的操作系統(tǒng)的文件分配表。換言之,測試與重整的結(jié)果僅記錄在可讀寫媒體的區(qū)域列表中,亦即操作系統(tǒng)可以直接經(jīng)由區(qū)域列表取得可讀寫媒體中不良區(qū)域的分布,以避免將檔案存儲(chǔ)在這些不良區(qū)域。而由于與文件分配表無關(guān),因此無論是那種操作系統(tǒng)都可以適用本發(fā)明。
除此之外,在測試程序中是將測試所得的數(shù)據(jù)與所測試的可讀寫媒體的數(shù)據(jù)記錄在一文件中。除可避免可讀寫媒體在測試過程中的輸出輸入過程發(fā)生混淆外,也可作為日后追蹤的根據(jù)。
當(dāng)然,由于可讀寫媒體的讀寫是由一操作系統(tǒng)所控制的,所以本方法尚包含操作系統(tǒng)依據(jù)修正過的區(qū)域列表,將至少一檔案存儲(chǔ)在該可讀寫媒體中,但這些不良區(qū)域并不會(huì)被用來存儲(chǔ)任何檔案,如操作系統(tǒng)方塊14所顯示。
附帶一提地,可讀寫媒體的可能種類至少有硬盤、軟盤、可重復(fù)讀寫光盤與磁性光盤(MO)。
除此之外,上述的檢驗(yàn)參數(shù)是由操作系統(tǒng)所調(diào)整的,而且上述的檢驗(yàn)參數(shù)至少包含一錯(cuò)誤敏感度、一測試模式、一讀寫模式以及一測試范圍。其中錯(cuò)誤敏感度是用以限定每次讀寫該硬盤時(shí)必須重復(fù)進(jìn)行的次數(shù),測試模式是用以決定是順序測試或者依序測試,讀寫模式是用以決定是否需要保護(hù)該硬盤上的數(shù)據(jù),而且硬盤檢驗(yàn)參數(shù)是用以定義該硬盤上將要進(jìn)行測試的至少一區(qū)域。由此可以看出,本方法除允許使用者自行調(diào)整判斷是否為不良區(qū)域的標(biāo)準(zhǔn)以及進(jìn)行測試的方式,也允許使用者選擇要測試的部分以及是否要保留數(shù)據(jù)避免操作疏忽造成數(shù)據(jù)流失,并且檢驗(yàn)參數(shù)還可以由使用者自行依需要調(diào)整,因此是一種彈性調(diào)整檢測與重整可讀寫媒體的方法。
本發(fā)明的另一較佳實(shí)施例為一種檢測硬盤的方法,亦即是本發(fā)明的一個(gè)較常見的應(yīng)用(因?yàn)橛脖P可以是最普及最廣泛被應(yīng)用的可讀寫媒體)。如圖2所示,此方法至少包含如接收參數(shù)方塊21所示,接收至少一個(gè)硬盤檢驗(yàn)參數(shù);以及如直接測試方塊22所示,依照這些硬盤檢驗(yàn)參數(shù)的內(nèi)容測試一硬盤,在此當(dāng)硬盤為IDE硬盤時(shí),是使用IDE硬盤控制器端口指令進(jìn)行測試,而當(dāng)硬盤為小型計(jì)算機(jī)系統(tǒng)接口硬盤時(shí),則是使用SCSI指令進(jìn)行測試。
再者,本方法尚可包含如修正方塊23所示的,當(dāng)偵測到至少一不良區(qū)域存在于硬盤,便修改硬盤的區(qū)域列表,但此時(shí)對(duì)應(yīng)到此硬盤的文件分配表則并不會(huì)被修改。本方法也可包含如重整方塊24所示的,在偵測到不良區(qū)域時(shí),向硬盤發(fā)出重整命令,讓硬盤自動(dòng)將不良區(qū)域從區(qū)域列表刪除。當(dāng)然,也可如替換方塊25所示的,當(dāng)可及的備用區(qū)域存在時(shí),以備用區(qū)域替換這些不良區(qū)域。
附帶地,當(dāng)硬盤為IDE硬盤時(shí),是使用IDE硬盤控制器端口指令發(fā)出與執(zhí)行此重整命令;當(dāng)硬盤為小型計(jì)算機(jī)系統(tǒng)接口硬盤時(shí),則是使用SCSI指令發(fā)出與執(zhí)行此重整命令。并且是通過對(duì)硬盤的多個(gè)區(qū)域進(jìn)行讀寫操作,經(jīng)由檢查數(shù)據(jù)的正確性來確定這些區(qū)域的好壞。
除此之外,上述的硬盤檢驗(yàn)參數(shù)至少包含用以限定每次讀寫該硬盤時(shí)必須重復(fù)進(jìn)行次數(shù)的錯(cuò)誤敏感度;用以決定是順序測試或者依序測試的測試模式;用以決定是否需要保護(hù)硬盤上數(shù)據(jù)的讀寫模式;以及用以定義硬盤上將要進(jìn)行測試的區(qū)域的測試范圍。
當(dāng)然,當(dāng)多個(gè)硬盤被檢測時(shí),任一硬盤的測試數(shù)據(jù)皆是與其它硬盤的測試數(shù)據(jù)分開記錄在不同的記錄文件,以避免混淆。而且上述的記錄文件至少記錄了相對(duì)應(yīng)的硬盤的系列號(hào)或者不良區(qū)域位置參數(shù)的總合檢查值。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用以限定本發(fā)明的申請(qǐng)專利范圍;凡其它未脫離本發(fā)明提揭示的精神下所完成的等效改變或修飾,均應(yīng)包含在下述的申請(qǐng)專利范圍內(nèi)。
權(quán)利要求
1.一種防止存儲(chǔ)于一可讀寫媒體的數(shù)據(jù)發(fā)生損壞的方法,至少包含依照至少一檢驗(yàn)參數(shù)的內(nèi)容執(zhí)行一測試程序,以通過該可讀寫媒體的一驅(qū)動(dòng)程式組測試該可讀寫媒體是否存在至少一不良區(qū)域,在此該測試程序是將這些不良區(qū)域記錄在該可讀寫媒體上的一區(qū)域列表;當(dāng)至少一該不良區(qū)域存在時(shí),直接向該可讀寫媒體執(zhí)行一重整程序,以通過該驅(qū)動(dòng)程式組將這些不良區(qū)域從該區(qū)域列表刪除,再分配至少一可及的備用區(qū)域替換這些不良區(qū)域;和該操作系統(tǒng)依據(jù)修正過的該區(qū)域列表,將至少一檔案存儲(chǔ)在該可讀寫媒體中,其中這些不良區(qū)域并不會(huì)被用來存儲(chǔ)這些檔案。
2.按權(quán)利要求1的方法,其中上述的可讀寫媒體是為下列之一硬盤、軟盤、可重復(fù)讀寫光盤與磁性光盤。
3.按權(quán)利要求1的方法,其中上述的檢驗(yàn)參數(shù)至少包含一錯(cuò)誤敏感度,用以限定每次讀寫該硬盤時(shí)必須重復(fù)進(jìn)行的次數(shù)。
4.按權(quán)利要求1的方法,其中上述的檢驗(yàn)參數(shù)至少包含一測試模式,用以決定是順序測試或者依序測試。
5.按權(quán)利要求1的方法,其中上述的檢驗(yàn)參數(shù)至少包含一讀寫模式,用以決定是否需要保護(hù)該硬盤上的數(shù)據(jù)。
6.按權(quán)利要求1的方法,其中上述的檢驗(yàn)參數(shù)至少包含一測試范圍,用以定義該硬盤上將要進(jìn)行測試的至少一區(qū)域。
7.按權(quán)利要求1的方法,其中是通過對(duì)該可讀寫媒體的多個(gè)區(qū)域進(jìn)行讀寫操作,經(jīng)由檢查數(shù)據(jù)的正確性來確定這些區(qū)域的好壞。
8.按權(quán)利要求1的方法,其中當(dāng)多個(gè)可讀寫媒體被檢測時(shí),任一該可讀寫媒體的測試數(shù)據(jù)是與其它該可讀寫媒體的測試數(shù)據(jù)分開記錄在不同的該記錄文件。
9.按權(quán)利要求8的方法,其中上述的記錄文件至少記錄了相應(yīng)的該可讀寫媒體的一序號(hào)。
10.按權(quán)利要求1的方法,其中上述的記錄文件至少記錄了至少一不良區(qū)域位置參數(shù)的一總合檢查值。
11.一種檢測并重整一可讀寫媒體的方法,至少包含下列步驟接收至少一個(gè)檢驗(yàn)參數(shù);依照這些檢驗(yàn)參數(shù)的內(nèi)容執(zhí)行一測試程序,以測試該可讀寫媒體是否有至少一不良區(qū)域,在此該測試程序會(huì)直接將這些不良區(qū)域記錄在該可讀寫媒體上的一區(qū)域列表;以及當(dāng)至少一該不良區(qū)域存在時(shí),直接向該可讀寫媒體執(zhí)行一重整程序,讓該可讀寫媒體將這些不良區(qū)域從該區(qū)域列表刪除,再分配至少一可及的備用區(qū)域替換這些不良區(qū)域。
12.按權(quán)利要求11的方法,其中上述的測試程序是通過該可讀寫媒體的一驅(qū)動(dòng)程式組所進(jìn)行的。
13.按權(quán)利要求11的方法,其中上述重整程序是通過該可讀寫媒體的一驅(qū)動(dòng)程式組所進(jìn)行的。
14.按權(quán)利要求11的方法,其中上述的可讀寫媒體為硬盤。
15.按權(quán)利要求11的方法,其中上述的可讀寫媒體是為下列之一軟盤、可重復(fù)讀寫光盤與磁性光盤。
16.一種檢測硬盤的方法,至少包含接收至少一個(gè)硬盤檢驗(yàn)參數(shù);以及依照這些硬盤檢驗(yàn)參數(shù)的內(nèi)容測試一硬盤,在此當(dāng)該硬盤為一集成電路電子規(guī)范硬盤時(shí),是使用集成電路電子規(guī)范硬盤控制器端口指令進(jìn)行測試,而當(dāng)此硬盤為一小型計(jì)算機(jī)系統(tǒng)接口硬盤時(shí),則是使用高級(jí)小型計(jì)算機(jī)系統(tǒng)接口編程接口指令進(jìn)行測試。
17.按權(quán)利要求16的方法,其中更包含當(dāng)偵測到至少一不良區(qū)域時(shí),修改該硬盤的一區(qū)域列表。
18.按權(quán)利要求16的方法,其中更包含在偵測到一不良區(qū)域時(shí),向該硬盤發(fā)出一重整命令,讓該硬盤自動(dòng)將這些不良區(qū)域從一區(qū)域列表刪除,再分配一備用區(qū)域替換這些不良區(qū)域。
19.按權(quán)利要求18的方法,當(dāng)該硬盤為該集成電路電子規(guī)范硬盤時(shí),是使用集成電路電子規(guī)范硬盤控制器端口指令發(fā)出與執(zhí)行該重整命令,而當(dāng)此硬盤為該小型計(jì)算機(jī)系統(tǒng)接口硬盤時(shí),則是使用高級(jí)小型計(jì)算機(jī)系統(tǒng)接口編程接口指令發(fā)出與執(zhí)行該重整命令。
20.如權(quán)利要求16的方法,其中上述的檢驗(yàn)參數(shù)至少包含一錯(cuò)誤敏感度、一測試模式、一讀寫模式以及一測試范圍。
全文摘要
本發(fā)明提出檢測可讀寫媒體的方法。至少包含:接收至少一個(gè)檢驗(yàn)參數(shù);以此測試可讀寫媒體,當(dāng)為IDE硬盤時(shí),使用IDE硬盤控制器端口指令進(jìn)行測試,而為小型計(jì)算機(jī)系統(tǒng)接口硬盤時(shí),使用SCSI指令測試。更包含當(dāng)偵測到不良區(qū)域時(shí)修改區(qū)域列表,還包含在偵測到不良區(qū)域時(shí),向硬盤發(fā)出重整命令,將不良區(qū)域從區(qū)域列表刪除,再分配備用區(qū)域替換不良區(qū)域。可讀寫媒體為任何必須先格式化并建立區(qū)域列表后才使用的可讀寫媒體。
文檔編號(hào)G06F11/22GK1369794SQ0110347
公開日2002年9月18日 申請(qǐng)日期2001年2月14日 優(yōu)先權(quán)日2001年2月14日
發(fā)明者王云松, 陳玄同, 林光信 申請(qǐng)人:英業(yè)達(dá)股份有限公司