救援磁盘:系统无法启动时
如何将机器启动到 SystemRescue、挂载其磁盘、修复 fstab、引导加载程序或忘记的密码,并恢复正常启动。
更新于 2026年8月23日
如果修改配置、更新内核或磁盘写满后,机器无法通过 SSH 响应,您就无法从系统内部进行修复。针对这些情况,控制面板提供了带有 SystemRescue 恢复盘的启动模式——这是一个在内存中运行的独立系统,从中您的机器磁盘会显示为普通存储设备。
如何进入
- 打开
/hosting/vds/m/<id>,即“访问”选项卡。 - 在启动模式区块中,选择 SystemRescue 恢复盘。
- 重启机器并打开“控制台”选项卡。
您以 root 身份登录 SystemRescue,无需密码。那里无法使用 SSH 访问,因此请通过控制台操作。请选择“Screen”视图(VNC):窗口大小不会通过串行线路传递,那里始终是 80×24,全屏工具会渲染异常。
机器磁盘显示为 /dev/sda,其分区显示为 /dev/sda1、/dev/sda2 等。
挂载系统并进行修复
lsblk -f
mount /dev/sda1 /mnt
ls /mnt
如果您选错了分区,请运行 umount /mnt 并尝试下一个。您可以通过 etc、var 和 usr 目录来识别根分区。
接下来是典型任务:
nano /mnt/etc/fstab
nano /mnt/etc/ssh/sshd_config
du -xh /mnt --max-depth=2 | sort -h | tail -20
journalctl -D /mnt/var/log/journal -b -1 -p err
要“进入”系统内部——重置密码、重新安装软件包、重建引导加载程序——请通过 chroot 进入:
mount /dev/sda1 /mnt
for d in dev proc sys run; do mount --bind /$d /mnt/$d; done
chroot /mnt /bin/bash
passwd root
exit
退出后,卸载所有内容:umount -R /mnt。
常见原因及处理方法
| 症状 | 原因 | 操作 |
|---|---|---|
| 启动时卡在等待某个分区 | /etc/fstab 中有拼写错误,UUID 不存在 | 注释掉该行或添加 nofail |
| 服务崩溃,没有剩余空间 | 日志或镜像占满了磁盘 | 通过 /mnt 清理 /var/log 和 /var/lib/docker |
| 机器能启动,但 SSH 无响应 | sshd_config 中有错误,或防火墙把自己锁在了外面 | 编辑配置,重置规则——ufw |
| 忘记 root 密码 | — | 在 chroot 中执行 passwd,或在“访问”选项卡中设置新密码 |
返回正常模式
将启动模式切换回正常模式并重启机器。否则它会再次进入 SystemRescue,您会以为修复没有生效。
在恢复模式下所做的工作不会被保存:SystemRescue 运行在内存中。您在
/mnt之外所做的任何更改都会在重启后消失。
如果您无法恢复系统,“访问”选项卡中有重装选项,可以选择操作系统。它会完全清除磁盘,因此请先从 SystemRescue 中复制出您需要的文件——例如通过 scp 或 rsync 传输到另一台机器。