TWI461904B - Linux FAT檔案系統修復方法及裝置 - Google Patents

Linux FAT檔案系統修復方法及裝置 Download PDF

Info

Publication number
TWI461904B
TWI461904B TW101100661A TW101100661A TWI461904B TW I461904 B TWI461904 B TW I461904B TW 101100661 A TW101100661 A TW 101100661A TW 101100661 A TW101100661 A TW 101100661A TW I461904 B TWI461904 B TW I461904B
Authority
TW
Taiwan
Prior art keywords
cluster
fat
index item
file system
index
Prior art date
Application number
TW101100661A
Other languages
English (en)
Other versions
TW201310227A (zh
Inventor
Dejun Yu
Mingyong Sun
Original Assignee
Mstar Semiconductor Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mstar Semiconductor Inc filed Critical Mstar Semiconductor Inc
Publication of TW201310227A publication Critical patent/TW201310227A/zh
Application granted granted Critical
Publication of TWI461904B publication Critical patent/TWI461904B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

Description

Linux FAT檔案系統修復方法及裝置
本發明涉及電腦領域,特別是一種關於Linux FAT檔案系統修復方法以及相應的裝置。
檔案配置表(File Allocation Table,簡稱為FAT)檔案系統,是一種由微軟發明並擁有部分專利的檔案系統,FAT檔案系統最初的目的是供MS-DOS使用。FAT檔案系統當初在設計時,考慮當時電腦效能有限,所以未被複雜化,因而幾乎所有個人電腦的作業系統皆可支援FAT檔案系統。FAT檔案系統的此種特性使其成為理想的軟碟和記憶卡檔案系統,也適合用作不同作業系統中的資料交流。
目前,在嵌入式系統中,依賴於外接存儲設備的應用越來越多,FAT檔案系統以其簡單、高效等優點,在Linux嵌入式應用中佔據較多的應用。
FAT檔案系統包括檔案配置表,而檔案配置表記錄著硬碟資料的存儲位址。FAT檔案系統中的每一個檔案都有一組相對應的FAT鏈(chain)。這些與檔案相對應的FAT鏈被用來指定檔案所存放的一個或者多個叢集(cluster)的叢集位址。此外,每一個可用的叢集在檔案配置表中,皆對應於一個索引項(entry),通過在對應叢集編號的索引項內填入“表項值”來表明資料區中的該叢集是否佔用、閒置或是已損壞的。
嵌入式裝置經常採用Linux作業系統,並使用FAT檔案系統紀錄檔案位址(以下簡稱為Linux FAT)。在Linux FAT的環境下,一旦對檔案進行讀寫時,如果由於意外斷電或者用戶非法拔盤等操作,將導致FAT檔案系統損壞,而現有技術並未提供檔案修復的功能。對這些損壞的檔案,如果後續再對其操作可能會造成無法讀取損壞的檔案,甚至可能會造成整個系統崩潰的嚴重後果。
儘管習用技術可以透過如個人電腦系統所提供的修復工具,對這些損壞的檔案進行完全修復,但這種修復方法耗時太長,並不適用於嵌入式系統。
因此,亟待提供一種在Linux系統中快速修復以FAT檔案系統儲存檔案的方法,以使損失降到最低,並且避免可能導致的系統崩潰。
本發明主要解決的技術問題是提供一種Linux FAT檔案系統修復方法以及裝置,能夠通過自動修復因意外斷電或者非法拔盤等造成的FAT檔案系統損壞,使用戶感覺不到由此帶來的不便與困擾,提高了用戶體驗。
本發明的一方面係有關於一種檔案系統的修復方法,應用於Linux系統之檔案配置表(File Allocation Table,以下簡稱為FAT)檔案系統,該修復方法包含以下步驟:獲取與一檔案對應的一FAT鏈;依次檢查該FAT鏈所包含之至少一索引項是否有效;以及如果檢查出該至少一索引項之一者為無效,則將該索引項改為有效。
本發明的另一方面係有關於一種檔案系統的修復裝置,應用於Linux系統之檔案配置表(File Allocation Table,以下簡稱為FAT)檔案系統,該修復裝置包含:一第一擷取模組,其係用於獲取與一檔案對應的一FAT鏈;一檢查模組,其係用於依次檢查該FAT鏈所包含之至少一索引項是否有效;以及一第一修改模組,其係用於當檢查出該至少一索引項無效時,將該至少一索引項修改為有效。
本發明的有益效果是:區別于現有技術的情況,本發明通過檢查檔案配置表的有效性,當無效時,將其更改為有效,使得後續對檔案進行讀寫時,都可以正常進行;通過自動修復因意外斷電或者非法拔盤等造成的FAT檔案系統損壞,使用戶感覺不到由此帶來的不便與困擾,提高了用戶體驗。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
請參閱圖1,其係根據本發明之實施例在Linux系統中,對於FAT檔案系統進行修復之資料流程圖。
首先,獲取與檔案相對應的FAT鏈(步驟101)。FAT檔案系統包括檔案配置表,檔案配置表記錄著硬碟資料的存儲位址,每一個檔案都有一組FAT鏈指定其存放的一個或者多個叢集的叢集位址。因此在取得檔案名稱而欲存取檔案時,首先獲取該檔案在檔案配置表中對應的FAT鏈。
從FAT鏈的目錄項中獲取第一個叢集的叢集編號(步驟102)。也就是在獲取檔案對應的FAT鏈後,從FAT鏈的目錄項中,擷取出代表檔案所儲存之第一個叢集的叢集編號。
根據第一個叢集的叢集編號獲取對應的叢集的索引項(步驟103)。每個叢集有唯一對應的叢集編號,且每個叢集有一個唯一索引項,用於記載該叢集是否佔用、閒置或是已損壞的。因此,獲取叢集編號就能根據該叢集編號獲取對應的叢集的索引項。
判斷索引項是否為已使用狀態(步驟104)。索引項用於記載相對應之叢集的狀態,例如是否已被佔用、閒置或是已損壞的。在根據叢集編號獲取對應的叢集的索引項後,根據索引項的資料判斷索引項是否為已使用狀態。
如果索引項記錄的是一個叢集編號,代表檔案仍需使用其他叢集來儲存,因此,索引項紀錄的叢集編號代表下一個叢集的叢集編號,此時便判斷該索引項為已使用狀態,是有效的。
如果索引項代表為閒置狀態,例如FREE(0),則說明本叢集的叢集編號已經寫入到FAT鏈的目錄項中,而該叢集對應的索引項卻仍然未更新,則判斷該索引項無效。
將索引項修改為結束標識(步驟105)。亦即,如果步驟104中判斷出索引項是閒置狀態,例如為FREE(0),則將索引項改為結束標識並結束流程。結束標識的值可以為EOF(0x0FFFFFFF)。
請參閱圖2、圖3,前者說明本發明實施例FAT鏈出錯情況的示意圖,後者說明當圖2中的FAT鏈修復後的示意圖。
如圖2所示,從FAT鏈的目錄項中獲取第一個叢集的叢集編號為218,根據第一個叢集的叢集編號218而查找與其對應之叢集的索引項。此處與第一個叢集的叢集編號218相對應的索引項顯示為FREE(0),即,為閒置狀態。
圖2說明的情形是,當檔案或者資料夾已經分配第一個叢集,而且第一個叢集的叢集編號已經寫入到目錄項中,但是與叢集對應的檔案配置表中的索引項卻仍然未更新,仍然被標識為閒置狀態。這種情況會導致讀取檔案或者資料夾時,讀不到資料而使檔案的讀取發生錯誤甚至使系統崩潰。
對於這種情況,可以將檔案配置表中與叢集對應的索引項設置為EOF(0x0FFFFFFF),即如圖3所示,將第一個叢集的叢集編號修改為結束標識。此種作法可以避免讀取檔案時發生錯誤,或者出現導致系統崩潰的現象。
接著判斷索引項的叢集編號是否等於FAT檔案系統所能表示的最大長度(步驟106)。更進一步來說,如果步驟104中判斷出索引項代表已使用狀態,則獲取索引項的叢集編號,以及FAT檔案系統所能表示的最大長度,並判斷索引項的叢集編號是否等於FAT檔案系統所能表示的最大長度。
叢集編號包括邏輯叢集編號(logical cluster number,簡稱為LCN)和虛擬叢集編號(virtual cluster number,簡稱為VCN),彼此一一對應。
邏輯叢集編號是對整個卷中所有的叢集從頭到尾所進行的簡單編號。虛擬叢集編號則是對屬於特定檔案的叢集從頭到尾進行編號。
因為每個叢集的大小一定,所以根據虛擬叢集編號就能清楚地知道到從第一個叢集開始到本叢集為止,該檔案的大小。由於邏輯叢集編號和虛擬叢集編號一一對應,因此,只要知道邏輯叢集編號,也能清楚地知道特定檔案的大小。
當索引項的叢集編號與FAT檔案系統所能表示的最大長度相等時,便將索引項改為結束標識(步驟107)。如果步驟106中判斷出索引項的虛擬叢集編號,與FAT檔案系統所能表示的最大長度相等,則將該索引項的內容修改為結束標識,並結束流程。更進一步的說明則請參閱圖4、5的說明。
以FAT32為例,最大能存放4G的文件,對應最大的虛擬叢集編號為0x100000。因此,若檔案系統為FAT32時,便以0x100000的數值作為步驟106的比較對象。
在圖4中,目錄項中第一個叢集的邏輯叢集編號為218,邏輯叢集編號218對應的虛擬叢集編號為0x1。叢集218中的索引項中記錄的下一個叢集的邏輯叢集編號為1000,邏輯叢集編號1000對應的虛擬叢集編號為0x2;如此一個叢集接一個叢集,形成FAT鏈。
叢集m對應的虛擬叢集編號為0x100000,已經是FAT32的最大檔存儲長度,但是叢集m的索引項中顯示本叢集並不是檔案的最後一個叢集,還有下一個叢集n。也就是說,虛擬叢集編號與索引項的內容彼此矛盾,而這便可能使後續進行檔案讀取時發生錯誤。
換言之,儘管FAT鏈中顯示的檔案長度大於4G,但是實際資料區存不下超過4G部分的資料。如此一來,檔案在被讀取的時候,就會因為找不到資料而讀取失敗。導致由於檢測到異常、損壞而被設置為唯讀,或者導致系統崩潰。
對於這種情況,可以將末尾叢集的索引項設置為EOF(0x0FFFFFFF),即設置為結束標識。末尾叢集指的是:在FAT鏈所包含之各索引項中,下一個叢集的虛擬叢集編號等於FAT檔案系統所能表示的最大長度的叢集。
如圖5所示;雖然此種操作方式會丟失一部分資料,與完備的、無任何資料損失的修復相比有一定差距,但是由於進行完全無數據損失的修復時,需要對整個檔案配置表和所有目錄項進行掃描、分析,耗時較長。
特別是當FAT分區的容量增長時,所耗的時間呈幾何增長,並且又考慮到耗時長的修復不適合即時要求比較高的嵌入式領域,所以本實施例提供的修復方法是簡單有效的。此種作法增強了FAT檔案系統的穩定性,提高了用戶體驗。
隨後再判斷是否已經到FAT鏈結尾(步驟108)。在判斷是否已經檢查到本檔案之FAT鏈的結尾時,如果已經到FAT鏈的結尾,即索引項中的記錄為EOF(0x0FFFFFFF),則檢測結束;反之,如果還沒有到FAT鏈的結尾,則執行步驟109。
獲取下一個叢集的叢集編號(步驟109)。如果步驟108中判斷出還未到檔案的結尾,則獲取下一個叢集的叢集編號,直至FAT鏈的結尾。
更具體的說明請參閱圖6、7。其中圖6是本發明實施例FAT鏈另一出錯情況(在中間斷開)的示意圖。而圖7是根據本發明構想之修復方法的較佳實施例,針對圖6中的FAT鏈修復後的示意圖。
如圖6所示,從FAT鏈的目錄項中獲取第一個叢集的叢集編號為218,叢集218的索引項中記錄了下一個叢集的叢集編號為1000。透過叢集編號1000找到叢集1000,而叢集1000的索引項中記錄了下一個叢集的叢集編號為800。由於叢集800的索引項記錄的不是結束標識EOF(0x0FFFFFFF),代表該檔案所對應之FAT鏈還沒有結束,但是叢集800的索引項顯示FREE(0),即是閒置的。
在還沒有檢查到結束標識EOF(0x0FFFFFFF)之前,FAT鏈中出現FREE(0)的索引項,說明該FAT鏈在中間斷開了。這種情況會導致讀取檔案或者資料夾時,讀不到資料,導致出錯甚至系統崩潰。因此,對於這種情況,可以將出錯的索引項設置為EOF(0x0FFFFFFF),即設置為結束標識。
如圖7所示,雖然該操作會丟失一部分資料,但是讀檔案時不至於會出錯或者出現導致系統崩潰的錯誤。
請參閱圖8,其係針對FAT鏈的長度超過FAT檔案系統所能表示的最大長度的情況下,對於檔案系統進行修復的更進一步說明。
首先獲取FAT鏈的長度和FAT檔案系統所能表示的最大長度(步驟801)。
判斷FAT鏈的長度是否大於FAT檔案系統所能表示的最大長度(步驟802)。如果FAT鏈的長度小於FAT檔案系統所能表示的最大長度,則結束流程;如果FAT鏈的長度大於FAT檔案系統所能表示的最大長度,則執行步驟803。
末尾叢集是索引項中記錄的下一個叢集的叢集編號等於FAT檔案系統所能表示的最大長度的叢集。當FAT鏈的長度大於FAT檔案系統所能表示的最大長度時,接著查找末尾叢集(步驟803)。也就是從FAT鏈的第一個叢集開始,依次查找末尾叢集。
將叢集的索引項修改為結束標識。在步驟803中從FAT鏈中查找到末尾叢集後,將末尾叢集的索引項改為結束標識並結束流程(步驟804)。
儘管本實施例中的操作會丟失一部分資料,與習用技術所採用之完備的、無任何資料損失的修復相比有一定差距。但是習用技術在進行完全無數據損失的修復時,需要對整個檔案配置表和所有目錄項進行掃描、分析,耗時較長。
此外,當FAT分區的容量增長時,採用習用技術之作法所耗的時間呈幾何增長。再者,習用技術的修復方法耗時較長,並不適合即時要求比較高的嵌入式領域,所以本實施例提供的修復方法是簡單有效的。不但提升了FAT檔案系統的穩定性,也提高了用戶的使用經驗。
請參閱圖9,其係根據本發明構想之較佳實施例中,對於Linux FAT檔案系統提供修復功能之修復裝置的邏輯結構示意圖。本發明Linux FAT檔案系統修復裝置的實施例包括:第一擷取模組901、檢查模組902,以及第一修改模組903。
承上,第一擷取模組901用於獲取檔對應的FAT鏈;檢查模組902用於依次檢查第一擷取模組901獲取的FAT鏈中的索引項是否有效;第一修改模組903則用於當檢查模組902檢查出索引項無效時,將索引項改為有效。
其中,檢查模組902包括:第一擷取單元(未繪示)、第二擷取單元(未繪示),以及第一判斷單元(未繪示)。利用第一擷取單元從擷取模組901獲取的FAT鏈的目錄項中獲取第一個叢集的叢集編號;將第二擷取單元用於根據第一擷取單元獲取的叢集編號獲取對應的叢集的索引項;而第一判斷單元則用於判斷由第二擷取單元獲取的索引項的狀態是否為已使用狀態。
當第一判斷單元在判斷由第二擷取單元所獲取之索引項時,如果索引項代表的是下一個叢集的叢集編號,則該索引項有效;如果該索引項顯示為閒置狀態,即為FREE(0),則判斷該索引項無效。
進一步的,本實施例中的Linux FAT檔案系統修復裝置還包括:第二擷取模組904。提供第二擷取模組的目的是,當第一判斷單元判斷出索引項是已使用狀態時,獲取下一個叢集的叢集編號。
請參閱圖10,其係本發明實施例Linux FAT檔案系統修復裝置的另一邏輯結構示意圖。本實施例進一步說明Linux FAT檔案系統修復裝置還可包括:第二判斷模組905、第二修改模組906、第三擷取模組907。
第二判斷模組905用於當第一判斷單元判斷出索引項是已使用狀態時,再判斷該索引項的叢集編號是否等於FAT檔案系統所能表示的最大長度。
第二修改模組906用於修改索引項的內容,也就是當第二判斷模組判斷出索引項所紀錄的叢集編號等於FAT檔案系統所能表示的最大長度時,利用第二修改模組906將索引項修改為結束標識。
第三擷取模組907用於擷取下一個叢集的叢集編號,也就是當第二判斷模組905判斷出索引項的叢集編號小於FAT檔案系統所能表示的最大長度時,利用第三擷取模組907來獲取下一個叢集的叢集編號。
在另一實施例中,本實施例中Linux FAT檔案系統修復裝置還包括第三修改模組(未繪示)。提供第三修改模組的用途是,當FAT鏈的長度大於FAT檔案系統所能表示的最大長度時,將末尾叢集的索引項改為結束標識,該末尾叢集是索引項為該FAT檔案系統所能表示的最大長度的叢集。
再者,第三修改模組可包含:擷取單元(未繪示)、判斷單元(未繪示),以及修改單元(未繪示)。以下說明各個單元的用途與功能。
首先,擷取單元係用於獲取FAT鏈的長度和FAT檔案系統所能表示的最大長度。其次,判斷單元係用於判斷擷取單元獲取的FAT鏈的長度是否大於FAT檔案系統所能表示的最大長度;修改單元用於當判斷單元判斷出FAT鏈的長度大於FAT檔案系統所能表示的最大長度時,查找末尾叢集,該末尾叢集是索引項中記錄的下一個叢集的叢集編號等於該FAT檔案系統所能表示的最大長度的叢集,並將末尾叢集的索引項修改為結束標識。
根據本發明構想的較佳實施例,會對檔案配置表檢查其有效性,當無效時,將其更改為有效,使得後續對檔的讀寫都可以正常進行。本發明亦提供自動修復的功能,對於因意外斷電或者非法移除磁碟、任意插拔儲存裝置等情形,而造成的FAT檔案系統損壞進行自動修復。此種作法讓使用戶感覺不到由此帶來的不便與困擾,提高了用戶體驗度。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
901‧‧‧第一擷取模組
902‧‧‧檢查模組
903‧‧‧第一修改模組
904‧‧‧第二擷取模組
905‧‧‧第二判斷模組
906‧‧‧第二修改模組
907‧‧‧第三擷取模組
圖1,其係根據本發明之實施例在Linux系統中,對於FAT檔案系統進行修復之資料流程圖。
圖2,是本發明實施例FAT鏈出錯情況的示意圖。
圖3,是本發明實施例圖2中的FAT鏈修復後的示意圖。
圖4,是本發明實施例FAT鏈另一出錯情況的示意圖。
圖5,是本發明實施例圖4中的FAT鏈修復後的示意圖。
圖6,是本發明實施例FAT鏈另一出錯情況的示意圖。
圖7,是本發明實施例圖6中的FAT鏈修復後的示意圖。
圖8,是本發明實施例圖4中的FAT鏈修復方法的資料流程程示意圖。
圖9,是本發明實施例Linux FAT檔案系統修復裝置的邏輯結構示意圖。
圖10,是本發明實施例Linux FAT檔案系統修復裝置的另一邏輯結構示意圖。

Claims (10)

  1. 一種檔案系統的修復方法,應用於Linux系統之檔案配置表(File Allocation Table,以下簡稱為FAT)檔案系統,該修復方法包含以下步驟:獲取與一檔案對應的一FAT鏈;依次檢查該FAT鏈所包含之至少一索引項是否有效;以及如果檢查出該至少一索引項之一者為無效,則將該索引項改為有效,其中依次檢查該FAT鏈所包含之至少一索引項是否有效之步驟係包含以下步驟:從該FAT鏈的一目錄項中獲取一第一個叢集的叢集編號;根據該第一個叢集的叢集編號而獲取對應之叢集的一索引項;判斷該索引項是否為一已使用狀態,如果該索引項為下一個叢集的叢集編號則判斷該索引項有效,如果該索引項代表一閒置狀態,則判斷該索引項無效,並將該索引項改為一結束標識。
  2. 如申請專利範圍第1項所述之修復方法,其中依次檢查該FAT鏈所包含之該至少一索引項是否有效的步驟更包含以下步驟:如果判斷出該索引項為該已使用狀態,則獲取下一個叢集的叢集編號,直至該FAT鏈的結尾。
  3. 如申請專利範圍第2項所述之修復方法,其中依次檢查該FAT鏈所包含之該至少一索引項是否有效的步驟更包含以下步驟: 當該至少一索引項為該已使用狀態,則再判斷該索引項的叢集編號是否等於一FAT檔案系統所能表示的最大長度;當該至少一索引項的叢集編號等於該FAT檔案系統所能表示的最大長度,則將該索引項改為該結束標識;以及當該至少一索引項的叢集編號小於該FAT檔案系統所能表示的最大長度,則獲取下一個叢集的叢集編號,直至該FAT鏈的結尾。
  4. 如申請專利範圍第1項所述之修復方法,其中更包含以下步驟:如果該FAT鏈所代表的長度大於一FAT檔案系統所能表示的最大長度,則將一末尾叢集的索引項改為一結束標識,其中該末尾叢集是索引項為該FAT檔案系統所能表示的最大長度的叢集。
  5. 如申請專利範圍第4項所述之修復方法,其中如果該FAT鏈的長度大於該FAT檔案系統所能表示的最大長度,則將該末尾叢集的索引項改為該結束標識之步驟係包含以下步驟:獲取該FAT鏈的長度和該FAT檔案系統所能表示的最大長度;判斷該FAT鏈的長度是否大於該FAT檔案系統所能表示的最大長度;以及如果該FAT鏈的長度大於該FAT檔案系統所能表示的最大長度,則查找該末尾叢集,並將該末尾叢集的索引項 改為該結束標識,其中該末尾叢集是索引項中記錄的一個叢集,該叢集的下一個叢集的叢集編號等於該FAT檔案系統所能表示的最大長度。
  6. 一種檔案系統的修復裝置,應用於Linux系統之檔案配置表(File Allocation Table,以下簡稱為FAT)檔案系統,該修復裝置包含:一第一擷取模組,其係用於獲取與一檔案對應的一FAT鏈;一檢查模組,其係用於依次檢查該FAT鏈所包含之至少一索引項是否有效,該檢查模組係包含:一第一擷取單元,其係用於從該第一擷取模組獲取該FAT鏈之目錄項中,獲取一第一個叢集的叢集編號;一第二擷取單元,其係根據該第一個叢集的叢集編號而獲取對應的一索引項;以及一第一判斷單元,其係判斷該索引項是否為一已使用狀態,如果該索引項代表下一個叢集的叢集編號則該索引項有效,如果該索引項代表一閒置狀態,則判斷該索引項無效;以及一第一修改模組,其係用於當檢查出該至少一索引項無效時,將該至少一索引項修改為有效。
  7. 如申請專利範圍第6項所述之修復裝置,其中更包含:一第二擷取模組,其係用於當該索引項為該已使用狀態時,擷取下一個叢集的叢集編號。
  8. 如申請專利範圍第7項所述之修復裝置,其中更包含:一第二判斷模組,其係用於當該索引項為該已使用狀態時,再判斷該索引項的叢集編號是否等於一FAT檔案系統所能表示的最大長度;一第二修改模組,其係用於當該索引項的叢集編號等於該FAT檔案系統所能表示的最大長度時,將該索引項修改為一結束標識;以及一第三擷取模組,其係用於當該第二判斷模組判斷出該索引項的叢集編號小於該FAT檔案系統所能表示的最大長度時,獲取下一個叢集的叢集編號。
  9. 如申請專利範圍第6項所述之修復裝置,其中更包含:一第三修改模組,其係用於當該FAT鏈的長度大於該FAT檔案系統所能表示的最大長度時,將一末尾叢集的索引項改為一結束標識,其中該末尾叢集是索引項為該FAT檔案系統所能表示的最大長度的叢集。
  10. 如申請專利範圍第9項所述之修復裝置,其中該第三修改模組包括:一擷取單元,其係用於獲取FAT鏈的長度和該FAT檔案系統所能表示的最大長度;一判斷單元,其係用於判斷該FAT鏈的長度是否大於該FAT檔案系統所能表示的最大長度;以及一修改單元,其係用於當該FAT鏈的長度大於該FAT檔案系統所能表示的最大長度時,查找該末尾叢集,並將 該末尾叢集的索引項改為該結束標識,其中該末尾叢集為索引項中記錄的一個叢集,該叢集的下一個叢集的叢集編號等於該FAT檔案系統所能表示的最大長度的叢集。
TW101100661A 2011-08-16 2012-01-06 Linux FAT檔案系統修復方法及裝置 TWI461904B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011102348858A CN102314490B (zh) 2011-08-16 2011-08-16 一种Linux FAT文件系统修复方法及装置

Publications (2)

Publication Number Publication Date
TW201310227A TW201310227A (zh) 2013-03-01
TWI461904B true TWI461904B (zh) 2014-11-21

Family

ID=45427655

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101100661A TWI461904B (zh) 2011-08-16 2012-01-06 Linux FAT檔案系統修復方法及裝置

Country Status (3)

Country Link
US (1) US20130046736A1 (zh)
CN (1) CN102314490B (zh)
TW (1) TWI461904B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831025B (zh) * 2012-08-06 2015-09-23 厦门市美亚柏科信息股份有限公司 一种fat32文件系统的dbr数据修复方法
US9785517B2 (en) * 2015-06-10 2017-10-10 International Business Machines Corporation Rebuilding damaged areas of a volume table using a volume data set
CN105072372B (zh) * 2015-07-30 2019-03-19 成都亿盟恒信科技有限公司 Dvr终端上的fat文件系统自动修复方法
CN106528830B (zh) * 2016-11-16 2019-05-10 华为技术有限公司 一种恢复文件索引目录的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1272672A (zh) * 1999-02-26 2000-11-08 索尼公司 记录方法、管理方法和记录设备
TW548542B (en) * 1999-10-12 2003-08-21 Finaldata Inc Data recovery method, said method stored on computer readable medium, and remote data control method and system
CN1890645A (zh) * 2003-12-03 2007-01-03 松下电器产业株式会社 信息记录介质的数据处理装置以及数据记录方法
CN1945571A (zh) * 2006-08-16 2007-04-11 珠海金山软件股份有限公司 Fat卷中重建目录结构和恢复数据的方法
CN101706783A (zh) * 2009-11-16 2010-05-12 中兴通讯股份有限公司 一种嵌入式设备文件检测修复方法和装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623651A (en) * 1994-06-21 1997-04-22 Microsoft Corporation Method and system for repairing cross-linked clusters and reattaching lost directories on a storage device
RU2257609C2 (ru) * 1999-10-21 2005-07-27 Мацусита Электрик Индастриал Ко., Лтд. Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти
KR100896145B1 (ko) * 2001-08-02 2009-05-12 파나소닉 주식회사 정보 기록 매체, 정보 기록 방법, 정보 기록 장치, 정보 재생 방법 및 정보 재생 장치
CN100458734C (zh) * 2003-11-21 2009-02-04 深圳市朗科科技股份有限公司 移动存储装置的数据管理方法
US7523140B2 (en) * 2004-03-01 2009-04-21 Sandisk Il Ltd. File system that manages files according to content
KR100678888B1 (ko) * 2004-07-19 2007-02-05 삼성전자주식회사 정보를 기록하고 읽는 장치 및 방법
TWI300186B (en) * 2004-07-30 2008-08-21 Mediatek Inc Method and apparatus for data recording with pseudo-merge
WO2006098212A1 (ja) * 2005-03-15 2006-09-21 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US7350049B1 (en) * 2005-09-13 2008-03-25 Vimicro Corporation Method and apparatus for managing access to a file allocation table
CN101268449B (zh) * 2005-09-22 2012-04-04 松下电器产业株式会社 数据记录装置以及数据记录方法
JP2007122221A (ja) * 2005-10-26 2007-05-17 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7917479B2 (en) * 2007-03-20 2011-03-29 Micron Technology, Inc. Non-volatile memory devices, systems including same and associated methods
CN100507919C (zh) * 2007-05-11 2009-07-01 北京中星微电子有限公司 一种fat文件系统及其处理方法
KR20090097696A (ko) * 2008-03-12 2009-09-16 삼성전자주식회사 파일 액세스 방법 및 이를 이용한 시스템
US8271751B2 (en) * 2008-04-24 2012-09-18 Echostar Technologies L.L.C. Systems and methods for reliably managing files in a computer system
JP5198245B2 (ja) * 2008-12-27 2013-05-15 株式会社東芝 メモリシステム
TWI408551B (zh) * 2009-10-28 2013-09-11 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與資料處理方法
US9110919B2 (en) * 2009-10-30 2015-08-18 Symantec Corporation Method for quickly identifying data residing on a volume in a multivolume file system
JP5558093B2 (ja) * 2009-12-25 2014-07-23 株式会社東芝 半導体装置及びメモリシステム
US8468439B2 (en) * 2011-06-02 2013-06-18 Nexus Technology, Inc. Speed-optimized computation of cyclic redundancy check codes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1272672A (zh) * 1999-02-26 2000-11-08 索尼公司 记录方法、管理方法和记录设备
TW548542B (en) * 1999-10-12 2003-08-21 Finaldata Inc Data recovery method, said method stored on computer readable medium, and remote data control method and system
CN1890645A (zh) * 2003-12-03 2007-01-03 松下电器产业株式会社 信息记录介质的数据处理装置以及数据记录方法
CN1945571A (zh) * 2006-08-16 2007-04-11 珠海金山软件股份有限公司 Fat卷中重建目录结构和恢复数据的方法
CN101706783A (zh) * 2009-11-16 2010-05-12 中兴通讯股份有限公司 一种嵌入式设备文件检测修复方法和装置

Also Published As

Publication number Publication date
US20130046736A1 (en) 2013-02-21
CN102314490B (zh) 2013-07-10
TW201310227A (zh) 2013-03-01
CN102314490A (zh) 2012-01-11

Similar Documents

Publication Publication Date Title
US8924664B2 (en) Logical object deletion
RU2434269C2 (ru) Многопротокольное съемное запоминающее устройство
US8838875B2 (en) Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon
US10013166B2 (en) Virtual tape library system
US7913044B1 (en) Efficient incremental backups using a change database
US8782360B2 (en) Preserving an existing volume map in re-initializing a data storage volume
US8954398B1 (en) Systems and methods for managing deduplication reference data
CN112115002B (zh) 从损坏或不可信机械硬盘恢复文件的方法及装置
TWI461904B (zh) Linux FAT檔案系統修復方法及裝置
CN109496292A (zh) 一种磁盘管理方法、磁盘管理装置及电子设备
WO2017143843A1 (zh) 元数据修复方法及装置
US8024519B2 (en) Catalog recovery through system management facilities reverse transversal
CN112052121A (zh) 一种硬盘数据的恢复方法及系统
CN113448946B (zh) 数据迁移方法及装置、电子设备
EP2936319B1 (en) Virtual tape library system
KR101670473B1 (ko) MySQL InnoDB 데이터베이스에서 삭제된 데이터를 복원하는 방법
US7921324B2 (en) Providing file system availability during local path failure of a non-server node
CN112131194A (zh) 一种只读文件系统的文件存储控制方法及装置、存储介质
CN112231151A (zh) 一种数据恢复方法及系统
CN103700388A (zh) 文件记录装置、文件系统管理和恢复方法、更换驱动器
CN110008064A (zh) 一种raid恢复方法、装置、设备及介质
CN108733501A (zh) 一种盘符校正方法、装置、设备及计算机可读存储介质
TWI447712B (zh) 可延伸軔體介面下的硬碟測試方法
Zhang et al. Research on reliability improvement of NAND flash memory in FAT file system
CN108614747B (zh) 基于irig106标准存储的数据恢复方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees