什麼是碎片
許多Windows用戶,即使沒有太多經驗,我相信他們也會定期進行碎片整理,來加速其電腦。為什麼要這麼做,許多人也不知道。
簡單的說,每個硬盤驅動器有許多的扇區,每一個扇區都可以包含一些小的數據片段。對於特別大的文件,就必須存儲在許多不同的扇區裡。再比方說文件系統中保存的一些不同的文件,其中每個文件都將存儲在連續空間的扇區裡。後來,你更新你原先保存的文件,增加文件的大小。文件系統將會嘗試存儲文件的新增部分到原先扇區空間的旁邊。不幸的是,如果沒有足夠的連續空間,該文件必須被分割成多個片段 — 這就碎片生成的原因。當你的硬盤讀取文件的時候,磁頭必須跳過硬盤上不同的物理位置之間來讀取每個扇區的數據 — 這就是變慢的原因。
碎片整理是一個集中的過程,移動比特文件,以減少碎片,確保每個文件在驅動器上是連續的。
當然,固態硬盤不同,它沒有移動部件,不應該進行碎片整理 - 對SSD進行磁盤整理實際上會減少其使用壽命。此外,最新版本的Windows上,你不需要擔心整理你的文件系統碎片 - Windows會自動幫你做。
Windows文件系統是如何工作的
微軟舊的FAT文件系統,最後一次看到默認在Windows 98和ME,現在也使用在USB閃存盤上,它不能智能安排文件。當你保存文件到FAT文件系統上,它會盡可能將其保存在接近磁盤開始的空間上。當你保存第二個文件,它會保存緊接在第一個文件的後面, 以此類推。當原始文件大小增長,附近沒有空閒空間為他們增長,他們總是會生成碎片。
微軟新的NTFS文件系統,使用在Windows XP和2000上,似乎變得更智能一點兒,它給硬盤上的文件周圍分配了更多的“緩沖”自由空間。雖然,任何Windows用戶可以告訴你,隨著時間的推移,NTFS文件系統仍然會生成碎片。
由於使用這些文件系統進行工作,他們需要進行碎片整理,以確保其性能不下降。微軟最新版本的Windows可以在後台定時運行碎片整理來緩解了這個問題。
Linux文件系統是如何工作的
Linux有ext2、ext3和ext4文件系統,ext4文件系統使用在Ubuntu和其他當前的Linux發行版本中,它有著更智能的文件分配方式,而不是將多個文件相互靠近放在硬盤上。Linux文件系統分散在不同的文件磁盤,並留下了大量的自由空間。當一個文件需要編輯增長,通常是會有足夠的空閒空間。如果碎片確實發生,文件系統將會試圖移動文件,來減少碎片。在正常使用情況下,不需要碎片整理工具。
如果你的文件系統已滿或是95%(甚至80%),你才可能開始看到一些碎片。總之,文件系統的設計,在正常使用過程中可以避免碎片的生成。
如果你的Linux上有碎片問題,你可能需要一個更大的硬盤。如果你確實需要整理文件系統,最簡單的、最可靠的方法可能是:從分區中復制備份所有的文件,再從分區中清除所有文件,然後在將文件復制回到分區。這樣文件系統將會智能地分配文件復制到磁盤上。
你也可以使用 fsck 命令衡量Linux文件系統的碎片 - 尋找輸出“非相鄰節點”。