標籤:
Linux 系統永遠不需要整理磁碟片段的神話相信很多人都聽說過。由於 Linux 採用了優秀的記錄檔系統(ext2、ext3、ext4, btrfs等),在絕大多數情況下確實是不需要進行磁碟磁碟重組的。
什麼是磁碟片段檔案?
當檔案系統在磁碟的扇區上讀寫檔案時會形成不連續的整體,這樣就會產生磁碟片段檔案。這種情況在 FAT 和 FAT 32 檔案系統來說尤為突出,NTFS 檔案系統對該現象進行了一些緩解。那為什麼這種情況幾乎不發生在 Linux 作業系統 (extX) 中呢?
在 FAT 和 FAT32 檔案系統中,檔案會在彼此相鄰的磁碟右側進行寫入,並沒有為檔案增長或更新留出空間。
NTFS 為相鄰檔案留出了部分間隔,讓檔案有一定的增長和更新空間。但這個間隔是有限的,隨時使用時間增長一樣會產生磁碟片段。
Linux 的記錄檔系統採用完全不同的儲存方式,直接將每個檔案分散在磁碟上進行儲存,為每個檔案之間留下了自由的空間,因此很少產生磁碟片段檔案。
此外,如何磁碟片段開始產生,大多數 Linux 檔案系統將自動嘗試將檔案和塊進行重組,以使得儲存變得連續起來。
整理Linux磁碟片段檔案
除非你使用了一個空間較小的磁碟或頻繁讀寫的空間,磁碟片段檔案在 Linux 系統中很少發生。一些可能會導致 Linux 磁碟片段產生的情況如下:
- 在有限的磁碟空間下編輯大型視頻檔案或 RAW 圖片
- 在較老舊的裝置上使用空間很小的磁碟
- 磁碟空間使用率超過85%
- 儲存過多體積很小的檔案
當然,最好的解決辦法就是換一塊空間較大的硬碟,或者進行手動整理。
如何檢查是否有磁碟片段
我們可以使用 fsck 命令對磁碟進行檢測。切記,在檢測時一定要 unmount 被檢測分區,不然有可能損壞資料。因此,建議大家從 Live CD 來執行 fsck 命令,並在之前對重要檔案做好備份。
一切準備就緒之後,我們執行如下命令:
- fsck -fn [/path/to/your/partition]
其中[/path/to/your/partition]為我們要檢測的路徑,檢測時會有大量的資訊輸出,最終將會報告給我們一個磁碟片段的相關資訊:
注意:如果磁碟片段在 20% 以上,我們就需要進行整理。20% 以內的話,可以暫時不進行。
簡單方式整理Linux檔案系統
與其說是整理磁碟其實不如說是刪了重來,Linux 的操作方式與 Windows 下的磁碟整理完全不同。由於 Linux 是基於檔案的系統,我們只需將磁碟中的檔案全部複製到另一個地方,將其格式化之後再將備份好的檔案複製回來即可。複製回來的同時,Liunx 會自動將檔案進行連續分布排列。
1. 使用如下命令備份源磁碟檔案
- cp -afv [/path/to/來源硬碟]/* [/path/to/備份檔案夾]
注意:很多朋友會認為大批量複製檔案用 dd 檔案比較好,但 dd 的操作層面更低,會複製很多垃圾資訊。而我們的目的是要整理磁碟,所以使用 cp 命令。
2. 現在我們使用如下命令刪除源檔案
- sudo rm -rf [/path/to/來源硬碟]/*
可選項:當然,你也可以直接通過以下命令直接為來源硬碟填充 0 以達到清空的目的。
- sudo dd if=/dev/zero of=[/path/to/來源硬碟]/temp-zero.txt
3. 你可以使用 pv 命令來監控 dd 命令的執行過程:
- sudo apt-get install pvsudo pv -tpreb | of=of=[/path/to/來源硬碟]/temp-zero.txt
4. 執行完成後,我們刪除這個臨時檔案
- sudo rm [/path/to/來源硬碟]/temp-zero.txt
5. 磁碟清零(可靠)後我們將備份好的檔案複製回來即可
- cp -afv [/path/to/備份檔案夾]/* [/path/to/來源硬碟]
使用e4defrag
如果你覺得以上步驟太麻煩了,還可以使用 e2fsprogs 命令
1. 安裝e2fsprogs
- sudo apt-get install e2fsprogs
2. 執行整理
- sudo e4defrag /
注意:以上命令雖然方便,但不是所有系統上都可以執行成功。
[轉]如何整理Linux磁碟片段,竟與Windows的方式大不同 返回作業系統首頁