机器无法启动
VPS 重启后无法启动时该怎么办:如何查看启动画面、分析常见原因,以及从恢复盘修复系统。
更新于 2026年8月23日
机器重启后无法通过 SSH 响应,并不一定是磁盘故障。大多数情况下,系统停在了某一步,正等着您:/etc/fstab 写错了、引导程序配置损坏,或者更新失败后的内核。
先看屏幕
在控制面板 /hosting/vds/m/<id> 中打开“控制台”标签页。有两种类型可用:
- 文本控制台(串口)——方便阅读和复制内核消息,但始终是 80×24;
- “屏幕”(VNC)——显示的内容与显示器相同:GRUB 菜单、全屏消息以及 Windows 画面。
在“屏幕”上,您可以准确看到停在了哪里。然后根据提示信息继续处理。
常见原因
Cannot open access to console, the root account is locked 或 Give root password for maintenance。 系统进入了紧急模式,通常是因为 /etc/fstab。输入 root 密码(在“访问”标签页中),然后删除有问题的行。预防措施:对于系统没有也能正常运行的挂载点,请指定 nofail 选项。
长时间显示 A start job is running for ...,持续一分半钟。 某个服务或挂载点正在等待超时。等它结束,然后查看上一次启动的日志:journalctl -b -1 -p err。
出现 GRUB 菜单和 grub> 提示符。 引导程序找不到自己的配置。可以从恢复磁盘修复。
选择内核后立即发生内核恐慌。 通常发生在内核更新之后。在 GRUB 菜单中选择“高级选项”,从上一个版本启动,然后回滚该软件包。
Windows:“正在撤销更改,请不要关闭计算机”循环出现。 更新回滚正在进行,可能需要半小时甚至更久。不要关闭机器,通过“屏幕”观察它。
恢复磁盘
一个通用的工具是 SystemRescue 启动模式:“访问”标签页 → 启动模式 → 恢复磁盘,然后重启。机器从镜像启动,root 无需密码即可登录,您的磁盘显示为 /dev/sda。
检查并挂载:
lsblk
fsck -f /dev/sda1 # only on an unmounted partition
mount /dev/sda1 /mnt
ls /mnt
直接在 /mnt 中编辑文件,例如 nano /mnt/etc/fstab。
对于需要系统工作环境才能完成的操作(重装内核、更新 GRUB),进入 chroot:
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash
grub-install /dev/sda && update-grub # Debian, Ubuntu
grub2-install /dev/sda && grub2-mkconfig -o /boot/grub2/grub.cfg # AlmaLinux
exit
然后在“访问”标签页中恢复正常的启动模式,并重启机器。忘记把模式切换回来是最常见的错误:机器会一次又一次地启动进入 SystemRescue。
保存数据并重新开始
如果系统无法修复,请在重装前复制数据。从恢复磁盘:
mount /dev/sda1 /mnt
tar czf - /mnt/var/www /mnt/etc | ssh user@other-server 'cat > vds-rescue.tar.gz'
之后,在“访问”标签页中重装系统,选择所需的版本。重装会完全擦除磁盘,而我们没有状态快照或自动备份,所以顺序正是这样:先复制,再重装。
避免再次发生
- 在编辑
fstab、GRUB 和网络设置之前,检查语法:findmnt --verify、grub-script-check。 - 内核更新后,不要删除上一个内核——它会作为备用选项保留在菜单中。
- 将配置和数据的副本与机器分开保存。
- 定期测试重启,而不是在紧急情况下才测试:一台六个月没重启过的机器会给您“惊喜”。
如果屏幕一片空白,控制台没有任何输出,“概览”中的图表也不更新,请带上机器编号联系支持——问题可能出在您的系统之外。