雲服務商預設安裝常將系統盤限制在 10-20 GB,數據盤單獨掛載或完全未分區。面對 df -h 顯示根分區 90%+ 使用率,本文提供從分區識別、LVM 擴容到文件系統調整的完整操作流,助你零停機釋放空間。

# 1. 查看分區佔用
df -hT
# 2. 查看塊設備與分區表
lsblk -f
# 或
fdisk -l
# 3. 查看 LVM 邏輯卷詳情
lvs; vgs; pvs
典型場景:/dev/vda1(20G) 做根分區,/dev/vdb(100G) 完全未分區,或已建立 LVM PV 但未加入 VG。
df -hT 顯示 Type 為 ext4/xfs 且 Device 為 /dev/mapper/...)# 1. 新磁盤建立分區並標記為 LVM (8e)
fdisk /dev/vdb
# n → p → 1 → Enter → Enter → t → 8e → w
# 2. 建立 PV、加入現有 VG
pvcreate /dev/vdb1
vgextend centos /dev/vdb1 # VG 名稱從 vgs 獲取
# 3. 擴容 LV(以根分區為例)
lvextend -l +100%FREE /dev/mapper/centos-root
# 4. 調整文件系統(關鍵步驟!)
# ext4:
resize2fs /dev/mapper/centos-root
# xfs:
xfs_growfs /dev/mapper/centos-root
# 5. 驗證
df -h /
需使用 growpart (cloud-utils) 或 parted 移動分區,風險較高,**強烈建議先快照備份**。現代雲主機多預設 LVM,優先確認方案 A 可行性。
# 1. 格式化新磁盤
mkfs.ext4 /dev/vdb1
# 2. 遷移數據目錄(以 /var/www 為例)
mkdir /mnt/newdata
mount /dev/vdb1 /mnt/newdata
rsync -av /var/www/ /mnt/newdata/
# 修改 /etc/fstab 永久掛載
echo "/dev/vdb1 /var/www ext4 defaults 0 0" >> /etc/fstab
# 原子切換
mount -a
df -h /var/www
| 場景 | 命令/方法 | 風險 |
|---|---|---|
| 清理日誌 | journalctl --vacuum-size=500M / truncate -s 0 /var/log/*.log | 低 |
| 清理包管理器快取 | yum clean all / apt clean / dnf clean all | 無 |
| 刪除舊內核 | package-cleanup --oldkernels --count=2 (yum-utils) | 低 |
| 查找大文件 | find / -xdev -type f -size +100M -exec ls -lh {} \; | 需人工判斷 |
| Docker 佔用 | docker system prune -a --volumes | 中(刪除未用鏡像/卷) |
VPS 磁盤擴容核心在於「識別 LVM 架構 → 納入新 PV → 擴容 LV → 調整 FS」四步走。若非 LVM,優先考慮「掛載新盤分流業務目錄」規避風險。建立分區規劃與監控體系,才能從「救火」轉向「防火」。
Linux RHCS 叢集維運指令速查:clustat、cman_tool 狀態檢視與節點管理
Linux Crontab 定時任務實戰指南:從語法解析到生產級部署規範
修復 /etc/rc.local 開機不自動執行:重建 rc3.d 軟連結
FreeBSD 系統安裝字型完整指南:Type1、TrueType 與文泉驛中文字型
Ubuntu 筆電 Bumblebee 3.0 "Tumbleweed" 散熱優化:PPA 來源更新、ironhide 移除、bbswitch 切顯卡完整實戰
Ubuntu 13.10 搶先安裝 Linux 3.12 核心:下載官方 .deb 套件直接安裝