檔案系統損壞一般都表現
分區無法訪問、目錄結構損壞、
檔案系統
檔案系統是
作業系統用於明確
存儲設備(常見的是磁碟,也有基於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個元檔案進行查看修復。