Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 磁碟空間「憑空消失」?三大常見原因與找回指南

編輯:關於 Linux

現象:df 與 du 統計不符

系統管理員常遇到這種情況:df -h 顯示分區已滿,但 du -sh * 加總子目錄大小卻遠小於已用空間,甚至相差數 GB。這通常不是檔案系統損壞,而是以下三種「隱形佔用」導致。

一、隱藏檔案未被統計

Linux 以「.」開頭的檔案視為隱藏檔,du -sh * 預設不會掃描它們。若根目錄下有巨大的隱藏檔(如 .cache、.local),便會造成落差。

# 正確統計含隱藏檔的大小
du -sh .[^.]* *

二、掛載點覆蓋原有資料

若將新分區掛載到「非空目錄」(如 /mnt 原有檔案),原目錄內容會被掛蓋而不可見,但磁碟空間仍被佔用。umount 後檔案即會重現。

# 檢查掛載點是否覆蓋資料
ls -la /mnt          # 掛載前先備份或清空目錄
mount /dev/sda6 /mnt

三、稀疏檔案(空洞檔案)

當程式持續寫入日誌檔,中間有人用 > log 清空內容,檔案大小(ls -l)不變,但實際佔用的區塊(du -h)驟減,產生「空洞」。此時 df 回報的是區塊佔用,而 du 回報的是邏輯大小,造成誤差。

# 找出稀疏檔案
find / -type f -printf "%S %p\n" | awk '$1 < 0.5'

快速排查清單

  1. du -sh /mnt/* 確認掛載點下是否有資料被遮蔽。
  2. lsof | grep deleted 找出已刪除但仍被進程持有開啟的檔案(釋放需重啟進程)。
  3. 檢查 /var/log、/tmp、使用者家目錄下的隱藏資料夾。

掌握這三大原因,下次磁碟告警響起時,即可迅速定位「消失的空間」並精準清理。

Copyright © Windows教程網 All Rights Reserved