Windows 是分 C/D/E 多个盘符;Linux 默认就一块磁盘,靠分区 / LVM 划分空间,不会自动多出盘符,多出的空间是未分配空闲空间,不会自动加入系统可用容量。
两个关键命令区分(非常重要)
lsblk # 看硬件/磁盘总大小(能看到完整硬盘,含未分配空间)
df-h# 看已经挂载、真正能用的文件系统大小(你看到只有100G就是这个输出)
- 如果
lsblk看到磁盘总容量很大(比如 300G),但下面分区 / LVM 只有 100G → 硬盘识别正常,剩余是未分配空间,没有被使用。 df‑h只统计已经格式化并挂载的部分,未分配空间不会在这里显示。
最常见两种原因
原因 1:安装时用了 LVM(Ubuntu/CentOS/RHEL 默认)
安装系统时,安装程序只给逻辑卷分配了 100G,磁盘剩下的空间留在卷组 VG 里空闲,但没有自动扩大给根分区。现象:lsblk磁盘总容量很大,VG 有 Free 空闲,但是df -h /只有 100G。
LVM 一键把全部空闲空间给根目录
# 把卷组全部空闲空间给到根逻辑卷
sudo lvextend -l +100%FREE /dev/mapper/xxx-vg-root
# 再扩容文件系统,二选一
# ext4系统:
sudo resize2fs /dev/mapper/xxx-vg-root
# xfs系统(CentOS/RHEL):
sudo xfs_growfs /
把xxx‑vg‑root替换成你lsblk看到的 mapper 路径。
原因 2:普通分区(非 LVM),磁盘有一大块未分配空间
安装系统只划分了 100G 分区,硬盘剩下的空间完全没有创建分区。两种处理方式:
- 扩容原有根分区
- 新建一个分区
虚拟机场景:VMware/VirtualBox 里调大虚拟磁盘,只是改底层磁盘文件,Linux 内部不会自动扩大分区,必须手动操作分区 / 文件系统,和 Windows 要 “扩展卷” 一样。
快速定位你的情况
把下面两条命令输出贴出来,我可以给你复制粘贴直接执行的完整命令:
lsblk
df-h
vgs
补充小知识点
- Linux 不会像 Windows 一样多出 D 盘;整块硬盘可以只有一个根
/,所有文件都放这里。 - MBR 老分区表最大只支持 2TB,大于 2TB 硬盘要用 GPT 分区表,否则识别不全容量。
- 不要混淆:改虚拟机磁盘大小 ≠ 系统内部可用空间变大,两步操作。
⚠️扩容操作建议先备份重要数据,避免操作失误丢数据。