内核崩溃:kernel panic 及后续处理
当机器无法启动、屏幕上停住一条内核消息时该怎么办:记录错误文本、回滚内核,并从恢复盘修复 fstab。
更新于 2026年8月23日
内核恐慌是指内核已停止运行且无法继续的状态。此时机器不会通过 SSH 或网络响应,但仍显示为运行中。排查所需的一切都可以在控制面板中获取:控制台会显示完整画面,救援磁盘则让您能够访问系统文件。
第 1 步:阅读提示信息
打开 /hosting/vds/m/<id>,进入“控制台”标签页,查看“屏幕”视图(VNC)。文本控制台也会显示内核输出,但恐慌信息通常由图形缓冲区绘制,在“屏幕”上查看更可靠。关键不在于第一行,而在于最下方有实际意义的那一行,通常是以下之一:
VFS: Unable to mount root fs on unknown-block(0,0)—— 内核找不到根分区;Kernel panic - not syncing: Attempted to kill init—— 一号进程已终止,最常见的原因是更新失败后/sbin/init损坏;Kernel panic - not syncing: No working init found—— 同样的问题;- 带有堆栈跟踪的驱动错误 —— 通常发生在安装第三方内核模块之后。
请立即拍照或复制文本:重启后屏幕内容会被清空。
第 2 步:尝试上一个内核
如果恐慌是在更新后立即出现的,GRUB 中还有旧内核。从控制面板重启机器,并在“屏幕”上抓住菜单出现的时机:在最初几秒内按 Shift 或 Esc,然后选择“Advanced options”和上一个版本。
使用旧内核启动成功后,锁定可用状态,再处理新软件包:
uname -r
dpkg -l | grep linux-image
apt install --reinstall linux-image-amd64
第 3 步:救援磁盘
如果引导菜单没有出现,或者旧内核同样崩溃,请在“访问”标签页启用“SystemRescue 救援磁盘”启动模式并重启机器。以 root 身份免密码登录;机器磁盘会显示为 /dev/sda。
lsblk
mount /dev/sda1 /mnt
ls /mnt
如果怀疑文件系统损坏,请检查:
umount /mnt
fsck -f /dev/sda1
手动编辑后导致恐慌的典型原因是 /etc/fstab 中的错误:某一行指向不存在的分区或 UUID 不正确,都会导致启动中断。请检查:
blkid /dev/sda1
cat /mnt/etc/fstab
如需在系统内部操作(重装内核、编辑引导程序),请通过 chroot 进入:
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash
完成后,务必在“访问”标签页切回正常启动模式。否则机器每次重启都会进入 SystemRescue,您会以为系统始终无法启动。
第 4 步:何时重装更省事
我们没有自动机器备份或状态快照,因此决定权在您。如果磁盘上有重要数据,请先从 SystemRescue 中通过 scp 复制到您自己的机器,然后再从“访问”标签页开始重装操作系统——重装会完全清空磁盘。
顺序是:复制数据,确认在您这边能读取,然后重装。重装之后无法回头。
如何避免再次发生
请将数据副本保存在机器之外,将内核与其他软件包分开更新,并在更新后立即重启——这样您就能在方便的时间发现问题,而不是一个月后某次意外重启时才发现。如需排查普通服务故障,请参阅服务无法启动:systemd 排查。