專利名稱:硬盤管理方法及管理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù),特別涉及一種硬盤管理方法及管理裝置。
背景技術(shù):
目前,硬盤作為主要的存儲(chǔ)介質(zhì),被廣泛地應(yīng)用于電腦和錄像機(jī)等電子產(chǎn)品中。硬 盤在使用之前,必須經(jīng)過格式化;下面就以圖1為例,簡單說明一下采用文件配置表(File Allocation Table, FAT)文件系統(tǒng)的硬盤的結(jié)構(gòu),具體如下采用FAT文件系統(tǒng)格式化的硬盤包含主引導(dǎo)扇區(qū)、第一保留扇區(qū)、基本分區(qū)1、第 二基本分區(qū)2、基本分區(qū)3和基本分區(qū)4。其中,主引導(dǎo)扇區(qū)存儲(chǔ)有主引導(dǎo)程序(MBR)和分 區(qū)表;分區(qū)表存儲(chǔ)有上述4個(gè)分區(qū)的表項(xiàng)。每一基本分區(qū)都包含引導(dǎo)扇區(qū)和用以存儲(chǔ)文件 內(nèi)容的數(shù)據(jù)區(qū);其中,引導(dǎo)扇區(qū)存儲(chǔ)有操作系統(tǒng)引導(dǎo)記錄(DBR)、第二保留扇區(qū)、文件分配 表1 (FATl)、文件分配表2 (FAT2)和根目錄。DBR由跳轉(zhuǎn)指令、廠商標(biāo)志和操作系統(tǒng)版本號(hào)、基本輸入輸出系統(tǒng)參數(shù)區(qū)(BIOS Parameter Block, BPB)、擴(kuò)展BPB、操作系統(tǒng)引導(dǎo)程序和結(jié)束標(biāo)志等幾個(gè)部分組成。BPB指 定了文件系統(tǒng)的邏輯扇區(qū)大小,也指示了組成一簇的扇區(qū)數(shù)量。FATl存儲(chǔ)于保留扇區(qū)之后的存儲(chǔ)空間,F(xiàn)AT2存儲(chǔ)于FATl之后的存儲(chǔ)空間,F(xiàn)ATl 和FAT2兩者的內(nèi)容相同,F(xiàn)AT2為FATl的備份,用于文件系統(tǒng)的恢復(fù)。一個(gè)文件在FAT文 件系統(tǒng)中的存儲(chǔ)情況是通過FAT分區(qū)表中的表項(xiàng)來指示的。根目錄存儲(chǔ)于FAT2之后的存儲(chǔ)空間,用于保存目錄和文件的信息;文件的信息包 括文件大小、修改時(shí)間、當(dāng)前讀寫權(quán)限以及文件的FATl的位置。在利用硬盤進(jìn)行文件保存時(shí),采用預(yù)創(chuàng)建文件的方式對硬盤包含的基本分區(qū)內(nèi)的 數(shù)據(jù)區(qū)進(jìn)行處理,換句話說,就是在進(jìn)行文件系統(tǒng)格式化時(shí),為待保存的文件創(chuàng)建其存儲(chǔ)空 間,以便格式化完成后,直接將文件包含的數(shù)據(jù)寫入為該文件創(chuàng)建的存儲(chǔ)空間內(nèi)。預(yù)創(chuàng)建文 件的方法為根據(jù)某一基本分區(qū)包含的數(shù)據(jù)區(qū)的容量和數(shù)據(jù)文件的大小,確定一個(gè)基本分 區(qū)包含的數(shù)據(jù)區(qū)可以創(chuàng)建的數(shù)據(jù)文件總數(shù);在該基本分區(qū)的數(shù)據(jù)區(qū)上,創(chuàng)建索引文件和N 個(gè)固定M字節(jié)大小的數(shù)據(jù)文件;在FATl和根目錄中記錄上述信息。在對硬盤格式化完成后,主引導(dǎo)扇區(qū)、保留扇區(qū)和每一基本分區(qū)包含的引導(dǎo)扇區(qū) 的內(nèi)容是禁止用戶進(jìn)行修改的;采用預(yù)創(chuàng)建文件的方式對硬盤包含的基本分區(qū)內(nèi)的數(shù)據(jù)區(qū) 進(jìn)行處理后,基本分區(qū)內(nèi)的數(shù)據(jù)區(qū)包含2個(gè)索引文件和N個(gè)數(shù)據(jù)文件;其中,2個(gè)索引文件 的內(nèi)容是一樣的,一個(gè)索引文件是供用戶使用的,另一個(gè)索引文件用于備份;N個(gè)數(shù)據(jù)文件 是用來保存數(shù)據(jù)文件中的數(shù)據(jù)的。用戶在向硬盤保存文件時(shí),實(shí)質(zhì)上是在向基本分區(qū)包含 的一索引文件和數(shù)據(jù)文件中寫入待保存文件包含的數(shù)據(jù)。由于硬盤文件采用預(yù)創(chuàng)建文件的方式,當(dāng)硬盤的某一基本分區(qū)的數(shù)據(jù)區(qū)存在壞道 的時(shí)候,將會(huì)導(dǎo)致讀寫出錯(cuò),且下次再讀寫到存在壞道的數(shù)據(jù)區(qū),仍然會(huì)導(dǎo)致讀寫出錯(cuò),甚 至導(dǎo)致硬盤由于存在壞道而無法繼續(xù)正常工作。為了能夠?qū)o法繼續(xù)正常工作的硬盤進(jìn)行 讀寫操作,需要重新對上述硬盤進(jìn)行文件系統(tǒng)格式化。
綜上所述,在硬盤的數(shù)據(jù)區(qū)存在壞道的情況下,在不對硬盤進(jìn)行格式化的情況下, 無法進(jìn)行正常的讀寫操作。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種硬盤管理方法,該方法能夠在硬盤存在壞 道且不進(jìn)行格式化的情況下,對硬盤進(jìn)行正常的讀寫。本發(fā)明的目的在于提供一種硬盤管理裝置,該裝置能夠在硬盤存在壞道且不進(jìn)行 格式化的情況下,對硬盤進(jìn)行正常的讀寫。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的一種硬盤管理方法,該方法為硬盤數(shù)據(jù)區(qū)的管理方法,該方法包括A、根據(jù)待讀寫的文件屬性判斷待讀寫文件的類型,確定為第一索引文件,執(zhí)行步 驟B,確定為數(shù)據(jù)文件,執(zhí)行步驟C;所述第一索引文件為用戶使用的索引文件;B、確定待讀寫的第一索引文件的扇區(qū)存在壞道后,選擇第二索引文件中用于替換 的扇區(qū)進(jìn)行讀寫;所述第二索引文件為處于空閑的用于備份的索引文件;C、確定待讀寫的數(shù)據(jù)文件的扇區(qū)存在壞道后,對存在壞道的扇區(qū)的下一扇區(qū)進(jìn)行 讀寫操作。較佳地,步驟A之前進(jìn)一步包括在第一索引文件中建立第一索引文件頭,在數(shù)據(jù)文件中建立數(shù)據(jù)文件頭;所述第一索引文件頭用以記錄第一索引文件占用的每一扇區(qū)的狀態(tài)信息及每一 扇區(qū)的替換信息;所述數(shù)據(jù)文件頭用以記錄數(shù)據(jù)文件占用的每一扇區(qū)的狀態(tài)信息;所述每 一扇區(qū)的狀態(tài)信息為表示該扇區(qū)是否存在壞道的信息;所述每一扇區(qū)的替換信息為用于替 換的第二索引文件中的扇區(qū)信息。較佳地,步驟B所述對第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫之后進(jìn)一步包 括將第一索引文件中存在壞道的扇區(qū)信息和第二索引文件中用于替換的扇區(qū)信息記錄于 所述第一索引文件頭。較佳地,步驟C所述對存在壞道的扇區(qū)的下一扇區(qū)進(jìn)行讀寫操作之后進(jìn)一步包 括將存在壞道的扇區(qū)信息記錄于所述數(shù)據(jù)文件頭。較佳地,所述在數(shù)據(jù)文件中建立數(shù)據(jù)文件頭之后進(jìn)一步包括在第一索引文件之 前建立一總文件頭;所述總文件頭包含第一索引文件頭和數(shù)據(jù)文件頭。較佳地,步驟A與步驟B之間進(jìn)一步包括判斷第一索引文件內(nèi)的第一索引文件頭 所占用的扇區(qū)是否存在壞道,如果存在,則從總文件頭中獲取第一索引文件頭,否則,從第 一索引文件內(nèi)獲取第一索引文件頭。較佳地,步驟B所述對第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫之后進(jìn)一步包 括所述從總文件頭中獲取第一索引文件頭時(shí),將第一索引文件中存在壞道的扇區(qū)信息和 第二索引文件中用于替換的扇區(qū)信息記錄于所述總文件頭中的第一索引文件頭;所述從第一索引文件內(nèi)獲取第一索引文件頭時(shí),將第一索引文件中存在壞道的扇 區(qū)信息和第二索引文件中用于替換的扇區(qū)信息記錄于所述第一索引文件中的第一索引文 件頭。較佳地,步驟A與步驟C之間進(jìn)一步包括判斷數(shù)據(jù)文件內(nèi)的數(shù)據(jù)文件頭所占用的扇區(qū)是否存在壞道,如果存在,則從總文件頭中獲取數(shù)據(jù)文件頭,否則,從數(shù)據(jù)文件內(nèi)獲取 數(shù)據(jù)文件頭。較佳地,步驟C所述對存在壞道的扇區(qū)的下一扇區(qū)進(jìn)行讀寫操作之后進(jìn)一步包 括所述從總文件頭中獲取數(shù)據(jù)文件頭時(shí),將存在壞道的扇區(qū)信息記錄于所述總文件頭中 的數(shù)據(jù)文件頭;所述從數(shù)據(jù)文件內(nèi)獲取數(shù)據(jù)文件頭時(shí),將存在壞道的扇區(qū)信息記錄于所述數(shù)據(jù)文 件內(nèi)的數(shù)據(jù)文件頭。上述方法中,步驟B所述選擇第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫包括Bi、根據(jù)第一索引文件頭中的每一扇區(qū)的替換信息及存在壞道的扇區(qū),判斷是否 存在用于替換的第二索引文件中的扇區(qū)信息,如果不存在,則根據(jù)第一索引文件頭中的每 一扇區(qū)的替換信息,從第二索引文件中選擇一用于替換的扇區(qū);如果存在,則直接從第一索 引文件頭中獲取第二索引文件中用于替換的扇區(qū)信息;B2、對第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫。一種硬盤管理裝置,該裝置對硬盤數(shù)據(jù)區(qū)進(jìn)行管理,該裝置包括觸發(fā)單元,根據(jù)待讀寫文件參數(shù)及讀寫指令,在確定待讀寫的文件為索引文件后, 輸出待讀寫的文件參數(shù)至第一讀寫單元,并觸發(fā)第一讀寫單元;或者在確定待讀寫的文件 為數(shù)據(jù)文件后,輸出待讀寫的文件參數(shù)至第二讀寫單元,并觸發(fā)第二讀寫單元;所述待讀寫 的文件參數(shù)至少包含文件名稱、屬性及預(yù)創(chuàng)建文件時(shí)的存儲(chǔ)位置;第一讀寫單元,根據(jù)觸發(fā)及待讀寫的文件參數(shù),對第一索引文件占用的扇區(qū)進(jìn)行 讀寫,在確定待讀寫的第一索引文件的扇區(qū)存在壞道,選擇第二索引文件中用于替換的扇 區(qū)進(jìn)行讀寫;第二讀寫單元,根據(jù)觸發(fā)及待讀寫的文件參數(shù),對數(shù)據(jù)文件占用的扇區(qū)進(jìn)行讀寫, 在確定待讀寫的數(shù)據(jù)文件的扇區(qū)存在壞道,對數(shù)據(jù)文件存在壞道的扇區(qū)的下一個(gè)扇區(qū)進(jìn)行讀寫。較佳地,該裝置進(jìn)一步包括文件頭讀寫單元;所述觸發(fā)單元在首次接收到讀寫指令或接收到格式化指令后,進(jìn)一步輸出文件頭 建立指令至所述文件頭讀寫單元;所述文件頭讀寫單元根據(jù)接收到的文件頭建立指令,在第一索引文件中建立第一 索引文件頭,在數(shù)據(jù)文件中建立數(shù)據(jù)文件頭;所述第一索引文件頭用以記錄第一索引文件占用的每一扇區(qū)信息、每一扇區(qū)的狀 態(tài)信息、及每一扇區(qū)的替換信息;所述數(shù)據(jù)文件頭用以記錄數(shù)據(jù)文件占用的每一扇區(qū)信息 及每一扇區(qū)的狀態(tài)信息;所述每一扇區(qū)的狀態(tài)信息為表示該扇區(qū)是否存在壞道的信息;所 述每一扇區(qū)的替換信息為用于替換的第二索引文件中的扇區(qū)信息。上述裝置中,所述第一讀寫單元進(jìn)一步根據(jù)觸發(fā)及待讀寫的文件參數(shù),觸發(fā)文件 頭讀寫單元讀取第一索引文件頭,從第一索引文件頭獲取待讀寫的扇區(qū)的狀態(tài)信息和待讀 寫的扇區(qū)的替換信息;將第一索引文件中存在壞道的扇區(qū)的信息及第二索引文件中用于替 換的扇區(qū)信息記錄于第一索引文件頭中,輸出更新后的第一索引文件頭至所述文件頭讀寫 單元;所述第二讀寫單元進(jìn)一步根據(jù)觸發(fā)及待讀寫的文件參數(shù),觸發(fā)文件頭讀寫單元讀取數(shù)據(jù)文件頭,從數(shù)據(jù)文件頭中獲取待讀寫的扇區(qū)的狀態(tài)信息;將數(shù)據(jù)文件中存在壞道的 扇區(qū)的信息記錄于數(shù)據(jù)文件頭中,輸出更新后的數(shù)據(jù)文件頭至所述文件頭讀寫單元;所述文件頭讀取單元進(jìn)一步根據(jù)第一讀寫單元的觸發(fā),讀取第一索引文件頭,輸 出第一索引文件頭至所述第一讀寫單元;或者根據(jù)第二讀寫單元的觸發(fā),讀取數(shù)據(jù)文件頭, 輸出數(shù)據(jù)文件頭至所述第二讀寫單元;根據(jù)接收到的更新后的第一索引文件頭修改第一索 引文件頭;或者根據(jù)接收到的更新后的數(shù)據(jù)文件頭修改數(shù)據(jù)文件頭。較佳地,該裝置進(jìn)一步包括文件頭備份單元;所述文件頭讀寫單元在創(chuàng)建第一索引文件頭和數(shù)據(jù)文件頭后,進(jìn)一步觸發(fā)所述文 件頭備份單元;所述文件頭備份單元根據(jù)觸發(fā),在第一索引文件前建立一總文件頭;所述總文件 頭用以備份所述第一索引文件頭和數(shù)據(jù)文件頭。由上述的技術(shù)方案可見,本發(fā)明提供了一種硬盤管理方法及管理裝置,在判定待 讀寫的第一索引文件的扇區(qū)存在壞道時(shí),用第二索引文件中的扇區(qū)替換存在壞道的扇區(qū), 完成對硬盤的讀寫操作;在判定待讀寫的數(shù)據(jù)文件的扇區(qū)存在壞道時(shí),直接跳過存在壞道 的扇區(qū),對下一扇區(qū)進(jìn)行讀寫操作。采用本發(fā)明的方法及裝置,能夠在硬盤存在壞道且不進(jìn) 行格式化的情況下,對硬盤進(jìn)行正常的讀寫,降低了硬盤報(bào)錯(cuò)的概率。
圖1為現(xiàn)有的采用文件配置表文件系統(tǒng)的硬盤的結(jié)構(gòu)示意圖。圖2為本發(fā)明硬盤管理方法的流程圖。圖3為本發(fā)明硬盤管理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案、及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例, 對本發(fā)明進(jìn)一步詳細(xì)說明。由于硬盤中的基本分區(qū)的數(shù)據(jù)區(qū)中存在兩個(gè)索引文件,一個(gè)索引文件為用戶使用 的,另一個(gè)索引文件用于備份,為了表述清楚,將用戶使用的索引文件稱為第一索引文件, 將用于備份的索引文件稱為第二索引文件。本發(fā)明的方法及裝置實(shí)際上是對硬盤的數(shù)據(jù)區(qū)進(jìn)行管理的方法和裝置。圖2為本發(fā)明硬盤管理方法的流程圖?,F(xiàn)結(jié)合圖2,對本發(fā)明硬盤管理的方法進(jìn)行 說明本發(fā)明硬盤管理方法僅以硬盤包含的某一基本分區(qū)內(nèi)的數(shù)據(jù)區(qū)的管理為例進(jìn)行 說明,對硬盤包含的多個(gè)數(shù)據(jù)區(qū)的管理方法于此相同,在此不再贅述。本發(fā)明硬盤管理方法 包括格式化階段及讀寫階段。步驟201 建立第一索引文件頭和數(shù)據(jù)文件頭;所述第一索引文件頭用以記錄第一索引文件占用的每一扇區(qū)信息、每一扇區(qū)的狀 態(tài)信息、及每一扇區(qū)的替換信息。其中,所述每一扇區(qū)的狀態(tài)信息為表示該扇區(qū)是否存在壞 道的信息;比如,用0表示該扇區(qū)不存在壞道,用1表示該扇區(qū)存在壞道;所述每一扇區(qū)的 替換信息為用于替換的第二索引文件中的扇區(qū)信息;比如,第一索引文件占用的第2扇區(qū)存在壞道,已用第二索引文件中的第1扇區(qū)進(jìn)行了替換,則在第一索引文件頭中,第2扇區(qū) 的替換信息中記載了第二索引文件中的第1扇區(qū)的信息。所述數(shù)據(jù)文件頭用以記錄數(shù)據(jù)文件占用的每一扇區(qū)信息及每一扇區(qū)的狀態(tài)信息。在格式化預(yù)創(chuàng)建文件后,或者在對硬盤進(jìn)行首次讀寫操作時(shí),在創(chuàng)建的第一索引 文件中再創(chuàng)建一第一索引文件頭,在創(chuàng)建的每一數(shù)據(jù)文件中再創(chuàng)建一數(shù)據(jù)文件頭。可采用現(xiàn)有的預(yù)創(chuàng)建文件的方法對硬盤進(jìn)行格式化,在此不再對具體的預(yù)創(chuàng)建文 件的方法進(jìn)行贅述。步驟202:判斷待讀寫的文件是否為索引文件,如果是,執(zhí)行步驟203,否則執(zhí)行步 驟 209 ;根據(jù)待讀寫的文件參數(shù)判斷待讀寫的文件是索引文件,還是數(shù)據(jù)文件;如果是索 引文件,執(zhí)行步驟203,如果是數(shù)據(jù)文件,執(zhí)行步驟209。也可采用現(xiàn)有的利用文件的其它信 息判斷是索引文件,還是數(shù)據(jù)文件,在此不再贅述。步驟203 判斷待讀寫的第一索引文件中的扇區(qū)是否存在壞道,如果是,執(zhí)行步驟 204,否則執(zhí)行步驟208 ;該步驟包括步驟2031,根據(jù)第一索引文件頭中已保存的每一扇區(qū)的狀態(tài)信息判 斷待讀寫的第一索引文件占用的扇區(qū)是否存在壞道,如果是,執(zhí)行步驟204,否則執(zhí)行步驟 2032 ;步驟2032,對待讀寫的第一索引文件占用的扇區(qū)進(jìn)行讀寫操作,如果存在壞道,執(zhí)行 步驟204,如果沒有壞道,執(zhí)行步驟208。在判斷扇區(qū)是否存在壞道時(shí),可根據(jù)該扇區(qū)的讀寫速度來確定,當(dāng)讀寫速度低于 一預(yù)設(shè)閾值時(shí),該扇區(qū)存在壞道的幾率較高,確定該扇區(qū)存在壞道。所述預(yù)設(shè)閾值可根據(jù)經(jīng) 驗(yàn)進(jìn)行設(shè)置。步驟204:判讀是否存在用于替換該扇區(qū)的第二索引文件的扇區(qū),如果是,執(zhí)行步 驟205,否則執(zhí)行步驟206 ;判斷第一索引文件頭中是否已保存了對于存在壞道的扇區(qū)的替換信息,如果替 換信息中記載了用于替換的第二索引文件中的扇區(qū)信息,則執(zhí)行步驟205,否則,執(zhí)行步驟 206。步驟205 對第二索引文件中的扇區(qū)進(jìn)行讀寫,之后執(zhí)行步驟213 ;該步驟包括步驟2051,判斷是否為讀操作,如果是,執(zhí)行步驟2052,否則執(zhí)行步 驟2053 ;步驟2052,將存在壞道的扇區(qū)的數(shù)據(jù)拷貝至第二索引文件中用于替換的扇區(qū),讀 取第二索引文件中用于替換的扇區(qū);步驟2053,將數(shù)據(jù)寫入第二索引文件中用于替換的扇 區(qū)。在步驟2052中,在判定某一扇區(qū)的讀寫速度低于預(yù)設(shè)的速度時(shí),證明該扇區(qū)有壞 道的概率較大,此時(shí),仍可對該扇區(qū)進(jìn)行讀寫操作,僅是讀寫速度很慢;在這種情況下,可采 用較慢的讀取速度讀取該扇區(qū)的數(shù)據(jù),并將讀取的數(shù)據(jù)拷貝至第二索引文件中用于替換的 扇區(qū)。步驟206 從第二索引文件占用的扇區(qū)中選擇的一扇區(qū)進(jìn)行讀寫;該步驟包括步驟2061,根據(jù)第一索引文件頭中記載的第二索引文件中已用于替 換的扇區(qū)信息,從第二索引文件中選擇一未用于替換的扇區(qū),用選擇的扇區(qū)替換第一索引 文件中存在壞道的扇區(qū);步驟2062,判斷是否為讀操作,如果是,執(zhí)行步驟2063,否則執(zhí)行步驟2064 ;步驟2063,將存在壞道的扇區(qū)的數(shù)據(jù)拷貝至第二索引文件中選擇的用于替換的 扇區(qū),讀取第二索引文件中選擇的用于替換的扇區(qū);步驟2064,將數(shù)據(jù)寫入第二索引文件 中選擇的用于替換的扇區(qū)。步驟207 更新第一索引文件頭,之后執(zhí)行步驟213 ;將第一索引文件中存在壞道的扇區(qū)信息、及選擇的用于替換的第二索引文件中的 扇區(qū)信息保存于第一索引文件頭中。步驟208 對待讀寫的第一索引文件占用的扇區(qū)進(jìn)行讀寫,之后執(zhí)行步驟213 采用現(xiàn)有的數(shù)據(jù)讀寫方法,對待讀寫的第一索引文件占用的扇區(qū)進(jìn)行讀寫操作, 在此不再贅述。步驟209 判斷待讀寫的數(shù)據(jù)文件占用的扇區(qū)是否存在壞道,如果是,執(zhí)行步驟 210,否則執(zhí)行步驟212 ;該步驟包括步驟2091,根據(jù)數(shù)據(jù)文件頭中已保存的每一扇區(qū)的狀態(tài)信息判斷待 讀寫的數(shù)據(jù)文件占用的扇區(qū)是否存在壞道,如果是,執(zhí)行步驟210,否則執(zhí)行步驟2092;步 驟2092,直接對待讀寫的數(shù)據(jù)文件進(jìn)行讀寫操作,如果存在壞道,執(zhí)行步驟210,否則執(zhí)行 步驟212。在判斷扇區(qū)是否存在壞道時(shí),可根據(jù)該扇區(qū)的讀寫速度來確定,當(dāng)讀寫速度低于 一預(yù)設(shè)閾值時(shí),該扇區(qū)存在壞道的幾率較高,確定該扇區(qū)存在壞道。所述預(yù)設(shè)閾值可根據(jù)經(jīng) 驗(yàn)進(jìn)行設(shè)置。步驟210 對存在壞道的扇區(qū)的下一扇區(qū)進(jìn)行讀寫;跳過數(shù)據(jù)文件中存在壞道的扇區(qū),對存在壞道的扇區(qū)的下一扇區(qū)進(jìn)行讀寫操作。步驟211 更新數(shù)據(jù)文件頭,之后執(zhí)行步驟213 ;將數(shù)據(jù)文件中存在壞道的扇區(qū)信息保存于數(shù)據(jù)文件頭中。步驟212 對待讀寫的數(shù)據(jù)文件占用的扇區(qū)進(jìn)行讀寫;采用現(xiàn)有的數(shù)據(jù)讀寫方法,對待讀寫的數(shù)據(jù)文件占用的扇區(qū)進(jìn)行讀寫操作,在此 不再贅述。步驟213:結(jié)束。為了防止建立的第一索引文件頭和數(shù)據(jù)文件頭出現(xiàn)錯(cuò)誤導(dǎo)致硬盤報(bào)錯(cuò),在步驟 201與步驟202之間還進(jìn)一步包括根據(jù)已建立的第一索引文件頭和數(shù)據(jù)文件頭,在數(shù)據(jù)區(qū) 的第一索引文件之前建立總文件頭。所述總文件頭包含已建立的第一索引文件頭和數(shù)據(jù)文 件頭。在步驟202與步驟203之間進(jìn)一步包括判斷已建立的第一索引文件頭所占用的 扇區(qū)是否存在壞道,如果是,則從總文件頭中讀取第一索引文件頭;否則,從第一索引文件 內(nèi)讀取第一索引文件頭。若從總文件頭讀取第一索引文件頭,則步驟207中更新總文件頭 中的第一索引文件頭;若從第一索引文件中讀取第一索引文件頭,則步驟207中更新第一 索引文件中的第一索引文件頭。在步驟202與步驟209之間進(jìn)一步包括判斷已建立的數(shù)據(jù)文件頭所占用的扇區(qū) 是否存在壞道,如果是,則從總文件頭中讀取數(shù)據(jù)文件頭;否則,從數(shù)據(jù)文件內(nèi)讀取數(shù)據(jù)文 件頭。若從總文件頭中讀取數(shù)據(jù)文件頭,則步驟211中更新總文件頭中的數(shù)據(jù)文件頭;若從 數(shù)據(jù)文件中讀取數(shù)據(jù)文件頭,則步驟211中更新數(shù)據(jù)文件中的數(shù)據(jù)文件頭。
若首次對硬盤進(jìn)行讀寫時(shí)或格式化預(yù)創(chuàng)建文件時(shí),建立了第一索引文件頭和數(shù)據(jù) 文件頭,用戶每次需要對文件進(jìn)行讀寫操作,則按照步驟202至步驟213的方法進(jìn)行讀寫。若首次對硬盤進(jìn)行讀寫時(shí)或格式化預(yù)創(chuàng)建文件時(shí),沒有建立本發(fā)明提及的第一索 引文件頭和數(shù)據(jù)文件頭,則用戶每次對文件進(jìn)行讀寫操作時(shí),在確定待讀寫的文件為索引 文件后,判斷待讀寫的第一索引文件的扇區(qū)存在壞道,如果存在壞道,直接從第二索引文件 的扇區(qū)中選擇一個(gè)用于替換的扇區(qū),對第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫;在確定 待讀寫的文件為數(shù)據(jù)文件后,判斷待讀寫的數(shù)據(jù)文件的扇區(qū)是否存在壞道,如果存在壞道, 則直接跳過該扇區(qū),對該扇區(qū)的下一扇區(qū)進(jìn)行讀寫。圖3為本發(fā)明硬盤管理裝置的結(jié)構(gòu)示意圖?,F(xiàn)結(jié)合圖3,對本發(fā)明硬盤的管理裝置 的結(jié)構(gòu)進(jìn)行說明,具體如下本發(fā)明的裝置僅對硬盤30的數(shù)據(jù)區(qū)進(jìn)行管理。本發(fā)明的裝置包括判斷單元301、第一讀寫單元302和第二讀寫單元303。觸發(fā)單元301根據(jù)接收到的待讀寫的文件參數(shù)及讀寫指令,判斷待讀寫的文件屬 于索引文件還是數(shù)據(jù)文件,在確定待讀寫的文件為索引文件后,輸出待讀寫的文件參數(shù)至 第一讀寫單元302,并觸發(fā)第一讀寫單元302;在確定待讀寫的文件為數(shù)據(jù)文件后,輸出待 讀寫的文件參數(shù)至第二讀寫單元303,并觸發(fā)第二讀寫單元303。待讀寫的文件參數(shù)至少包 含文件名稱、屬性、預(yù)創(chuàng)建文件時(shí)的存儲(chǔ)位置。第一讀寫單元302根據(jù)觸發(fā)及待讀寫的文件參數(shù),對第一索引文件占用的扇區(qū)進(jìn) 行讀寫,判斷第一索引文件占用的扇區(qū)是否存在壞道,在確定待讀寫的第一索引文件的扇 區(qū)存在壞道,選擇第二索引文件的一扇區(qū)替換第一索引文件中存在壞道的扇區(qū),對第二索 弓丨文件中用于替換的扇區(qū)進(jìn)行讀寫。第二讀寫單元303根據(jù)觸發(fā)及待讀寫的文件參數(shù),對數(shù)據(jù)文件占用的扇區(qū)進(jìn)行讀 寫,判斷數(shù)據(jù)文件占用的扇區(qū)是否存在壞道,在確定待讀寫的數(shù)據(jù)文件的扇區(qū)存在壞道,直 接對數(shù)據(jù)文件中存在壞道的扇區(qū)的下一個(gè)扇區(qū)進(jìn)行讀寫。本發(fā)明的裝置還進(jìn)一步包括文件頭讀寫單元304。觸發(fā)單元301在首次接收到讀寫指令或接收到格式化指令后,進(jìn)一步輸出文件頭 建立指令至文件頭讀寫單元304。文件頭讀寫單元304根據(jù)接收到的文件頭建立指令,在第一索引文件中建立第一 索引文件頭,在數(shù)據(jù)文件中建立數(shù)據(jù)文件頭。所述第一索引文件頭用以記錄第一索引文件 占用的每一扇區(qū)信息、每一扇區(qū)的狀態(tài)信息、及每一扇區(qū)的替換信息。其中,所述每一扇區(qū) 的狀態(tài)信息為表示該扇區(qū)是否存在壞道的信息;所述每一扇區(qū)的替換信息為用于替換的第 二索引文件中的扇區(qū)信息。所述數(shù)據(jù)文件頭用以記錄數(shù)據(jù)文件占用的每一扇區(qū)信息及每一 扇區(qū)的狀態(tài)信息。文件頭讀寫單元304根據(jù)第一讀寫單元302的觸發(fā),從索引文件中獲取第一索引 文件頭,輸出第一索引文件頭至第一讀寫單元302;根據(jù)第一讀寫單元302輸出的更新后的 第一索引文件頭,對第一索引文件中的第一索引文件頭進(jìn)行修改。文件頭讀寫單元304根 據(jù)第二讀寫單元303的觸發(fā),從數(shù)據(jù)文件中獲取數(shù)據(jù)文件頭,輸出數(shù)據(jù)文件頭至第二讀寫 單元303 ;根據(jù)第二讀寫單元302輸出的更新后的數(shù)據(jù)文件頭,對數(shù)據(jù)文件中的數(shù)據(jù)文件頭 進(jìn)行修改。
第一讀寫單元302進(jìn)一步根據(jù)觸發(fā)單元301的觸發(fā),觸發(fā)文件頭讀寫單元304讀 取第一索引文件頭,從第一索引文件頭中獲取第一索引文件中待讀寫的扇區(qū)的狀態(tài)信息及 扇區(qū)的替換信息;根據(jù)扇區(qū)的狀態(tài)信息確定待讀寫的扇區(qū)是否存在壞道,根據(jù)扇區(qū)的替換 信息獲取第二索引文件中用于替換的扇區(qū)信息;第一讀寫單元302將其確定的存在壞道的 扇區(qū)信息和第二索引文件中用于替換的扇區(qū)信息對第一索引文件頭進(jìn)行更新,將更新后的 第一索引文件頭輸出至文件頭讀寫單元304。若第一索引文件頭中記錄了待讀寫的扇區(qū)的 狀態(tài)信息和替換信息,則第一讀寫單元302根據(jù)上述信息對第二索引文件中用于替換的扇 區(qū)進(jìn)行讀寫;若第一索引文件頭中記錄了待讀寫的扇區(qū)的狀態(tài)信息,未記錄待讀寫扇區(qū)的 替換信息,則第一讀寫單元302根據(jù)第一索引文件頭中每一扇區(qū)的替換信息及第二索引文 件的扇區(qū)信息,選擇第二索引文件中的一扇區(qū)來替換第一索引文件中存在壞道的扇區(qū),并 在第一索引文件頭中記錄該扇區(qū)的替換信息。若第一索引文件頭中未記錄待讀寫的扇區(qū)的 狀態(tài)信息和替換信息,則第一讀寫單元304確定待讀寫的扇區(qū)是否存在壞道,并在確定存 在壞道時(shí),選擇第二索引文件中用于替換的扇區(qū)。第二讀寫單元303進(jìn)一步根據(jù)觸發(fā)單元301的觸發(fā),觸發(fā)文件頭讀寫單元304讀 取數(shù)據(jù)文件頭,根據(jù)數(shù)據(jù)文件頭確定待讀寫的數(shù)據(jù)文件的扇區(qū)是否存在壞道;將確定的存 在壞道的扇區(qū)信息對數(shù)據(jù)文件頭進(jìn)行更新中,輸出更新后的數(shù)據(jù)文件頭。為了防止建立的第一索引文件頭和數(shù)據(jù)文件頭出現(xiàn)錯(cuò)誤導(dǎo)致硬盤報(bào)錯(cuò),該裝置進(jìn) 一步包括文件頭備份單元305。文件頭讀寫單元304在建立第一索引文件頭和數(shù)據(jù)文件 頭之后,進(jìn)一步觸發(fā)文件頭備份單元305 ;文件頭備份單元305根據(jù)觸發(fā),在第一索引文件 之前建立一總文件頭;所述總文件頭用于記錄所述第一索引文件頭和數(shù)據(jù)文件頭。文件頭 讀寫304在讀取第一索引文件頭時(shí),進(jìn)一步判斷第一索引文件中的第一索引文件頭所占的 扇區(qū)是否存在壞道,如果存在,則從總文件頭中獲取備份的第一索引文件頭;或者在讀取數(shù) 據(jù)文件頭時(shí),進(jìn)一步判斷數(shù)據(jù)文件中的數(shù)據(jù)文件頭所占的扇區(qū)是否存在壞道,如果存在,則 從總文件頭中獲取備份的數(shù)據(jù)文件頭。本發(fā)明的上述較佳實(shí)施例中,在第一索引文件占用的扇區(qū)存在壞道的情況下,用 第二索引文件中的扇區(qū)對存在壞道的扇區(qū)進(jìn)行替換,并對第一索引文件頭進(jìn)行更新;在數(shù) 據(jù)文件占用的扇區(qū)存在壞道的情況下,直接跳過存在壞道的扇區(qū),對存在壞道的扇區(qū)的下 一扇區(qū)進(jìn)行相應(yīng)的讀寫操作,降低了硬盤報(bào)錯(cuò)的概率,且在不進(jìn)行格式化的情況下,能夠?qū)?存在壞道的硬盤進(jìn)行正常的讀寫。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種硬盤管理方法,其特征在于,該方法為硬盤數(shù)據(jù)區(qū)的管理方法,該方法包括A、根據(jù)待讀寫的文件屬性判斷待讀寫文件的類型,確定為第一索引文件,執(zhí)行步驟B, 確定為數(shù)據(jù)文件,執(zhí)行步驟C ;所述第一索引文件為用戶使用的索引文件;B、確定待讀寫的第一索引文件的扇區(qū)存在壞道后,選擇第二索引文件中用于替換的扇 區(qū)進(jìn)行讀寫;所述第二索引文件為處于空閑的用于備份的索引文件;C、確定待讀寫的數(shù)據(jù)文件的扇區(qū)存在壞道后,對存在壞道的扇區(qū)的下一扇區(qū)進(jìn)行讀寫 操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A之前進(jìn)一步包括在第一索引文件中建立第一索引文件頭,在數(shù)據(jù)文件中建立數(shù)據(jù)文件頭;所述第一索引文件頭用以記錄第一索引文件占用的每一扇區(qū)的狀態(tài)信息及每一扇區(qū) 的替換信息;所述數(shù)據(jù)文件頭用以記錄數(shù)據(jù)文件占用的每一扇區(qū)的狀態(tài)信息;所述每一扇 區(qū)的狀態(tài)信息為表示該扇區(qū)是否存在壞道的信息;所述每一扇區(qū)的替換信息為用于替換的 第二索引文件中的扇區(qū)信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟B所述對第二索引文件中用于替換的 扇區(qū)進(jìn)行讀寫之后進(jìn)一步包括將第一索引文件中存在壞道的扇區(qū)信息和第二索引文件中 用于替換的扇區(qū)信息記錄于所述第一索引文件頭。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,步驟C所述對存在壞道的扇區(qū)的下一 扇區(qū)進(jìn)行讀寫操作之后進(jìn)一步包括將存在壞道的扇區(qū)信息記錄于所述數(shù)據(jù)文件頭。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在數(shù)據(jù)文件中建立數(shù)據(jù)文件頭之后 進(jìn)一步包括在第一索引文件之前建立一總文件頭;所述總文件頭包含第一索引文件頭和 數(shù)據(jù)文件頭。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟A與步驟B之間進(jìn)一步包括判斷第 一索引文件內(nèi)的第一索引文件頭所占用的扇區(qū)是否存在壞道,如果存在,則從總文件頭中 獲取第一索引文件頭,否則,從第一索引文件內(nèi)獲取第一索引文件頭。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,步驟B所述對第二索引文件中用于替換的 扇區(qū)進(jìn)行讀寫之后進(jìn)一步包括所述從總文件頭中獲取第一索引文件頭時(shí),將第一索引文 件中存在壞道的扇區(qū)信息和第二索引文件中用于替換的扇區(qū)信息記錄于所述總文件頭中 的第一索引文件頭;所述從第一索引文件內(nèi)獲取第一索引文件頭時(shí),將第一索引文件中存在壞道的扇區(qū)信 息和第二索引文件中用于替換的扇區(qū)信息記錄于所述第一索引文件中的第一索引文件頭。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟A與步驟C之間進(jìn)一步包括判斷數(shù) 據(jù)文件內(nèi)的數(shù)據(jù)文件頭所占用的扇區(qū)是否存在壞道,如果存在,則從總文件頭中獲取數(shù)據(jù) 文件頭,否則,從數(shù)據(jù)文件內(nèi)獲取數(shù)據(jù)文件頭。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,步驟C所述對存在壞道的扇區(qū)的下一扇區(qū) 進(jìn)行讀寫操作之后進(jìn)一步包括所述從總文件頭中獲取數(shù)據(jù)文件頭時(shí),將存在壞道的扇區(qū) 信息記錄于所述總文件頭中的數(shù)據(jù)文件頭;所述從數(shù)據(jù)文件內(nèi)獲取數(shù)據(jù)文件頭時(shí),將存在壞道的扇區(qū)信息記錄于所述數(shù)據(jù)文件內(nèi) 的數(shù)據(jù)文件頭。
10.根據(jù)權(quán)利要求2至9中任意一項(xiàng)所述的方法,其特征在于,步驟B所述選擇第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫包括Bi、根據(jù)第一索引文件頭中的每一扇區(qū)的替換信息及存在壞道的扇區(qū),判斷是否存在 用于替換的第二索引文件中的扇區(qū)信息,如果不存在,則根據(jù)第一索引文件頭中的每一扇 區(qū)的替換信息,從第二索引文件中選擇一用于替換的扇區(qū);如果存在,則直接從第一索引文 件頭中獲取第二索引文件中用于替換的扇區(qū)信息; B2、對第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫。
11.一種硬盤管理裝置,其特征在于,該裝置對硬盤數(shù)據(jù)區(qū)進(jìn)行管理,該裝置包括 觸發(fā)單元,根據(jù)待讀寫文件參數(shù)及讀寫指令,在確定待讀寫的文件為索引文件后,輸出待讀寫的文件參數(shù)至第一讀寫單元,并觸發(fā)第一讀寫單元;或者在確定待讀寫的文件為數(shù) 據(jù)文件后,輸出待讀寫的文件參數(shù)至第二讀寫單元,并觸發(fā)第二讀寫單元;所述待讀寫的文 件參數(shù)至少包含文件名稱、屬性及預(yù)創(chuàng)建文件時(shí)的存儲(chǔ)位置;第一讀寫單元,根據(jù)觸發(fā)及待讀寫的文件參數(shù),對第一索引文件占用的扇區(qū)進(jìn)行讀寫, 在確定待讀寫的第一索引文件的扇區(qū)存在壞道,選擇第二索引文件中用于替換的扇區(qū)進(jìn)行 讀寫;第二讀寫單元,根據(jù)觸發(fā)及待讀寫的文件參數(shù),對數(shù)據(jù)文件占用的扇區(qū)進(jìn)行讀寫,在 確定待讀寫的數(shù)據(jù)文件的扇區(qū)存在壞道,對數(shù)據(jù)文件存在壞道的扇區(qū)的下一個(gè)扇區(qū)進(jìn)行讀寫。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,該裝置進(jìn)一步包括文件頭讀寫單元; 所述觸發(fā)單元在首次接收到讀寫指令或接收到格式化指令后,進(jìn)一步輸出文件頭建立指令至所述文件頭讀寫單元;所述文件頭讀寫單元根據(jù)接收到的文件頭建立指令,在第一索引文件中建立第一索引 文件頭,在數(shù)據(jù)文件中建立數(shù)據(jù)文件頭;所述第一索引文件頭用以記錄第一索引文件占用的每一扇區(qū)信息、每一扇區(qū)的狀態(tài)信 息、及每一扇區(qū)的替換信息;所述數(shù)據(jù)文件頭用以記錄數(shù)據(jù)文件占用的每一扇區(qū)信息及每 一扇區(qū)的狀態(tài)信息;所述每一扇區(qū)的狀態(tài)信息為表示該扇區(qū)是否存在壞道的信息;所述每 一扇區(qū)的替換信息為用于替換的第二索引文件中的扇區(qū)信息。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第一讀寫單元進(jìn)一步根據(jù)觸發(fā)及待讀寫的文件參數(shù),觸發(fā)文件頭讀寫單元讀取第 一索引文件頭,從第一索引文件頭獲取待讀寫的扇區(qū)的狀態(tài)信息和待讀寫的扇區(qū)的替換信 息;將第一索引文件中存在壞道的扇區(qū)的信息及第二索引文件中用于替換的扇區(qū)信息記錄 于第一索引文件頭中,輸出更新后的第一索引文件頭至所述文件頭讀寫單元;所述第二讀寫單元進(jìn)一步根據(jù)觸發(fā)及待讀寫的文件參數(shù),觸發(fā)文件頭讀寫單元讀取數(shù) 據(jù)文件頭,從數(shù)據(jù)文件頭中獲取待讀寫的扇區(qū)的狀態(tài)信息;將數(shù)據(jù)文件中存在壞道的扇區(qū) 的信息記錄于數(shù)據(jù)文件頭中,輸出更新后的數(shù)據(jù)文件頭至所述文件頭讀寫單元;所述文件頭讀取單元進(jìn)一步根據(jù)第一讀寫單元的觸發(fā),讀取第一索引文件頭,輸出第 一索引文件頭至所述第一讀寫單元;或者根據(jù)第二讀寫單元的觸發(fā),讀取數(shù)據(jù)文件頭,輸出 數(shù)據(jù)文件頭至所述第二讀寫單元;根據(jù)接收到的更新后的第一索引文件頭修改第一索引文 件頭;或者根據(jù)接收到的更新后的數(shù)據(jù)文件頭修改數(shù)據(jù)文件頭。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,該裝置進(jìn)一步包括文件頭備份單元;所述文件頭讀寫單元在創(chuàng)建第一索引文件頭和數(shù)據(jù)文件頭后,進(jìn)一步觸發(fā)所述文件頭 備份單元;所述文件頭備份單元根據(jù)觸發(fā),在第一索引文件前建立一總文件頭;所述總文件頭用 以備份所述第一索引文件頭和數(shù)據(jù)文件頭。
全文摘要
本發(fā)明提供了一種硬盤管理方法,該方法為硬盤數(shù)據(jù)區(qū)的管理方法,該方法包括A、根據(jù)待讀寫的文件屬性判斷待讀寫文件的類型,確定為第一索引文件,執(zhí)行步驟B,確定為數(shù)據(jù)文件,執(zhí)行步驟C;所述第一索引文件為用戶使用的索引文件;B、確定待讀寫的第一索引文件的扇區(qū)存在壞道后,選擇第二索引文件中用于替換的扇區(qū)進(jìn)行讀寫;所述第二索引文件為處于空閑的用于備份的索引文件;C、確定待讀寫的數(shù)據(jù)文件的扇區(qū)存在壞道后,對存在壞道的扇區(qū)的下一扇區(qū)進(jìn)行讀寫操作。本發(fā)明還提供了一種硬盤管理裝置。采用本發(fā)明的方法及裝置,能夠在硬盤存在壞道且不進(jìn)行格式化的情況下,對硬盤進(jìn)行正常的讀寫。
文檔編號(hào)G06F3/06GK102063273SQ201010612650
公開日2011年5月18日 申請日期2010年12月22日 優(yōu)先權(quán)日2010年12月22日
發(fā)明者冀建成, 周文省, 胡揚(yáng)忠, 鄔偉琪, 陳禮進(jìn) 申請人:杭州海康威視數(shù)字技術(shù)股份有限公司