本頁使用了標題或全文手工轉換

NTFS重解析點

維基百科,自由的百科全書
跳到: 導覽搜尋

NTFS重解析點英語:NTFS reparse point),微軟官方也譯重新分析點、重新剖析點、重新分析指標[1],是NTFS檔案系統中的一種物件類型。它在Windows 2000及之後版本中的NTFS v3.0及以上版本中可用。重解析點提供一種擴充功能NTFS檔案系統的方法。一個重解析點包含一個重解析標籤和數據,檔案系統過濾器可以按標籤解讀它。微軟提供了幾個預設標籤,包括NTFS符號連結NTFS目錄交接點英語NTFS junction pointNTFS卷掛載點。另外,重解析點在Windows 2000的分層儲存系統英語Hierarchical storage management中作為作為已移動檔案的預留位置。它還可以作為硬連結,並且不限於同分卷的檔案:可以指向任何本機分卷中的目錄。[2]

設計[編輯]

一般情況:

  • 硬連結:連結到一個檔案(MFT記錄)。數據會保持可用,只要有至少一個指向它的連結存在。
  • 軟連結:連結到檔案名(檔案路徑)。

軟連結[編輯]

Windows Vista支援新的符號連結能力,它取代Windows 2000和Windows XP中的目錄交接點英語NTFS junction point。它的設計目的是說明遷移和UNIX作業系統的應用程式的相容性。不同於目錄交接點英語NTFS junction point,符號連結也可以指向一個檔案或或遠端SMB網絡路徑。此外,NTFS符號連結的實現提供了跨檔案系統的連結支援。但是,啟用跨主機的符號連結功能需要遠端系統也支援它,這使支援性限制在Windows Vista及更高版本的Windows作業系統。

  • NTFS符號連結(SYMLINK):本機或遠端,相對或絕對SMB檔案或路徑。啟用跨主機符號連結需要遠端系統也支援它,這使支援性限制在Windows Vista及更高版本的Windows作業系統。Windows Server 2008使用軟連線把\Users\All Users\ -> \ProgramData\重新導向。符號連結可以指向不存在的目標,因為作業系統不會檢查目標是否存在。使用 mklinkmklink /D時,相對符號連結僅限於單個卷。
  • 目錄交接點英語NTFS junction point:從Windows 2000開始,絕對目錄 (\) 可以是本機卷。Windows Server 2008 使用此能力配置 All Users 資料夾的重新導向。使用 mklink /J建立 junction 點後,使用Windows檔案總管刪除它時,如果使用了Shift+Delete,將立即刪除目標文件 (Windows 2000/XP/2003). del my_junction 命令不應該使用,因為它會刪除目標目錄中的所有檔案。在Windows Vista及更高版本中,使用junction刪除目錄交接點英語NTFS junction point是安全的。

硬連結[編輯]

  • NTFS硬連結:從Windows NT 4開始:同一驅動器上的檔案。從Windows 2000開始,Windows API包括一個 CreateHardLink() 函數來建立硬連結,並且 DeleteFile() 可以移除它們。所有Windows NT版本都可以使用 GetFileInformationByHandle() 來確定一個檔案已關聯的硬連結數量。硬連結需要NTFS分割。執行在Windows上的類Unix仿真或軟件相容層(如Cygwin和基於UNIX應用程式的子系統)允許在Windows上使用POSIX介面。大多數現代作業系統不允許硬連結目錄以避免無限遞迴目錄;而且,硬連結目錄可能導致父目錄的條目不一致;通常使用符號連結和NTFS目錄交接點英語NTFS junction point達到此目的。硬連結只能對同一檔案系統上的檔案建立。如果需要建立到另一檔案系統的連結,應該使用符號連結。硬連結可以使用mklink /H命令建立。

硬連結使用與原檔案相同的MFT記錄。添加一個硬連結會建立一個新的檔案名內容並增加硬連結計數器(每個新建立的檔案+1)。刪除一個硬連結會移除相應的檔案名並將硬連結計數器-1。當計數器歸零時,檔案系統將刪除該檔案、釋放其佔用的磁盤空間及其MFT記錄。所有名稱內容是獨立的,因此刪除、移動或重新命名檔案不會影響其他硬連結。

特性[編輯]

卷掛載點[編輯]

NTFS卷掛載點類似Unix掛載點,將另一個檔案系統的根附加到一個目錄。在NTFS中,這允許額外的檔案系統不逐一佔用驅動器號(如 C:D:)並掛載。

如果一個卷被掛在到另一個卷的現有目錄上,該目錄以前列出的內容將被隱藏,已掛載卷的根目錄將取代它。已掛載卷仍然有自己單獨分配的驅動器號。檔案系統不允許卷被手動互相掛載。卷掛載點可以持久或非持久存在,兩者區別是系統重新開機後是否會自動重新掛載。

已掛載卷可能使用非NTFS的檔案系統,並可能有自己的安全設定和根據遠端檔案系統策略重新對映的存取權限。

目錄交接點[編輯]

目錄交接點英語NTFS junction point類似卷掛載點,但參照目標為檔案系統中的其他目錄而非其他卷。舉例來說,目錄 C:\exampledir 有一個目錄junction內容,其包含到 D:\linkeddir 的連結,因此當它被使用者模式的應用程式存取時,將會自動參照 D:\linkeddir 目錄。[3]此功能在概念上類似Unix中對目錄的符號連結,除了NTFS中的目標必須始終是另一個目錄(典型的Unix檔案系統允許符號連結的目標是任何類型的檔案)。

目錄交接點(可以在命令列提示符中使用 MKLINK /J junctionName targetDirectory 建立,以及用 RMDIR junctionName 移除)是持久的,並在伺服器側解析,它們與本機檔案系統或掛載內容所在的父卷共享相同的安全領域;不過目錄交接點本身可能有不同的安全設定。取消一個目錄交接點連結不會刪除目標目錄中的檔案。

某些目錄交接點在Windows Vista上已預設安裝,目的是保證對以前Windows版本的相容性,例如系統分割根目錄中的Documents and Settings就是連結到同個卷根目錄中的的Users物理目錄。不過它在預設情況下是隱藏的,並且設定了安全設定以要求Windows檔案檔案總管拒絕在外殼和大多數應用程式中開啟它,除了本機內建的SYSTEM使用者或本機管理員組(這兩個使用者帳戶用於在系統中安裝軟件)。這個額外的安全性限制是為了避免使用者誤入此目錄和看到、誤以為並刪除明顯重複的檔案。目錄交接點的語意不同於硬連結,對目標內容和參照容器本身都不存在參照計數。

目錄交接點是一種軟連結(它們可以持久存在,哪怕目標目錄被刪除),可以作為一種有限的符號連結使用(對目標位置有所約束),但它是一個最佳化的版本,重解析點的設計允許更快地處理它,比NTFS符號連結具有更小的系統開銷,並且可以在伺服器側解析(當發現於遠端共享目錄時)。

符號連結[編輯]

符號連結(或軟連結)在Windows Vista中被引入。[4]符號連結在用戶端側解析。因此當符號連結被共享時,目標受到用戶端而非伺服器的存取限制。

符號連結的建立可以指向檔案(用 MKLINK 符號連結 目標文件 建立)或目錄(用 MKLINK /D 符號連結 目標目錄 建立),但不同於Unix符號連結,建立連結時必須提供連結的類型。符號連結建立時不需要目標存在或可用:在符號連結可用時才會檢查可用性,NTFS也會在那時檢查類型(檔案/目錄)是否正確;如果現有目標的類型錯誤,將會返回「找不到」錯誤。

它們還可參照遠端主機上的共享目錄或檔案,以及共享專案錄中的子目錄:它們的目標不會立即掛載,只在使用 OpenFile()或CreateFile() API時臨時請求。

分散式連結跟蹤(DLT)[編輯]

分散式連結跟蹤允許應用程式跟蹤檔案、捷徑和OLE連結,即使它已被重新命名或移動到同個機器、域或工作群組中的另一個分卷。[5]跟蹤實現為一個系統服務,使用物件識別元(OID)的索引儲存在一個元檔案中。[6]當應用程式請求跟蹤一個檔案或目錄時,跟蹤服務建立指向該檔案的OID記錄。在檔案被重新命名、複製或移動到一個NTFS v3分卷時,物件ID也將被複製。因此跟蹤服務最終能找到目標文件。

單例項儲存(SIS)[編輯]

當多個目錄有不同但類似的檔案時,這些檔案可能有着相同的內容。單例項儲存允許相同的檔案被合併為一個檔案,並建立一個到合併後檔案的參照。SIS包括:一個檔案系統篩選器,它管理複製、修改和合併檔案;一個使用者空間服務(或稱groveler),它搜尋相同並需要合併的檔案。SIS的主要設計目的是遠端安裝的伺服器,其存在的多個安裝鏡像可能包含許多相同的檔案,SISK可以合併這些。不同於硬連結,每個檔案仍然是不同的;對一個副本的更改不會改變其他的副本。這類似於寫時複製,但那個技術是記憶體複製並未真正完成,直至副本被修改。[7]

分層儲存管理(HSM)[編輯]

分層儲存管理英語Hierarchical storage management是一種轉移檔案的手段,它根據檔案熱度將數據在普通與昂貴的儲存介質間轉移。在下次存取該檔案時,該檔案的重解析點會確定所需的儲存介質並從那裏檢索。[citation needed]

原生結構化儲存(NSS)[編輯]

NSS原是ActiveX文件儲存技術,它已被微軟停止使用。它允許ActiveX文件儲存在ActiveX內部使用的多流格式中。NSS檔案系統篩選器可以被載入並處理透明傳輸到套用該程式的多個流,並在檔案被傳輸到非NTFS格式的磁盤卷時將多個流變為單個流。[8]

參見[編輯]

參考資料[編輯]

外部連結[編輯]