可能原因及解決方案
- 虛擬機磁盤未實際擴容(僅調整了虛擬大小)
現象:在 VMware 里調整了磁盤大小(如 20GB → 50GB),但 Ubuntu 內部仍只識別 10GB。
原因:VMware 調整的是虛擬磁盤上限,但 Ubuntu 內的分區未擴展。
解決方案:
sudo fdisk -l # 檢查實際識別的磁盤大小
如果 /dev/sda 仍顯示 10GB,需在 VMware 中:
關閉虛擬機
編輯虛擬機設置 → 硬盤 → 擴展(確保調整到 20GB 或更大)
啟動虛擬機,然后按照 Ubuntu 擴容磁盤步驟 調整分區。
- LVM 未正確分配空間
現象:lsblk 顯示磁盤是 20GB,但 df -h 顯示根分區只有 10GB。
原因:Ubuntu 默認使用 LVM,但新增空間未分配給邏輯卷(LV)。
解決方案:
檢查 /dev/sda 是否顯示新容量(如 50GB)。
如果仍顯示舊大小,嘗試:
bash
echo 1 | sudo tee /sys/block/sda/device/rescan
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv # 擴展邏輯卷
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv # 調整文件系統
檢查:
df -h # 現在應該顯示更大的可用空間
3. 快照或虛擬磁盤碎片占用空間
現象:VMware 虛擬機有快照,導致磁盤空間被占用。
解決方案:
刪除不必要的快照(VMware → 快照管理器)。
清理虛擬機磁盤:
sudo vmware-toolbox-cmd disk shrink /
在 VMware 中整理磁盤:
關閉虛擬機 → 虛擬機設置 → 硬盤 → 碎片整理 + 壓縮。
- 根分區 / 未使用全部空間
現象:fdisk -l 顯示 20GB,但 df -h 只顯示 10GB。
原因:分區表未擴展。
解決方案:
檢查 /dev/sda 是否顯示新容量(如 50GB)。
如果仍顯示舊大小,嘗試:
bash
echo 1 | sudo tee /sys/block/sda/device/rescan
sudo growpart /dev/sda 3 # 擴展分區(如 sda3)
sudo resize2fs /dev/sda3 # 調整文件系統
如果 growpart 不存在,安裝:
sudo apt install cloud-guest-utils
5. 臨時文件或日志占滿空間
現象:df -h 顯示 / 100%,但 du -sh * 找不到大文件。
原因:可能是已刪除但仍被進程占用的文件(如日志、Docker 容器)。
解決方案:
sudo lsof | grep deleted # 查看被刪除但仍占空間的文件
sudo systemctl restart syslog rsyslog # 重啟日志服務釋放空間
清理日志:
sudo journalctl --vacuum-size=100M # 限制日志大小
sudo apt clean # 清理包緩存
如何檢查問題?
查看磁盤使用情況:
df -h # 查看掛載點使用情況
lsblk # 查看磁盤和分區大小
sudo fdisk -l # 查看物理磁盤分配
檢查 LVM(如果使用):
sudo pvdisplay # 物理卷
sudo vgdisplay # 卷組
sudo lvdisplay # 邏輯卷