- 1 1. 先決知識:Linux/Ubuntu 中的儲存結構與掛載
- 2 2. 檢查容量的基本命令
- 3 3. 使用 GUI 檢查磁碟使用情況 (Ubuntu Desktop)
- 4 4. 低磁碟空間的調查步驟和補救措施
- 5 5. 進階提示 (實用技巧與注意事項)
- 6 6. 常見問題 (FAQ)
- 6.1 Q1. 在 Ubuntu 上檢查目前剩餘空間的簡易方法是什麼?
- 6.2 Q2. 如何檢查每個目錄的磁碟使用量?
- 6.3 Q3. df 與 du 有何差異?
- 6.4 Q4. 如何透過 GUI 檢查剩餘空間?
- 6.5 Q5. 若收到「磁碟已滿」警告,應該先刪除什麼?
- 6.6 Q7. 當 /var 或 /home 太大時該怎麼辦?
- 6.7 Q8. 執行 du 需要很長時間。有沒有加速的方法?
- 6.8 Q9. 如何防止再次磁碟空間不足?
- 6.9 Q10. 擴充儲存空間有哪些選項?
- 6.10 Q11. 能在沒有 root 權限的情況下檢查磁碟使用量嗎?
- 6.11 Q12. 如何在無頭(伺服器)系統上檢查儲存空間?
- 6.12 Q13. 檢查儲存空間時會不會有破壞系統的風險?
- 6.13 Q14. 有什麼隱藏技巧可以節省空間?
- 6.14 Q15. 推薦的磁碟使用監控工具?
- 6.15 Summary
1. 先決知識:Linux/Ubuntu 中的儲存結構與掛載
在 Ubuntu(以及大多數基於 Linux 的作業系統)上檢查儲存容量時,有一些基本的結構您需要正確理解。本節整理了經常引起混淆的概念:
- 裝置與分區的含義
- 掛載與掛載點
- LVM(邏輯卷管理)的基礎
- 典型的 Ubuntu 配置
我們將逐步介紹每個要點。
1.1 裝置與分區基礎
裝置(實體與邏輯磁碟)
在 Linux 中,每個儲存裝置都被視為一個裝置檔案。例如,HDD、SSD、USB 隨身碟等,會以 /dev/sda、/dev/sdb、/dev/nvme0n1 等形式出現。
尾隨的字母(a、b、c…)表示系統偵測到裝置的順序。
分區
單一實體裝置可以直接使用,但通常會將其分割成數個邏輯區段(分區)。分區化可讓您將 OS、資料、記錄等分開,以利更容易管理。
例如,/dev/sda1、/dev/sda2 表示裝置 sda 上的第一個與第二個分區。每個分區上會建立檔案系統,實際資料儲存在其中。
(Linux 中分區的範例說明)Engineer’s Entrance
分區使用如 MBR(舊式)或 GPT(新式)等分區表格式,每種格式皆有其限制與優點。
1.2 掛載與掛載點
掛載
為了讓檔案系統可用,您必須掛載它—即將分區(或邏輯卷)與特定目錄(掛載點)關聯起來。若未掛載,您無法存取該分區上的資料。
例如,即使 /dev/sda1 包含 ext4 檔案系統,您仍需執行 mount /dev/sda1 /mnt/data,才能在 /mnt/data 下工作。
掛載點
掛載檔案系統的目錄稱為掛載點。典型的範例包括:
/– 根目錄,整個系統的起點/home– 使用者家目錄/var– 記錄、快取、可變資料/boot– 開機相關檔案
將不同分區指派至不同掛載點是一種常見做法。
在 Ubuntu 與大多數 Linux 作業系統中,檔案 /etc/fstab 會列出「哪個裝置/UUID 在何處掛載(於開機時自動執行)」。
1.3 LVM(邏輯卷管理)概覽
純分區化可能使後續變更變得困難。LVM(邏輯卷管理器) 解決了此問題。
LVM 核心元件
- 實體卷 (PV) – 實體磁碟或分區。
- 卷組 (VG) – 將多個 PV 彙整成單一大型資源池。
- 邏輯卷 (LV) – 從 VG 中取出的區段;在 LV 上建立檔案系統。
此階層結構讓您之後能夠擴充或縮減邏輯卷,或將更多實體磁碟新增至資源池中。
LVM 的優點與注意事項
優點
- 彈性的調整大小
- 將多個磁碟合併成單一資源池
- 輕鬆建立快照以進行備份
注意事項
- 配置與操作更複雜
- 若處理不當,可能有資料遺失風險
- 擴充步驟與非 LVM 設定不同
Ubuntu 的安裝程式經常提供 LVM 選項,但許多使用者會依需求選擇不使用它。
1.4 典型的 Ubuntu 配置
確切的配置因情況而異,但常見模式包括:
單一分區(簡單)配置
所有檔案皆位於根目錄 (/) 下。更簡單,但後續分割或擴充可能較困難。
分割配置範例
/– 系統檔案/home– 使用者資料/var– 記錄與可變資料/boot– 開機載入器檔案- Swap(交換分區或交換檔案)
將這些分開有助於防止記錄或快取增長而填滿整個系統。
LVM + 邏輯卷
更進階的設定:
- 實體磁碟 → PV
- 多個 PV → VG
/、/home、/var等 → 個別 LV- 依需求之後新增或擴充 LV
使用 LVM,您可以彈性地新增磁碟或擴大邏輯卷。
2. 檢查容量的基本命令
在 Ubuntu 上,使用命令列是檢查磁碟使用情況最可靠且靈活的方式。即使在無頭伺服器上,您也可以精確看到哪些磁碟在使用中,以及哪些目錄佔用了空間。
下面是核心的 df 和 du 命令,以及一些輔助工具。
2.1 使用 df 檢查整個檔案系統
df 的功能
df (磁碟可用空間) 顯示每個檔案系統的總計、使用中和可用空間。這是 Linux 上檢查容量最常見的方式。
基本用法
df -h
此命令以「人類可讀」單位 (K, M, G) 列出每個檔案系統。主要欄位:
| Column | Meaning |
|---|---|
| Filesystem | Device name (e.g., /dev/sda1) |
| Size | Total size of the filesystem |
| Used | Space already used |
| Avail | Free space remaining |
| Use% | Percentage used |
| Mounted on | Mount point (e.g., /, |
| Option | Description |
|---|---|
-h | Display sizes in MB/GB units (handy for a quick view) |
-T | Also show the filesystem type (e.g., ext4, xfs) |
--total | Append a total line at the end |
df -h /home | Show only the filesystem that contains the specified directory |
範例
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 100G 55G 40G 59% /
/dev/sda1 512M 120M 392M 24% /boot
tmpfs 16G 32M 16G 1% /run
從此輸出中,您可以一目了然地看到每個區域使用了多少空間。
注意事項
- 未掛載的分區 不會包含在
df的輸出中。 - 如果 Snap 套件 (
/var/lib/snapd/snaps) 佔用了空間,您需要單獨檢查它們。 - 沒有 root 權限,有些掛載點是不可見的。
2.2 使用 du 命令檢查目錄層級使用情況
du 的概述
du (磁碟使用量) 是一個 報告目錄和檔案大小 的命令。
雖然 df 給您「大局觀」,但 du 幫助您找出「重型東西在哪裡」。
基本用法
du -sh /home
在這個範例中,/home 目錄的總使用量以「人類可讀」格式 (-h) 顯示。
常見選項
| Option | Description |
|---|---|
-s | Show only the total (suppress details) |
-h | Auto‑scale units for readability |
--max-depth=1 | List usage of items directly under the specified directory |
-c | Show a grand total at the end |
--exclude=PATTERN | Exclude specific folders (e.g., caches) |
範例 (整體比較)
sudo du -h --max-depth=1 /var
範例輸出:
1.2G /var/log
2.5G /var/lib
800M /var/cache
4.5G /var
這讓您快速看到哪些資料夾佔用了空間。
進階:依大小排序
透過結合 du 和 sort,您可以輕鬆找出大型目錄。
sudo du -hsx /* | sort -rh | head -10
此命令計算每個頂層資料夾的使用量並顯示前 10 名。
這對於在整個系統中追蹤「吞噬空間的罪魁禍首」非常有效。
注意事項
- 深層目錄樹可能需要一段時間處理。
- 沒有 root 權限,有些目錄不會報告準確的大小。
- 即使在快速 SSD 上,測量數十 GB 也可能需要幾分鐘。
2.3 其他實用的輔助命令與工具
lsblk:檢視區塊裝置配置
lsblk
lsblk 以樹狀格式顯示磁碟裝置及其分區配置。
這是將大小與掛載點視覺關聯的便捷方式。
範例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 512M 0 part /boot
└─sda2 8:2 0 99.5G 0 part /
ncdu:互動式磁碟使用量分析器
如果您想要比 du 更直觀的介面,請試試 ncdu (NCurses Disk Usage)。
使用以下命令安裝:
sudo apt install ncdu
執行它:
sudo ncdu /
使用方向鍵展開和收合資料夾,並查看哪些目錄佔用了空間。
因為它無需 GUI 即可運作,因此在伺服器和工作站上都很受歡迎。
與 find 結合
要僅找出最大的檔案,請使用 find:
sudo find / -type f -size +1G
這會搜尋所有大於 1 GB 的檔案,幫助您識別不必要的檔案,例如日誌或虛擬機器映像。
2.4 使用哪種方法?(比較摘要)
| Goal | Example command | Characteristics |
|---|---|---|
| Check overall free space | df -h | Shows usage per filesystem |
| Find size of a specific folder | du -sh /path | Displays detailed size |
| Locate space‑eaters | du -hsx /* | sort -rh | Sorts directories by size |
| View device layout | lsblk | Visualizes partition relationships |
| Find large files | find / -type f -size +1G | Filters by size condition |
3. 使用 GUI 檢查磁碟使用情況 (Ubuntu Desktop)
Ubuntu 提供圖形工具,讓您無需開啟終端機即可查看磁碟使用情況。下面是兩種常見方法。
- 內建的 檔案管理器 (Nautilus)
- 磁碟使用量分析器 (Baobab)
我們將檢視每個工具的功能和使用方法。
3.1 使用檔案管理器 (Nautilus) 檢查可用空間
Ubuntu 的預設方法
如果您使用 Ubuntu Desktop,最簡單查看磁碟空間的方式是開啟 檔案管理器 (Nautilus)。
- 點擊左側停靠欄(應用程式啟動器)中的 Files 圖示。
- 查看視窗右上角或左下角的 status bar。
- 您會看到類似「xx GB 已使用,共 yy GB」或「zz GB 可用」的資訊。
這能讓您立即查看系統磁碟的可用空間。
透過 Properties 查看詳細資訊
右鍵點擊資料夾或磁碟圖示並選擇 Properties。
此對話方塊顯示該特定資料夾的已用空間和可用空間,這對於檢查如 /home 或 /Downloads 等目錄非常方便。
優缺點
| Pros | Cons |
|---|---|
| One‑click, very easy | Hidden or system areas are not obvious |
| Beginner‑friendly | Doesn’t reveal /var/log, system partitions, etc. |
GUI 非常適合快速了解整體使用情況,但對於深入分析,您會需要 Baobab。
3.2 磁碟使用量分析器 (Baobab)
Baobab 是什麼?
Baobab (Disk Usage Analyzer) 是一個圖形化工具,它掃描您的檔案系統並以互動式樹狀圖或環形圖呈現結果。它讓您能夠透過視覺概覽快速找出大型目錄和檔案。
安裝
sudo apt install baobab
啟動
您可以從應用程式選單啟動它(搜尋「Disk Usage Analyzer」)或執行:
baobab
使用方法
- 選擇要掃描的位置(例如,「Home Folder」、「Filesystem」或自訂路徑)。
- 掃描完成後,樹狀圖會將每個資料夾顯示為一個矩形,其大小與空間消耗成比例。
- 將游標懸停或點擊矩形以查看確切大小和路徑。
- 右鍵點擊資料夾以在檔案管理器中開啟它或直接刪除。
因為 Baobab 不需要完整的桌面環境即可運作,因此在輕量級 Ubuntu 版本中也很有用。
優點
- 視覺化、直觀的磁碟使用量表示。
- 輕鬆導航至最大的空間消耗者。
- 不需要記住命令列選項。
限制
- 掃描非常大的檔案系統可能需要幾分鐘。
- 需要圖形化工作階段(不適合無頭伺服器)。
Baobab (官方名稱:Disk Usage Analyzer) 是 Ubuntu 預設提供的圖形化工具,它使用 餅圖和樹狀圖 視覺化顯示每個資料夾的使用空間。
它大多數系統上預設安裝,但如果不存在,您可以透過以下方式新增:
sudo apt install baobab
如何啟動
- 在 Activities 中搜尋「Disk Usage」(左上角搜尋列)
- 點擊 Disk Usage Analyzer (Baobab) 以啟動它
- 啟動後,選擇 Scan Folder 或 Scan Whole Filesystem
短暫掃描後,餅圖或樹狀視圖將視覺化顯示每個目錄的使用量。
範例視圖 (影像)
- 越往外去,目錄層級越深
- 每個區段的大小由餅圖切片的區域表示
視覺提示讓您一眼就能看出 哪些資料夾過度膨脹。
主要功能
| Feature | Description |
|---|---|
| Specify Scan Target | You can limit the scan to a specific directory such as /home |
| Tree View | Browse the folder structure and sizes in a list |
| Identify Unneeded Files | Spot large folders instantly |
| Right‑click → Open | Open the selected directory directly in the file manager |
優點與注意事項
優點
- 圖形化顯示對初學者來說直觀
- 幫助決定要刪除或重新組織什麼
- 以 root 身分執行可分析系統分割區
注意事項
- 掃描整個系統可能需要時間
- 權限限制可能無法準確測量某些資料夾
- 大型磁碟在掃描時可能增加記憶體使用量
3.3 使用 GNOME Disks 檢查磁碟資訊
Ubuntu 還包含標準應用程式 GNOME Disks (Disk Utility)。
它讓您檢查 磁碟結構本身,顯示不僅僅是可用空間的資訊:
- 裝置名稱(例如,
/dev/sda) - 檔案系統類型 (ext4、NTFS 等)
- 掛載點
- 使用量圖表
如何啟動:
- 在 Activities 中搜尋「Disks」
- 開啟 GNOME Disks
- 從左側清單中選擇一個磁碟
視覺化量表顯示使用量,以圖形化形式提供與 df 相同的資訊。
3.4 何時使用 GUI 與命令列
在 Ubuntu 桌面環境中,GUI 工具通常足以進行儲存管理。
然而,對於 精確故障排除或伺服器管理,命令列工具如 df 和 du 至關重要。
| Situation | Recommended Tool |
|---|---|
| Quick check of free space | File manager (Nautilus) |
| Find large folders | Baobab (Disk Usage Analyzer) |
| Inspect device layout | GNOME Disks |
| Server or remote environment | df, du, lsblk, ncdu |
3.5 如果沒有 GUI (伺服器使用者)
如果您正在運行 Ubuntu Server 或其他沒有 GUI 的環境,Baobab 和檔案管理器就無法使用。
在這種情況下,請依賴先前介紹的 df、du 和 ncdu 命令;它們提供詳細的基於文字的儲存空間分析。
摘要
使用 GUI 可以讓您以 幾個點擊 檢查儲存空間並找出清理點。
特別是 Baobab,是從 Ubuntu 新手到進階使用者的必備工具。
透過混合本章所述的方法,日常儲存空間監控變得更加輕鬆。
4. 低磁碟空間的調查步驟和補救措施
隨著時間推移,長期使用和累積的套件更新可能導致 Ubuntu 的磁碟空間不足。
讓系統處於低空間狀態可能導致更新失敗、遺失日誌,以及整體不穩定。
本節逐步說明 如何診斷低空間問題以及有效的解決方法。
4.1 辨識低空間症狀
首先,辨識儲存空間即將耗盡的跡象。請注意:
apt upgrade報告「可用空間不足」- GUI 警告「磁碟空間不足」
- 應用程式無法儲存設定或寫入日誌
/var或/tmp填滿,導致行為遲緩
當您看到這些時,是時候確定 空間被用在哪裡,而非僅僅增加更多空間。

4.2 步驟 1:取得使用概覽 (df)
從 df -h 開始,以查看整體容量:
df -h
範例輸出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 50G 48G 1.2G 98% /
/dev/sda1 512M 120M 392M 24% /boot
任何掛載點的 使用率 ≥ 90% 都需要注意,特別是 /、/var 或 /home。
4.3 步驟 2:找出哪些目錄消耗空間 (du)
一旦您知道有問題的分區,請使用 du 深入調查。
範例:顯示前 10 名空間消耗項目
sudo du -hsx /* | sort -rh | head -10
範例輸出:
15G /var
10G /home
5.2G /usr
3.1G /snap
大型的 /var 通常指向日誌或快取;大型的 /home 表示使用者資料。
在 /var 內深入調查
sudo du -hsx /var/* | sort -rh | head -10
透過遍歷階層,您可以精確找出佔用空間的目錄。
4.4 步驟 3:移除不必要的檔案和快取
在辨識出罪魁禍首後,開始清理 可安全刪除 的項目。
(1) 清理 APT 快取
Ubuntu 在 /var/cache/apt/archives 中儲存臨時套件檔案。刪除它們可以釋放數 GB 的空間。
sudo apt clean
sudo apt autoremove
apt clean– 移除所有快取的套件檔案apt autoremove– 移除不再需要的套件
(2) 刪除舊日誌檔案
/var/log 是常見的膨脹來源。
sudo journalctl --vacuum-time=7d
上述命令刪除超過 7 天的系統日誌。
您也可以手動刪除不必要的 .gz (壓縮日誌) 檔案。
sudo rm -f /var/log/*.gz
(3) 移除舊的 Snap 套件版本
在 Ubuntu 上,Snap 應用程式的舊版本會自動保留。
您可以使用下列命令刪除舊的 snap。
sudo snap list --all | grep disabled | awk '{print $1, $3}' |
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
或者,您可以使用簡單的「Snap Cleaner」類型公用程式。
(4) 刪除縮圖快取
如果您處理許多圖像或影片,~/.cache/thumbnails 中會累積大量快取。
rm -rf ~/.cache/thumbnails/*
(5) 清空垃圾桶
透過 GUI 刪除的檔案可能仍駐留在 ~/.local/share/Trash/files 中。
rm -rf ~/.local/share/Trash/*
4.5 步驟 4:減輕應用程式和日誌的膨脹
(1) 使用 Docker 時
使用 Docker 時,不必要的映像和容器可能消耗空間。
docker system df
docker system prune -a
docker system df: 檢查 Docker 相關的使用量docker system prune -a: 移除未使用的映像和容器
(2) 大量使用 Flatpak 或 Snap 時
在安裝許多 GUI 應用程式的環境中,殘留的應用程式殘餘檔案(舊版本)容易累積。
使用像 flatpak uninstall --unused 這樣的指令來清理。
(3) 檢視記錄輪替設定
檢查 /etc/logrotate.conf 和 /etc/logrotate.d/,並設定適當的保留期間和大小限制,以幫助防止再次發生。
4.6 步驟 5:透過調整大小或新增磁碟來從根本解決
如果僅刪除檔案不足以解決問題,請考慮以下設定變更。
(1) 使用 LVM 時
在具備 LVM (Logical Volume Manager) 的環境中,可以輕鬆擴充邏輯磁區。
sudo lvextend -L +20G /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
這允許您增加 / 的容量。
(2) 新增新磁碟並掛載它
在 /mnt/data (或類似位置) 掛載新儲存空間,並將大型目錄 (例如 /var/lib/docker 或 /home) 移至該處。
(3) 利用雲端儲存
將記錄和備份移至 Google Drive、Dropbox、Nextcloud 等,是另一種選擇。
4.7 定期檢查以防止再次發生
空間耗盡的問題可以透過定期監控來避免。
採用以下實務是有效的。
- 定期檢查
df -h和du -sh /var - 建立腳本來自動檢查大型目錄
- 當使用量超過閾值時設定電子郵件通知 (
cron+mailutils等)
簡單範例:
#!/bin/bash
THRESHOLD=90
USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Disk usage on / has exceeded ${THRESHOLD}%!" | mail -s "Disk Alert" admin@example.com
fi
4.8 摘要:優先採用節省空間的措施
| Priority | Measure | Notes |
|---|---|---|
| ★★★★★ | Delete APT cache (sudo apt clean) | Immediate effect |
| ★★★★☆ | Delete logs (sudo journalctl --vacuum-time=7d) | Safe and reliable |
| ★★★★☆ | Remove unnecessary Snap/Flatpak versions | Effective on desktop environments |
| ★★★☆☆ | Delete unnecessary Docker data | Useful for server use |
| ★★☆☆☆ | Disk expansion / mount addition | Effective as a root solution |
| ★☆☆☆☆ | Implement regular monitoring scripts | Benefits over long‑term operation |
當 Ubuntu 空間不足時,
找出主要消耗者 → 從安全區域刪除 → 檢視設定
遵循這三個步驟可以解決大多數問題。
5. 進階提示 (實用技巧與注意事項)
即使使用上述方法檢查和清理空間,磁碟也會隨著時間再次填滿。
以下是一些進階技巧,以保持 Ubuntu 順暢運行。
5.1 自動化定期磁碟檢查
手動執行 df 或 du 很麻煩,但自動化腳本可以減少努力。
在 cron 中註冊簡單的監控腳本,當使用量超過閾值時發送警報。
範例:當可用空間低於 10% 時發送電子郵件的腳本
#!/bin/bash
THRESHOLD=90
USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Warning: Root disk usage has reached ${USAGE}%." |
mail -s "Ubuntu Disk Warning" user@example.com
fi
將此儲存為 /usr/local/bin/check_disk.sh 並使用 chmod +x 使其可執行。
然後在 crontab -e 中像這樣註冊它:
0 8 * * * /usr/local/bin/check_disk.sh
→ 檢查會在每天早上 8 點自動執行。
實用要點
- 通知也可以透過 Slack Webhook、LINE Notify 等發送。
- 可以擴充以同時監控多個掛載點
5.2 尋找大型檔案的一行指令
通常,空間短缺是由少數巨大檔案引起的。
以下的一行指令會列出大於 1 GB 的檔案。
sudo find / -type f -size +1G -exec ls -lh {} ; | awk '{print $9 ": " $5}'
/var/log/syslog.1: 1.5G
/var/lib/docker/overlay2/.../diff/usr/lib/libchrome.so: 2.3G
/home/user/Downloads/video.mp4: 4.1G
這樣,您可以快速找到應該刪除或移動的檔案。
範例:僅搜尋特定目錄
sudo find /var -type f -size +500M
→ 用於在 /var 下找到大於 500 MB 的檔案。
5.3 別名常用指令
每次輸入長指令很麻煩,因此設定別名很有效率。
範例:附加到 ~/.bashrc
alias dfh='df -h --total'
alias duh='sudo du -hsx /* | sort -rh | head -10'
alias logs='sudo du -hs /var/log/* | sort -rh | head -10'
設定後套用:
source ~/.bashrc
現在,
dfh→ 檢查總容量duh→ 查看前 10 個資料夾logs→ 調查日誌大小
您可以即時執行這些操作。
5.4 持續監控磁碟使用變化(monitoring)
長期執行 Ubuntu 時,您可能會遇到「磁碟空間悄悄增加」的問題。
因此,將磁碟使用變化記錄為歷史是很有用的。
範例:將磁碟使用情況寫入檔案的腳本
#!/bin/bash
df -h / | awk 'NR==2 {print strftime("%Y-%m-%d %H:%M:%S"), $3, $4, $5}' >> /var/log/disk_usage.log
透過 cron 每日執行一次,即可在之後追蹤磁碟使用趨勢。
更進階的方法
- 安裝
collectd或netdata以進行圖形化 - 使用 Prometheus + Grafana 進行監控可視化
- 在雲端環境時,整合 AWS CloudWatch 或 GCP Ops Agent
您可以在營運管理層面進行監控,而不必依賴 GUI 工具。
5.5 警惕權限障礙
在檢查或刪除磁碟使用情況時,若未取得 root 權限可能無法得到正確的結果。
範例:
du -sh /var
即使執行此指令,普通使用者仍會因「Permission denied」而跳過某些資料夾,導致數值低實際使用量。
→ 作為對策,請在指令前加上 sudo 或以管理員身分執行。
5.6 SSD/HDD 環境的考量
SSD 環境
- 為避免不必要的寫入,請定期使用
fstrim執行 TRIM:sudo systemctl enable fstrim.timer,讓 SSD 能最佳化已刪除的區塊。
HDD 環境
- 日誌與快取容易碎片化,刪除不必要的檔案後重新開機可能會有效。
- 在 I/O 負載較重的
du指令,最好在低負載時段執行,例如深夜。
5.7 系統化容量管理以防止重現
最後,容量管理的最佳解決方案是養成慣例且系統化。
實用檢查清單
- 定期檢查
df -h - 每月檢查
/var/log成長情況 - 每週執行
apt autoremove - 定期刪除不必要的 Snap 與 Docker 資料
- 建置自動通知腳本
若能定期執行上述工作,大多數磁碟空間問題都能避免。
小結
本節介紹了進階技巧,讓 Ubuntu 磁碟空間管理更有效率。
重點有三項:
- 透過自動化與通知提前偵測
- 以別名與單行指令提升營運效率
- 考量權限與裝置特性以安全管理
結合這些做法,將容量管理從繁雜的工作轉變為系統營運的核心部分。
6. 常見問題 (FAQ)
Q1. 在 Ubuntu 上檢查目前剩餘空間的簡易方法是什麼?
最簡單的方式是在終端機執行以下指令。
df -h
此指令會一目了然地顯示每個磁碟(分割區)的總容量、已使用空間與剩餘空間。
加入 -h 參數可將大小以人類可讀的格式(GB、MB)顯示。
Q2. 如何檢查每個目錄的磁碟使用量?
使用 du 指令。
要檢查特定資料夾的使用量,執行:
du -sh /home
參數說明:
-s:僅顯示總計-h:以人類可讀的單位顯示大小
若要取得更詳細的每個子資料夾使用情況,使用:
sudo du -h --max-depth=1 /var
Q3. df 與 du 有何差異?
簡而言之,它們測量的對象不同。
| Command | Target | Primary Use |
|---|---|---|
df | Entire filesystem | Check free space |
du | File/directory level | Find where space is used |
例如,使用 df 查看 / 的整體剩餘空間,使用 du 查看特定資料夾佔用了多少空間。
Q4. 如何透過 GUI 檢查剩餘空間?
在 Ubuntu Desktop 上,您可以使用檔案管理員 (Nautilus) 或磁碟使用分析器 (Baobab) 直觀檢查。
- 檔案管理員 → 底部列會顯示「Remaining XX GB」
- Baobab → 圖形化的使用量分布
兩者皆適合新手,只要點擊即可看到結果。
Q5. 若收到「磁碟已滿」警告,應該先刪除什麼?
首先移除安全快取與不必要的檔案。
建議的順序如下:
- 清除 APT 快取
sudo apt clean - 移除不必要的套件
sudo apt autoremove - 清理日誌
sudo journalctl --vacuum-time=7d - 空垃圾桶與縮圖快取
rm -rf ~/.cache/thumbnails/* && rm -rf ~/.local/share/Trash/*
僅此步驟即可釋放數 GB 的空間。
Q6. 我聽說 Snap 應用程式會佔用大量磁碟空間。我該怎麼做?
Snap 會保留每個版本的應用程式,因此舊的修訂版可能會殘留。
您可以使用以下指令刪除不需要的舊修訂版:
sudo snap list --all | grep disabled | awk '{print $1, $3}' |
while read snapname revision; do
sudo snap remove "$snapname" --revision="$revision"
done
或者,您也可以使用圖形介面工具 Snap Store 手動移除。
Q7. 當 /var 或 /home 太大時該怎麼辦?
/var– 清理日誌(/var/log)與/var/cache)/home– 備份或將下載與影片檔案移至外部儲存裝置
如果需要擴充容量,可使用 LVM 擴展磁碟卷,或掛載新硬碟並分別管理空間。
Q8. 執行 du 需要很長時間。有沒有加速的方法?
du 會遞迴掃描每個檔案,於檔案數量龐大的目錄上會相當緩慢。
以下技巧或能加速:
- 使用
--max-depth=1以跳過深層子目錄 - 排除不必要的資料夾(例如
--exclude=/proc) - 使用
ncdu指令(互動式檢視)sudo apt install ncdu sudo ncdu /
ncdu 輕量且提供視覺化的磁碟使用情況檢查方式。
Q9. 如何防止再次磁碟空間不足?
定期維護非常有幫助:
- 每週執行一次
sudo apt autoremove - 每月檢查
/var/log與/home的使用情況 - 將
df -h的輸出存入日誌,並追蹤變化 - 定期刪除舊的 Snap 或 Docker 資料
- 在 SSD 上,使用
sudo systemctl enable fstrim.timer啟用自動 trim
自動化這些任務可防止磁碟空間問題再度出現。
Q10. 擴充儲存空間有哪些選項?
常見的三種擴充方式:
擴展 LVM 磁碟卷
bash sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv sudo resize2fs /dev/ubuntu-vg/ubuntu-lv2. 新增硬碟並掛載 – 建立掛載點(例如/mnt/data)並分散負載。
3. 使用雲端儲存 – 將大型檔案搬移至 Google Drive、Nextcloud 等。
若無法新增實體儲存裝置,將舊檔案歸檔亦是有效方法。
Q11. 能在沒有 root 權限的情況下檢查磁碟使用量嗎?
基本的 df -h 可供任何使用者使用,但 du 需要讀取某些目錄的權限(例如 /var/log)。
在非 root 環境下,將掃描範圍限制在您的家目錄:
du -sh ~/*
Q12. 如何在無頭(伺服器)系統上檢查儲存空間?
由於 Ubuntu 伺服器版沒有圖形介面,請改用以下指令:
| Goal | Command |
|---|---|
| Check overall usage | df -h |
| Check per‑directory usage | sudo du -hsx /* |
| Find large files | sudo find / -type f -size +1G |
| Visual, text‑based view | sudo ncdu / |
結合些指令即可在沒有 GUI 的情況下輕鬆分析磁碟使用情況。
Q13. 檢查儲存空間時會不會有破壞系統的風險?
僅檢查使用情況本身不會有風險。
但在開始刪除或調整大小時需特別小心:
- 在使用
sudo rm -rf前務必再次確認路徑 - 絕不要刪除系統目錄,如
/bin、/lib或/etc - 若不確定,請先備份
Q14. 有什麼隱藏技巧可以節省空間?
- 縮短日誌保留時間(
/etc/logrotate.conf設定) - 移除不必要的語言套件:
sudo apt install localepurge - 清除舊的核心(有時會殘留):
sudo apt autoremove --purge
這些步驟可釋放數百 MB 至數 GB 不等的空間。
Q15. 推薦的磁碟使用監控工具?
Ubuntu 提供多項實用的監控工具:
| Tool | Features |
|---|---|
| ncdu | Lightweight, fast CLI explorer |
| Baobab | GUI with visual charts |
| duf | Enhanced df with a clean table layout |
| Netdata / Prometheus / Grafana | Full‑stack server monitoring and graphing |
Summary
管理 Ubuntu 磁碟空間的重點如下:
- 使用
df來查看整體概況,使用du進行詳細檢查 - 安全地依序刪除不必要的資料(APT → 日誌 → 快取)
- 自動化清理與監控以防止再次發生
將這些做法列為日常,即可讓磁碟空間問題變得罕見。儲存空間管理看似平凡,卻是維持 Ubuntu 系統穩定的最關鍵維護工作之一。



