自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Windows 目錄到底占用了多少真實的硬盤空間?

系統(tǒng)
看到這個問題,我想99%的人都會說:用資源管理器右鍵點擊Windows目錄,看看屬性不就知道了嗎?何必故弄玄虛呢!

看到這個問題,我想99%的人都會說:用資源管理器右鍵點擊Windows目錄,看看屬性不就知道了嗎?何必故弄玄虛呢!

但是,我 Smallfrogs 會有那么傻的把一個大家都知道的問題重新翻出來嗎?既然提出了這個話題,就有我的道理!請各位耐住性子往下看,看看我們的Microsoft同學(xué)又玩了什么樣的花活,呵呵。

我們知道,查看一個目錄有多大的最快捷的方法就是看看資源管理器文件夾的屬性,但是我今天要說的是:如果你用這個方法去看 Windows Vista / Windows 7 系統(tǒng)的目錄,你會被你的眼睛所欺騙,因為,Microsoft 同學(xué)在 Windows Vista/ Windows 7 里面大量使用了NTFS文件系統(tǒng)的特性之一的:硬連接(Hard Link)來實現(xiàn)WinSxS機制!


關(guān)于 WinSxS,可以看我之前寫的 《WinSxS 混亂導(dǎo)致的應(yīng)用程序不能啟動》一文。


我們知道,要安裝 Windows Vista / Windows 7系統(tǒng),那么系統(tǒng)分區(qū)必須是NTFS文件系統(tǒng)。原因有以下一些:

系統(tǒng)文件保護所需
各種安全保護機制,如MIC所需
WinSxS 所需
……

關(guān)于***一點的 WinSxS 所需,我沒有看到過相關(guān)的資料說明,不過可以肯定的是,這也是Windows Vista / Windows 7 系統(tǒng)需要NTFS文件系統(tǒng)的一個條件,因為只有在 NTFS 文件系統(tǒng)上面,才能實現(xiàn)硬連接機制,也才能達到優(yōu)化Windows目錄占用磁盤空間的目的。

關(guān)于硬連接,MSDN是這樣解釋的:

A hard link is the file system representation of a file by which more than one path references a single file in the same volume. To create a hard link, use the CreateHardLink function. Any changes to that file are instantly visible to applications that access it through the hard links that reference it. However, the directory entry size and attribute information is updated only for the link through which the change was made.

簡單的說,就是一種針對文件的特殊快捷方式,只不過這種快捷方式的實現(xiàn)和一般的快捷方式不一樣。

一般的快捷方式是創(chuàng)建一個LNK文件,在這個LNK文件里面描述了目標(biāo)文件/目錄的屬性,資源管理器或者其他文件管理工具利用SHELL32.DLL里面的API函數(shù)獲得這個LNK文件所指向的文件/目錄,從而進行訪問。
硬連接:是一種基于文件系統(tǒng)級別上的針對文件的快捷方式,基于文件系統(tǒng)級別的含義就是說,只要文件系統(tǒng)啟動了,那么對應(yīng)的快捷方式也就生效了。換句話說,這種連接是常存的,因為文件系統(tǒng)是必須要隨機啟動的。

硬連接是NTFS文件系統(tǒng)特有的屬性之一,在Linux下面,也有類似的機制。硬連接適用于在同一個卷的文件級別,硬連接是不能跨卷的。

Windows Vista / Windows 7 自帶了創(chuàng)建硬連接的命令:mklink.exe,利用這個命令,我們可以給指定的文件創(chuàng)建硬連接:

下面的命令將在link.txt和source.txt之間建立硬連接關(guān)系
C:UsersSmallfrogsDesktop>mklink /h link.txt source.txt
為 link.txt <<===>> source.txt 創(chuàng)建了硬鏈接

注 意上面的例子:link.txt本是一個不存在的文件,但是當(dāng)執(zhí)行完mklink命令以后,link.txt文件也就被創(chuàng)建了。其實,link.txt是 一個虛假的文件,它是在文件系統(tǒng)層面上對source.txt文件的一個映射,而link.txt是不占硬盤空間的。

關(guān)于硬盤空間的占用問題,Smallfrogs 是這樣測試的:
1、給硬盤劃分一個新分區(qū),空間只有2GB
2、在這個分區(qū)的test目錄里面新建了一個1.9GB大小的文件,此時剩余空間是0.1GB
3、用mklink命令給這個1.9GB大小的文件建立了一個硬連接
4、檢查這個分區(qū)的剩余空間,還是0.1GB,但是如果用資源管理器看test目錄的屬性,會發(fā)現(xiàn)有2個文件,總大小是3.8GB(整個分區(qū)才2GB,能夠容納3.8GB大小的文件嗎?顯然不可能了)

還是針對上述的例子,如果我們把原始的文件 source.txt 刪除以后,link.txt文件還是會繼續(xù)存在的,且內(nèi)容就是source.txt的文件內(nèi)容。也就是說,我們刪除source.txt,實際上刪除的僅僅是這種連接關(guān)系,文件本身還是沒有被操作的。

關(guān) 于硬連接,***一個需要介紹的內(nèi)容是:當(dāng)硬連接建立以后,硬連接雙方任何一個對象被修改,都會造成對應(yīng)的連接對象被修改。例如上面的例子:如果修改了 link.txt,那么source.txt文件也會同步被修改,反之亦然。這一點和SHELL層面的快捷方式不同,SHELL層面的快捷方式文件LNK 僅僅是一個指示關(guān)系,修改LNK文件并不影響LNK文件指向的對象,修改LNK文件指向的對象也不會影響LNK文件。

好了,基本知識介紹完了,我們來實際看看Windows目錄里面對于硬連接的使用情況吧。

經(jīng)常看到有人抱怨,WindowsWinSxS目錄占用了太多的空間,里面經(jīng)常發(fā)現(xiàn)有同名的文件,而且這些同名的文件在 WindowsSystem32 目錄下面也有存在,這是為啥呢?其實這就是硬連接導(dǎo)致的。

Microsoft 實際上在 WindowsWinSxS 目錄和Windows目錄之間建立了硬連接的關(guān)系,舉一個最簡單的例子:

對于 Windows 7 RTM 來說,你可以在2個地方找到Ntoskrnl.exe文件。***個地方是:WindowsSystem32ntoskrnl.exe,另外還有一個地 方是WindowsWinSxSx86_microsoft-windows-os- kernel_31bf3856ad364e35_6.1.7600.16385_none_6c06b7c41576a7d9ntoskrnl.exe, 這就是一個典型的硬連接例子。Microsoft 在文件系統(tǒng)上面對 ntoskrnl.exe 做了一個硬連接,使得 ntoskrnl.exe 能夠出現(xiàn)在不同的目錄里面,但是只占用了一份 ntoskrnl.exe 的硬盤空間。利用這種機制,有下面的一些好處:

同樣的文件,只需要維護硬連接關(guān)系,不需要進行多重的拷貝,這樣可以節(jié)省硬盤空間
如果涉及文件更新,只需要先在WinSxS 目錄里面下載好一個新版本,然后修改 WindowsSystem32 下面同名文件的硬連接關(guān)系,從舊版本的硬連接指向新版本的硬連接,這樣就能夠快速的完成文件的更新工作,而不需要進行文件的復(fù)制,速度也會快不少
補丁卸載也是一樣的,只需要把硬連接指向改為舊版本就可以了,沒有文件替換的問題。而且建立了硬連接關(guān)系的文件之間的修改是同步的,因此只要有一方被修改了,另一方也會得到修改

說了這么多,那么如何知道 Windows 目錄的真實大小呢?Smallfrogs 提供了一個工具,可以很方便的知道您系統(tǒng)里面有哪些文件是有硬連接關(guān)系的,以及Windows 目錄下真實的文件大小。

工具可以從 http://www.kztechs.com/hardlink/realwindirsize.zip (請使用右鍵點擊另存為...方式下載)或在本文附件下載到,下載解壓縮以后,直接運行就可以開始掃描了。

掃描過程比較漫長,掃描完成以后,會看到下面的提示信息:

 

另外,在realwindirsize.exe所在目錄下,會生成一份文件名叫做LinkedFile.TXT的文件,里面記錄了Windows目錄下各個硬連接的關(guān)系。

如上圖所示,我們掃描到了65088個文件,其中,真實的文件有48022個,其他17066個文件 都是硬連接文件。真實的文件占用了14981682 KB的硬盤空間,而如果你用資源管理器看Windows目錄的話,那么會提示說Windows目錄占用了 18244902 KB的硬盤空間。實際上, Windowssystem32 目錄下的大多數(shù)文件都和 WinSxS 目錄建立了硬連接關(guān)系。

說了這么多,***總結(jié)一下吧:

硬連接,一種基于文件系統(tǒng)的同一卷里面的文件快捷方式
Windows 目錄下面大量使用了硬連接技術(shù)
WindowsSystem32 目錄下的大多數(shù)文件,都和 WinSxS 目錄建立了硬連接關(guān)系
要檢查自己系統(tǒng)Windows目錄里面的硬連接,請下載工具 http://www.kztechs.com/hardlink/realwindirsize.zip 自己掃描吧

OK,本次Windows 7 研究就此完成,請繼續(xù)等待下篇吧!

【編輯推薦】

  1. Windows 7在電源管理方面的9大手段
  2. 外媒評論:微軟應(yīng)該在中國推出免費的Windows 7
  3. 微軟發(fā)布Windows 7嵌入式操作系統(tǒng)預(yù)覽版

責(zé)任編輯:龐桂玉 來源: cnbeta
相關(guān)推薦

2009-08-18 09:19:12

Windows 7占用空間Windows 7體積

2021-09-27 14:33:01

Windows 11Windows微軟

2021-09-20 11:41:56

Windows 11硬盤空間占用微軟

2013-01-30 13:40:42

Windows 7系統(tǒng)硬盤

2015-08-10 10:07:59

Windows 10硬盤清理

2016-01-13 09:15:48

Java對象占空間

2009-09-08 08:20:00

Windows 7節(jié)省硬盤空間

2009-08-22 21:09:02

改變預(yù)分配硬盤空間

2018-05-21 11:02:24

Docker硬盤空間

2011-09-19 16:03:01

雙系統(tǒng)vista

2025-02-10 00:20:00

2021-10-27 23:32:06

Windows 11Windows微軟

2019-01-10 08:47:11

Windows 10硬盤磁盤

2010-03-24 11:48:19

tubro Linux

2018-01-11 15:36:23

命令磁盤空間Docker

2010-06-28 15:48:51

SQL Server

2024-12-06 08:00:00

K8s

2015-09-30 14:38:19

系統(tǒng)磁盤空間Windows 10

2021-09-13 05:18:36

硬盤應(yīng)用WizTree

2011-07-15 09:01:00

點贊
收藏

51CTO技術(shù)棧公眾號