服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-16 更新于 2026-10-16 简米科技 4,329 字 10 分钟阅读

Kali虚拟机大小调整后无法启动怎么办,扩容后无法启动怎么办

导读Kali虚拟机大小调整后无法启动,多半是因为磁盘扩容后分区表与GRUB引导器没有同步更新,通过Live镜像进入救援模式重新挂载分区、修复文件系统并重装GRUB即可解决, 这类问题在VMware和VirtualBox上都常见,尤其当你只在虚拟机设置里增加了磁盘容量,却没有在系统内部完成分区和文件系统的扩展操作,K……

Kali虚拟机大小调整后无法启动,多半是因为磁盘扩容后分区表与GRUB引导器没有同步更新,通过Live镜像进入救援模式重新挂载分区、修复文件系统并重装GRUB即可解决。 这类问题在VMware和VirtualBox上都常见,尤其当你只在虚拟机设置里增加了磁盘容量,却没有在系统内部完成分区和文件系统的扩展操作。

Kali虚拟机扩容后启动失败是什么原因?

先说说你可能会看到的几种开机症状,黑屏只留一个光标闪烁,卡在GRUB命令行,或者直接报错“error: no such partition”,这些表现背后,通常对应着三个核心原因。

分区表与文件系统容量不一致,虚拟磁盘物理容量变大,但分区表还写着原有的边界,文件系统的元数据也停留在旧尺寸,GRUB按旧地址引导能进内层,但内核在挂载根目录时发现实际容量与声明不符,就会panic或反复重启。

UUID发生变化导致找不到根分区,部分磁盘操作工具会重写分区UUID,而GRUB配置和/etc/fstab里仍然记录着旧UUID,系统在启动早期就丢失了根设备路径。

GRUB引导器没有正确写入主引导记录,有些扩容操作会改变分区起始偏移量,或者你在调整过程中不小心覆盖了引导扇区,业内专家指出,扩容失败大多不是虚拟磁盘本身损坏,而是分区信息与文件系统容量之间的参照关系错乱了。

下表可以帮你快速对照现象和故障点:

开机表现 常见原因 修复方向
卡在GRUB命令行 分区表起始扇区偏移 重建分区表并重装GRUB
报no such partition 分区UUID或分区号丢失 进入救援模式恢复分区
黑屏无反应 文件系统损坏或显卡驱动冲突 先fsck,再检查启动参数

虚拟机磁盘扩容启动修复怎么做?Kali救援模式全流程

修复思路很简单:用另一个可启动的Linux系统进入内存环境,挂载原Kali分区,检查并扩展文件系统,最后重装引导,整个过程不需要重装系统,数据也基本安全。

第一步:准备Live环境并设置优先启动

你需要一个Kali Live镜像,或者任意一个基于Debian的Ubuntu Live ISO也可以,因为Kali官方镜像自带大量磁盘修复工具,用起来最顺手。

  • 在VMware里,进入虚拟机设置,将ISO文件挂载到CD/DVD光驱。
  • 打开虚拟机电源,立即按F2进入BIOS设置,把光驱调到启动顺序第一位。
  • Kali虚拟机大小调整后无法启动怎么办,扩容后无法启动怎么办

  • 如果你的虚拟机是UEFI模式,注意在Boot Manager里选EFI光驱启动,而不是Legacy模式。

等Live桌面加载出来,打开终端,所有操作都在终端里执行。

第二步:挂载原Kali根分区

进入Live环境后,先不要急着操作,用命令确认磁盘布局。

sudo fdisk -l
sudo lsblk -f

lsblk -f会显示每个分区的文件系统类型和UUID,假设你的Kali根分区是/dev/sda2,现在挂载到/mnt。

sudo mount /dev/sda2 /mnt

如果这一步报错,说明文件系统已经出现严重问题,你要先执行强制检查:

sudo fsck -f /dev/sda2

过程中会问你Fix?,输入y,可能循环询问多遍,直到所有错误被修复,然后重新挂载。

第三步:扩展分区和文件系统

挂载成功后,先检查根分区是否占满了扩容后的新磁盘空间。

sudo df -h /mnt

你会发现实际容量还是扩容前的大小,这里有个关键顺序:先扩分区,再扩文件系统,分区不改,直接resize文件系统是无效的。

使用fdisk操作/dev/sda:

sudo fdisk /dev/sda

在fdisk交互界面里:

  • 输入p查看当前分区表,记下根分区的起始扇区。
  • 输入d删除根分区(注意,不是删除整个磁盘,只删对应分区号)。
  • 输入n新建一个分区,保持之前记录的起始扇区不变,结束扇区按默认即可,让它占满整个剩余空间。
  • 输入t,如果需要,修改分区类型为Linux(83)。
  • 输入w写入分区表。

执行完以后,用sudo partprobe让内核重新读取分区表,然后对根分区做在线扩展(此时已经在Live环境,根分区是没挂载的,可以直接执行):

sudo resize2fs /dev/sda2

如果你的Kali系统用了XFS文件系统,改用sudo xfs_growfs /mnt,如果是Btrfs,则需要用btrfs filesystem resize max /mnt。

完成后你会看到文件系统大小已经变成扩容后的目标值。

第四步:重装GRUB引导器并更新配置

文件系统修好了,还差最后一步:让开机引导器重新识别新的分区状态。

先绑定挂载系统运行时目录:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

Kali虚拟机大小调整后无法启动怎么办,扩容后无法启动怎么办

如果之前有独立/boot/efi分区,也需要挂载:

sudo mount /dev/sda1 /mnt/boot/efi

然后进入原系统环境:

sudo chroot /mnt /bin/bash

在chroot环境里,重新安装GRUB到磁盘的首部,注意这里是/dev/sda,不是sda2:

grub-install /dev/sda

对于UEFI启动方式,使用:

grub-install --target=x86_64-efi --efi-directory=/boot/efi

接着重新生成引导配置:

update-grub

如果你的系统里没有update-grub命令,使用:

grub-mkconfig -o /boot/grub/grub.cfg

完成之后,退出chroot环境:

exit

重启虚拟机前,先把Live镜像从虚拟光驱里移除,否则还是会从ISO启动。

第五步:应对“grub rescue>”紧急情况

有时候重启后仍然停在grub rescue>提示符,这说明GRUB安装在主引导记录里,但找不到它的配置文件,不要慌,在救援命令行里可以手动引导。

用ls列出所有磁盘和分区:

grub rescue> ls

输出可能类似(hd0) (hd0,msdos1) (hd0,msdos2),你的根分区是msdos2,那么依次输入:

grub rescue> set root=(hd0,msdos2)
grub rescue> set prefix=(hd0,msdos2)/boot/grub
grub rescue> insmod normal
grub rescue> normal

如果这组命令能进入GRUB菜单,说明只是路径设置问题,进入系统后,再次执行update-grub即可,如果卡在insmod normal这一步,说明GRUB核心模块丢失,只能回到Live环境重装GRUB。

如何避免Kali虚拟机扩容后再踩坑?预防措施与操作禁忌

与其等到出问题才修,不如在扩容前就做好万全准备。

扩充虚拟磁盘前必须做的检查

  • 确认Kali系统的分区类型:是传统MBR还是UEFI+GPT,这两种方式的重装GRUB命令不同。
  • 检查磁盘是否使用了LVM逻辑卷管理,默认安装Kali时如果是LVM,扩容流程要多几步:
    • 先sudo pvresize /dev/sda2扩展物理卷
    • 再sudo lvextend -l +100%FREE /dev/mapper/kali--vg-root扩展逻辑卷
    • 最后resize2fs扩展文件系统
  • 如果使用了LUKS全盘加密,扩容后还需要先扩展加密分区,再在解密映射设备上扩展文件系统,顺序错一步都会导致开机卡死。
  • Kali虚拟机大小调整后无法启动怎么办,扩容后无法启动怎么办

扩容后无痛的启动验证流程

每次调整虚拟磁盘大小后,不要直接断开快照,正确流程是:

  • 关机状态下扩容虚拟机磁盘。
  • 在虚拟机设置里快照一个备份点。
  • 用Live ISO启动一次,在线执行分区和文件系统扩展。
  • 重启移除Live ISO,确认系统正常进入桌面。
  • 更新GRUB配置后再建立新的干净快照。

这样即便出问题,也可以回滚到快照,重新操作。

新手容易忽略的细节

很多人在Windows下用第三方分区工具直接调整Kali虚拟磁盘分区,这种做法极易破坏Linux的引导代码,虚拟磁盘扩容只是“加容量”,没有改变分区内部结构,所以不需要在宿主机里额外修改,直接在Live环境里执行fdisk和resize2fs才是安全路径。

Kali虚拟机大小调整后无法启动常见问题解答

问:Kali虚拟机扩容后显示“error:no such partition”怎么办?

答:先进入Live环境,用fdisk -l确认分区是否还存在,如果分区列表显示完整,挂载根分区后执行grub-install和update-grub;如果分区消失了,用testdisk扫描并恢复分区表,注意保持起始扇区不变,否则数据可能丢失。

问:扩容后能进GRUB菜单,但选择系统后卡在黑屏,是什么原因?

答:多数情况下是因为文件系统没有真正扩容,或者内核参数中的root=UUID与磁盘实际UUID不匹配,在Live环境里lsblk -f查看UUID,修改/etc/fstab和/boot/grub/grub.cfg,如果依然黑屏,可以在启动项按e编辑内核命令行,删除quiet并添加nomodeset,排除显卡驱动问题。

问:在VirtualBox里调整磁盘大小后,Kali识别不到新增空间,怎么解决?

答:新空间只是以未分配区域的形式出现在磁盘末尾,Linux不会自动使用它,需要运行fdisk或parted将根分区扩展到该未分配区域,然后resize2fs同步文件系统,如果根分区是LVM,则依次执行pvresize、lvextend、resize2fs,最后重装GRUB,整个过程在Live环境下完成,切勿在开机状态下直接改分区。

归根结底,Kali虚拟机扩容后无法启动,问题核心在于“分区、文件系统、引导器”三者没有保持一致,先备份快照,准备一个Live镜像,按顺序检查分区表、挂载根分区、修复文件系统、重装GRUB,绝大多数情况都能在半小时内救回来。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱