檔案系統是作業系統管理儲存裝置的核心介面。Linux 早期標準為 Ext2,隨著日誌技術引入演進為 Ext3,並透過 Swap 分區實現虛擬記憶體。本文從架構特性、效能限制、演進邏輯三個維度深度解析三者差異與適用場景。
Ext2(Second Extended Filesystem)長期作為 Linux 預設檔案系統,以**存取效能優異**著稱,特別針對中小型檔案優化,得益於其優秀的區塊快取層設計。
缺陷: 非日誌式檔案系統。系統異常關機(斷電、當機)導致快取資料未寫回磁碟,下次開機需執行 fsck 完整掃描修復,大容量磁碟耗時極長,且無法 100% 保證資料不遺失,不適合高可用性伺服器。
Ext3 在保持 Ext2 磁碟格式相容基礎上(可無損雙向轉換),引入**日誌功能**,成為日誌式檔案系統的代表。
記錄每一次磁碟寫入操作的完整細節(中繼資料更新、空間分配、資料寫入等)。系統中斷時,重啟只需根據日誌「回滾」或「重播」被中斷的交易,而非掃描整個檔案系統。
data=)| 模式 | 機制 | 效能 | 資料安全性 |
|---|---|---|---|
journal | 中繼資料+資料皆寫入日誌 | 最低 | 最高(資料不遺失) |
ordered (預設) | 僅中繼資料入日誌,資料先於中繼資料寫入磁碟 | 平衡 | 高(資料一致性) |
writeback | 僅中繼資料入日誌,資料寫入順序不保證 | 最高 | 中(可能殘留舊資料) |
# Ext2 轉 Ext3(需卸載或唯讀掛載)
tune2fs -j /dev/sdXN
# 修改 /etc/fstab 檔案系統類型為 ext3
# Ext3 轉 Ext2(移除日誌)
tune2fs -O ^has_journal /dev/sdXN
e2fsck -f /dev/sdXN
Linux 使用**整個分區**作為 Swap 空間(Windows 使用交換檔),核心直接管理分區區塊,效能優於檔案層級。
pri= 參數),核心自動平行存取提升效能# 建立 Swap 分區(假設 /dev/sdb2)
mkswap /dev/sdb2
swapon /dev/sdb2
# 永久掛載 /etc/fstab
/dev/sdb2 none swap sw 0 0
| 檔案系統 | 適用場景 | 不適用場景 |
|---|---|---|
| Ext2 | /boot 分區、USB 隨身碟、唯讀媒體、嵌入式裝置 | 生產伺服器根分區、大容量儲存、需高可用環境 |
| Ext3 | 通用伺服器根/資料分區、資料庫、虛擬機映像、需資料一致性場景 | 極高並發寫入、超大檔案(>16TB)、需線上擴容(用 Ext4/XFS) |
| Swap | 所有實體機器、需休眠功能的筆電 | 純記憶體運算、禁用 Swap 的特殊嵌入式系統 |
現代 Linux 發行版(RHEL 7+、Ubuntu 18.04+)預設已採用 Ext4 或 XFS,Ext3 仍廣泛運於存量系統與相容性場景,理解其原理對運維歷史系統與存儲故障排查至關重要。