适用场景:VMware/VirtualBox 等虚拟机中已扩展虚拟磁盘容量,但 Kali 系统内部根分区空间未增加。
⚠️ 重要提醒
- 操作前务必备份虚拟机快照或重要数据,磁盘操作存在风险
- 确保虚拟机处于 关机状态 时再进行虚拟磁盘扩容操作
一、VMware 中扩展虚拟磁盘
- 关闭 Kali 虚拟机
- 右键虚拟机 → 设置 → 硬盘 → 扩展
- 输入新的磁盘大小(如从 50GB 扩展到 100GB)
- 点击 确定 保存
二、Kali 内部扩容操作
启动 Kali 后,按以下步骤操作:
步骤 1:确认磁盘已识别新容量
bash
sudo lsblk
预期输出示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 100G 0 disk ← 磁盘总容量已变为 100G
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 244M 0 part /boot
└─sda3 8:3 0 49G 0 part ← 但 sda3 分区仍是 49G
└─kali--vg-kali--lv 253:0 0 49G 0 lvm / ← 根分区也只有 49G
磁盘总容量增加了,但分区
sda3和逻辑卷大小未变,需要手动扩展。
步骤 2:扩展物理分区
安装 growpart 工具(如未安装):
bash
sudo apt update
sudo apt install cloud-guest-utils
扩展 /dev/sda3 分区到磁盘末尾:
bash
sudo growpart /dev/sda 3
注意 :
growpart后参数是 磁盘设备名 和 分区号 ,中间有空格,不是/dev/sda3。
验证分区扩展:
bash
sudo lsblk
预期输出:
sda 8:0 0 100G 0 disk
└─sda3 8:3 0 99G 0 part ← sda3 已扩展到约 99G
步骤 3:扩展 LVM 物理卷(PV)
让 LVM 识别分区的新大小:
bash
sudo pvresize /dev/sda3
验证 PV 大小:
bash
sudo pvs
步骤 4:扩展逻辑卷(LV)
将卷组剩余空间全部分配给根分区:
bash
sudo lvextend -l +100%FREE /dev/mapper/kali--vg-kali--lv
路径名可能不同,可用
sudo lvs查看实际的逻辑卷名称。
验证 LV 大小:
bash
sudo lvs
步骤 5:扩展文件系统
根据文件系统类型选择命令:
ext4 文件系统:
bash
sudo resize2fs /dev/mapper/kali--vg-kali--lv
xfs 文件系统:
bash
sudo xfs_growfs /
Kali 默认通常使用 ext4,可用
df -Th查看文件系统类型确认 。
步骤 6:验证扩容结果
bash
df -h /
预期输出:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/kali--vg-kali--lv 98G 25G 69G 27% /
根分区已成功扩展!
三、完整命令速查
bash
# 1. 确认磁盘容量
sudo lsblk
# 2. 扩展物理分区
sudo apt install cloud-guest-utils
sudo growpart /dev/sda 3
# 3. 扩展 PV
sudo pvresize /dev/sda3
# 4. 扩展 LV
sudo lvextend -l +100%FREE /dev/mapper/kali--vg-kali--lv
# 5. 扩展文件系统(ext4)
sudo resize2fs /dev/mapper/kali--vg-kali--lv
# 6. 验证
df -h /
四、常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
growpart 报错 "NOCHANGE" |
分区后无未分配空间 | 确认已在 VMware 中扩容虚拟磁盘 |
resize2fs 报错 "Bad magic number" |
文件系统类型不是 ext4 | 用 df -Th 确认,xfs 用 xfs_growfs |
| 逻辑卷路径名不对 | 不同版本命名不同 | 用 sudo lvs 查看实际路径 |
| 无法在线扩展 | 分区正在使用中 | 确保是根分区在线扩展,LVM 支持在线操作 |
五、LVM 扩容流程图
VMware 扩容虚拟磁盘
↓
Kali 识别新磁盘容量 (lsblk)
↓
扩展物理分区 (growpart /dev/sda 3)
↓
扩展物理卷 (pvresize /dev/sda3)
↓
扩展逻辑卷 (lvextend -l +100%FREE ...)
↓
扩展文件系统 (resize2fs / xfs_growfs)
↓
验证 (df -h)
总结 :Kali 使用 LVM 管理分区,扩容需要依次完成 分区扩展 → PV 扩展 → LV 扩展 → 文件系统扩展 四个步骤,缺一不可 。