萬盛學電腦網

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

查看 Linux 磁碟空間的 8 大方法:df、fdisk、cfdisk、parted、lsblk 等工具全解析

Linux 下查看磁碟空間不只有 df 一種方式。本文系統介紹 8 種主流工具(df、fdisk、cfdisk、parted、lsblk、blkid、df -i、du)的適用場景、輸出解讀與實戰技巧,助你根據需求選擇最合適的工具。

方法對照表

工具核心功能適用場景權限需求
df檔案系統使用量/掛載點快速查看分區剩餘空間、inode一般用戶
fdisk -l分區表結構、裝置大小、檔案系統類型查看實體磁碟分區佈局、規劃新分區root
cfdisk互動式分區管理(文字介面)直觀查看/調整分區、新手友善root
parted支援 GPT、大磁碟的分區工具大於 2TB 磁碟、GPT 分區、腳本自動化root
lsblk樹狀顯示區塊裝置與掛載關係快速掌握裝置拓撲、LS 類輸出易解析一般用戶
blkid顯示裝置 UUID、LABEL、TYPE編寫 /etc/fstab、識別檔案系統root
df -iinode 使用量大量小檔案導致 inode 耗盡排查一般用戶
du目錄/檔案實際佔用空間定位具體目錄佔用大戶一般用戶

詳細工具實戰

1. df:檔案系統視角

df -hT          # 人類可讀 + 檔案系統類型
df -h /         # 只看根分區
df -hi          # inode 使用率
df --output=source,size,used,avail,pcent,target -h  # 自訂輸出供腳本

2. fdisk -l:實體磁碟分區表

fdisk -l                    # 列出所有磁碟分區
fdisk -l /dev/sda           # 只看指定磁碟
# 輸出關鍵欄位:Device, Start, End, Sectors, Size, Id, Type
# Size 以 512-byte 區塊為單位,除以 2048 即為 MiB 概估

注意:fdisk 不支援 GPT 分區表(>2TB 需用 parted 或 gdisk)。

3. cfdisk:互動式分區視覺化

cfdisk /dev/sda
# 介面顯示:Name, Flags, Part Type, FS Type, Label, Size
# 適合快速確認分區大小、類型、啟動旗標

部分發行版預設未安裝,需 apt/yum install cfdisk。

4. parted:現代分區工具(支援 GPT)

parted /dev/sda print
# 輸出:Model, Disk, Sector size, Partition Table, Number, Start, End, Size, File system, Flags
# 可在腳本中非互動操作:
parted -s /dev/sdb mklabel gpt mkpart primary ext4 0% 100%

5. lsblk:區塊裝置樹狀圖(最推薦日常查看)

lsblk                    # 預設樹狀
lsblk -f                 # 顯示 FSTYPE, LABEL, UUID, MOUNTPOINT
lsblk -o +SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID  # 自訂欄位
lsblk -J                 # JSON 輸出供程式解析

6. blkid:快速獲取 UUID/LABEL

blkid
blkid /dev/sda1
# 輸出:/dev/sda1: UUID="xxx" TYPE="ext4" PARTUUID="yyy"
# 寫 /etc/fstab 時建議用 UUID 或 LABEL

7. df -i:inode 耗盡排查

df -hi
# 若 Use% 接近 100%,需清理大量小檔案目錄
find /var/spool -type f | wc -l
find /tmp -type f -delete

8. du:目錄級深度分析

du -h --max-depth=1 / | sort -hr
du -sh /var/log
ncdu /   # 互動式最強推薦

實戰場景選擇指南

場景首選工具輔助工具
快速查看根分區剩餘空間df -h /
新增磁碟需分區格式化lsblk 確認裝置 → parted/fdisk 分區 → mkfs 格式化blkid 獲取 UUID
排查 inode 耗盡df -hifind 定位小檔目錄
找出佔用空間最大的用戶目錄du -h --max-depth=1 /homencdu /home
腳本自動收集磁碟資訊lsblk -J 或 df --output=json
確認掛載點對應裝置lsblk -f 或 findmnt

常見誤區澄清

  • 誤區:fdisk -l 的 Blocks 欄位單位是 KB。正確:預設單位為 512-byte 區塊(Sectors),1 Block = 1 Sector = 512 bytes。
  • 誤區:df 和 du 結果應完全一致。正確:因已刪除仍開啟檔案、掛載點遮蓋、硬連結、稀疏檔、壓縮檔案系統等原因,兩者常不一致。
  • 誤區:lsblk 需 root 權限。正確:一般用戶即可執行,僅部分欄位(如 FSTYPE)需 root。

小結

工具箱越豐富,診斷越精準。日常巡檢用 df -hT + lsblk -f,分區規劃用 parted,深度挖掘用 ncdu,腳本自動化用 lsblk -J。掌握這 8 大工具特性與組合,磁碟空間管理將不再是盲盒。

copyright © 萬盛學電腦網 all rights reserved