萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 磁碟分區與檔案系統核心概念全解析:從 MBR/GPT 到 VFS 虛擬檔案系統

一、磁碟硬體與介面

1. I/O 介面分類

  • 並行總線:IDE (一總線兩裝置、主/從)、SCSI (寬/窄頻寬、多裝置鏈接)。
  • 串行總線:SATA (6 Gbps)、SAS (6 Gbps)、USB (480 Mbps/5/10/20 Gbps) —— **單線單裝置、熱插拔、訊號完整性佳**。

2. 硬碟類型與效能

3. 機械硬碟幾何結構

  • 磁軌:單面磁碟同心圓軌道,出廠低階格式化固定。
  • 扇區:最小儲存單位,**傳統 512 bytes**,新制 **4K (Advanced Format)**。
  • 柱面:所有磁碟面相同半徑磁軌組成的圓柱面,**分區劃分以柱面為單位**。
  • 效能分布:外圈柱面 (低柱面號) 線速度快 → **傳輸率高**,Windows C 槽通常置於最外圈。

二、Linux 裝置命名與分區

1. 裝置檔案命名規範 (FHS /dev)

  • IDE:`/dev/hd[a-z]` (已淘汰)。
  • SCSI/SATA/USB/SAS/NVMe:`/dev/sd[a-z]` (磁碟) → `/dev/sda1`, `/dev/sda2`... (分區)。
  • NVMe:`/dev/nvme0n1`, `/dev/nvme0n1p1`... (命名空間/分區)。
  • **CentOS 6/7 統一將所有磁碟標識為 `/dev/sd[a-z]#`**。

2. MBR 分區限制

  • 主引導記錄 (MBR) 僅 512 bytes:446B Bootloader + 64B 分區表 (4×16B) + 2B 魔數 (0x55AA)。
  • **主分區最多 4 個**,或 **3 主分區 + 1 擴展分區**。
  • 擴展分區內再劃分**邏輯分區** (編號從 5 開始),數量無上限。
  • **一個分區 = 一個獨立檔案系統**。

3. GPT 分區 (現代標準)

  • 支援 128+ 主分區、64-bit LBA (支援 >2TB 磁碟)、備份分區表、CRC32 校驗。
  • UEFI 開機必須 GPT + EFI 系統分區 (ESP, FAT32, 100-500MB)。

三、格式化與檔案系統

1. 低階 vs 高階格式化

  • 低階:廠商完成,劃分磁軌/扇區/簇。
  • 高階:建立檔案系統 (inode 表、超級區塊、日誌區、資料區)。

2. VFS (虛擬檔案系統) 架構

核心中介層,統一不同檔案系統操作介面 (open/read/write/stat...)。

VFS 架構圖

3. Linux 原生檔案系統

  • Ext 系列:ext2 (無日誌)、ext3 (日誌)、ext4 (延伸屬性、延遲配置、多塊分配) — **CentOS 5/6/7 預設**。
  • XFS:高併發、大檔案、無單檔大小上限 — **CentOS 7/8/9 預設**、RHEL 7+ 預設。
  • Btrfs:快照、子卷、壓縮、去重、RAID 整合 — Fedora/SUSE 預設。
  • ReiserFS:小檔案極致優化 (現較少用)。

4. 跨平台/特殊檔案系統

類型介面理論頻寬特性
機械硬碟 (HDD)SATA/SAS6 Gbps磁碟旋轉 (5400/7200/10k/15k RPM)、磁頭機械尋道、平均延遲 4-10ms、容量大價格低
固態硬碟 (SSD)SATA/NVMe6 Gbps / 32+ Gbps無機械結構、NAND 快閃記憶體、隨機讀寫 IOPS 高 (消費級讀 400k/寫 200k IOPS)、壽命以 TBW 計
類別檔案系統用途
光碟iso9660, UDF光學媒體唯讀/可寫
Windowsvfat (FAT32), ntfs, exfat雙系統共享、行動儲存
網路nfs, cifs (SMB)NAS/伺服器共享掛載
叢集gfs2, ocfs2共享存儲叢集
分散式 (核心級)ceph物件/區塊/檔案統一存儲
虛擬/偽檔案系統proc, sysfs, tmpfs, hugepagefs核心資訊介面、記憶體檔案、大頁面
Unix 傳統UFS, FFS, JFSSolaris/AIX/HP-UX 相容
交換空間swap交換分區/檔案
用戶空間分散式mogilefs, moosefs, glusterfs應用層分散式存儲

5. 日誌式檔案系統機制

  • 操作先寫入**日誌區** → 完成後回寫 inode/資料區 → 防止崩潰導致不一致、避免全盤 `fsck` 掃描。
  • 代價:佔用空間 (數百 MB)、CPU 開銷 — 現代硬體完全可吸收。

四、引用裝置的三種方式

  1. 裝置檔案名:`/dev/sda1` (易因掛載順序變動)。
  2. 卷標 : `LABEL=MYDATA` (需 `e2label`/`tune2fs -L` 設定)。
  3. **UUID** (最穩定) : `UUID=xxxx-xxxx-xxxx-xxxx` ( `blkid` 查看) — **/etc/fstab 強烈建議用 UUID**。

掌握上述概念,即具備 Linux 儲存規劃、故障排除、效能調校的堅實理論基礎。

copyright © 萬盛學電腦網 all rights reserved