檔案系統損壞

基本介紹

  • 中文名:檔案系統損壞
  • 外文名:The file system damage
檔案系統損壞一般都表現,檔案系統,分析NTFS檔案系統的結構,分析NTFS檔案系統的元檔案,分析$Boot元檔案,

檔案系統損壞一般都表現

分區無法訪問、目錄結構損壞、

檔案系統

檔案系統是作業系統用於明確存儲設備(常見的是磁碟,也有基於NAND Flash的固態硬碟)或分區上的檔案的方法和數據結構;即在存儲設備上組織檔案的方法。作業系統中負責管理和存儲檔案信息的軟體機構稱為檔案管理系統,簡稱檔案系統。檔案系統由三部分組成:檔案系統的接口,對對象操縱和管理的軟體集合,對象及屬性。從系統角度來看,檔案系統是對檔案存儲設備的空間進行組織和分配,負責檔案存儲並對存入的檔案進行保護和檢索的系統。具體地說,它負責為用戶建立檔案,存入、讀出、修改、轉儲檔案,控制檔案的存取,當用戶不再使用時撤銷檔案等。
檔案的系統是作業系統用於明確磁碟或分區上的檔案的方法和數據結構;即在磁碟上組織檔案的方法。也指用於存儲檔案的磁碟或分區,或檔案系統種類。因此,可以說"我有2個檔案系統"意思是他有2個分區,一個存檔案,或他用 "擴展檔案系統",意思是檔案系統的種類。
磁碟或分區和它所包括的檔案系統的不同是很重要的。少數程式(包括最有理由的產生檔案系統的程式)直接對磁碟或分區的原始扇區進行操作;這可能破壞一個存在的檔案系統。大部分程式基於檔案系統進行操作,在不同種檔案系統上不能工作。
一個分區或磁碟在作為檔案系統使用前,需要初始化,並將記錄數據結構寫到磁碟上。這個過程就叫建立檔案系統。
大部分UNIX檔案系統種類具有類似的通用結構,即使細節有些變化。其中心概念是超級塊superblock,i節點inode,數據塊data block,目錄塊directory block,和間接塊indirection block。超級塊包括檔案系統的總體信息,比如大小(其準確信息依賴檔案系統)。i節點包括除了名字外的一個檔案的所有信息,名字與i節點數目一起存在目錄中,目錄條目包括檔案名稱和檔案的i節點數目。i節點包括幾個數據塊的數目,用於存儲檔案的數據。i節點中只有少量數據塊數的空間,如果需要更多,會動態分配指向數據塊的指針空間。這些動態分配的塊是間接塊;為了找到數據塊,這名字指出它必須先找到間接塊的號碼。
UNIX檔案系統通常允許在檔案中產生孔,意思是檔案系統假裝檔案中有一個特殊的位置只有0位元組,但沒有為這檔案的這個位置保留實際的磁碟空間。這對小的二進制檔案經常發生,Linux共享庫、一些資料庫和其他一些特殊情況。
孔有一定的用處。在筆者的系統中,一個簡單的測量工具顯示在200MB使用的磁碟空間中,由於孔,節約了大約4MB。在這個系統中,程式相對較少,沒有資料庫檔案
檔案系統的功能包括:管理和調度檔案的存儲空間,提供檔案的邏輯結構、物理結構和存儲方法;實現檔案從標識到實際地址的映射,實現檔案的控制操作和存取操作,實現檔案信息的共享並提供可靠的檔案保密和保護措施,提供檔案的安全措施。
檔案的邏輯結構是依照檔案的內容的邏輯關係組織檔案結構。檔案的邏輯結構可以分為流式檔案和記錄式檔案。
流式檔案:檔案中的數據是一串字元流,沒有結構。
記錄檔案:由若干邏輯記錄組成,每條記錄又由相同的數據項組成,數據項的長度可以是確定的,也可以是不確定的。
主要缺陷:數據關聯差,數據不一致,冗餘性。

分析NTFS檔案系統的結構

當用戶將硬碟的一個分區格式化為NTFS分區時,就建立了一個NTFS檔案系統。NTFS檔案系統同FAT32檔案系統一樣,也是用“簇”為存儲單位,一個檔案總是占用一個或多個簇。
NTFS檔案系統使用邏輯簇號(LCN)和虛擬簇號(VCN)對分區進行管理。
邏輯簇號:既對分區內的第一個簇到最後一個簇進行編號,NTFS使用邏輯簇號對簇進行定位。
虛擬簇號:既將檔案所占用的簇從開頭到尾進行編號的,虛擬簇號不要求在物理上是連續的。
NTFS檔案系統一共由16個“元檔案”構成,它們是在分區格式化時寫入到硬碟的隱藏檔案(以"$"開頭),也是NTFS檔案系統的系統信息。
在NTFS檔案系統中這樣的檔案主要有16個,包括MFT本身($MFT)、MFT鏡像、日誌檔案、卷檔案、屬性定義表、根目錄、點陣圖檔案、引導檔案、壞簇檔案、安全檔案、大寫檔案、擴展元數據檔案、重解析點檔案、變更日誌檔案、配額管理檔案、對象ID檔案等,這16個元數據檔案總是占據著MFT的前16項紀錄,在16項以後就是用戶建立的檔案和資料夾的記錄了。

分析NTFS檔案系統的元檔案

磁碟採用的是MBR分區結構的話,則硬碟的第一個扇區是MBR扇區,MBR扇區中有分區表,可以根據分區表得知分區的起始位置(也就是DBR的位置)。如果磁碟採用的是GPT的分區結構,那么磁碟的第一個扇區應該是MBR保留扇區,第二個扇區應該是GPT頭,第三個扇區應該是分區表,從分區表中我就可以找到分區的起始位置(既DBR)。因此,作者後面的內容都是從分區起始位置(既DBR)開始的,而不是磁碟的0號扇區。

分析$Boot元檔案

$Boot元檔案由分區的第一個扇區(既DBR)和後面的15個扇區(既NTLDR區域)組成,其中DBR由“跳轉指令”、“OEM代號”、“BPB”、“引導程式”和“結束標誌”組成,這裡和FAT32檔案系統的DBR一樣。
下面我們分析一下DBR中的各參數
跳轉指令:本身占2位元組它將程式執行流程跳轉到引導程式處。
OEM代號:這部分占8位元組,其內容由創建該檔案系統的OEM廠商具體安排。
BPB:NTFS檔案系統的BPB從DBR的第12個位元組開始,占用73位元組,記錄了有關該檔案系統的重要信息,下表中的內容包含了“跳轉指令”、“OEM代號”以及“BPB”的參數。
引導程式:DBR的引導程式占用426位元組,其負責完成將系統檔案NTLDR裝入,對於沒有安裝系統的分區是無效的。
結束標誌:DBR的結束標誌與MBR,EBR的結束標誌相同,為“55 AA”。
在檔案系統損壞之後,可以對16個元檔案進行查看修復。

相關詞條

熱門詞條

聯絡我們