救援模式会让服务器通过网络加载并启动一个基于 Debian 的 Live 系统,独立于已安装的操作系统。您可以用它修复无法启动的服务器、重置遗忘的密码或拷出数据。您需要能够访问客户中心,最好还在账户 → SSH 密钥中保存了 SSH 密钥。
启用救援模式
- 在客户中心打开服务器,选择该服务器,然后打开救援模式标签页。
- 您已保存的 SSH 密钥会安装到救援系统中。系统就绪后,该标签页上还会显示一个临时 root 密码:点击一下即可查看;该密码将在 24 小时后删除。
- 点击启动到救援模式:即使已安装的系统已经死机,服务器也会重启进入救援系统。进度会显示在该标签页上。
救援模式将一直保持启用,直到您将服务器切换回从磁盘启动(见本指南末尾)。
登录救援系统
救援系统有自己的 SSH 主机密钥,因此您的 SSH 客户端会警告主机标识已更改。使用单独的 known-hosts 文件可将两个密钥分开保存:
ssh -o UserKnownHostsFile=~/.ssh/known_hosts_rescue root@203.0.113.10
救援系统在内存中运行:您在已挂载磁盘之外所做的任何更改,都会在下次重启后消失。
识别磁盘和阵列
lsblk -o NAME,SIZE,TYPE,FSTYPE,MODEL,SERIAL
cat /proc/mdstat
设备名称可能与已安装系统中的不同,因此请根据容量、型号和序列号识别磁盘。Linux 安装默认使用 mdadm RAID。如果 /proc/mdstat 中尚未列出您的阵列,请先组装阵列:
mdadm --assemble --scan
cat /proc/mdstat
阵列可能会被分配不常见的编号,例如 md126 或 md127,这并无影响。如果您的布局使用了 LVM,请使用 vgchange -ay 激活,并使用 lvs 列出卷。
切勿在现有磁盘上运行
mdadm --create来“修复”阵列。该命令会写入新的元数据,可能会毁掉您的数据。请使用--assemble;如果阵列无法启动,请咨询技术支持。
挂载系统并 chroot 进入
将根文件系统挂载到 /mnt,然后查看其中的 /etc/fstab,确定还需要挂载哪些文件系统。以下设备名称仅为示例:
mount /dev/md1 /mnt
cat /mnt/etc/fstab
mount /dev/md0 /mnt/boot # only if /boot is separate
mount /dev/nvme0n1p1 /mnt/boot/efi # only on UEFI systems
将内核文件系统绑定挂载到已挂载的系统中,然后切换进入该系统。此后,命令的运行效果就如同已安装的系统已正常启动一样:
mount --rbind /dev /mnt/dev && mount --make-rslave /mnt/dev
mount --rbind /sys /mnt/sys && mount --make-rslave /mnt/sys
mount --bind /run /mnt/run
mount -t proc proc /mnt/proc
chroot /mnt /bin/bash
常见修复操作
修复 /etc/fstab
/etc/fstab 中错误的 UUID 或缺失的磁盘会导致启动中断。请将该文件与 blkid 的输出进行对比并加以更正,然后使用 findmnt --verify 检查。对于系统启动时并非必需的磁盘,请添加 nofail 选项。
重新安装引导加载程序
使用 [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS 查看服务器的启动方式。在 Debian 和 Ubuntu 上:
grub-install /dev/nvme0n1 && grub-install /dev/nvme1n1 # BIOS: both disks
grub-install --target=x86_64-efi --efi-directory=/boot/efi # UEFI
update-grub
在 AlmaLinux 和 Rocky Linux 上,运行 grub2-mkconfig -o /boot/grub2/grub.cfg;如果是 BIOS 系统,请先对每块磁盘运行 grub2-install。在安装于 ZFS 上的 Proxmox VE 上,请改为运行 proxmox-boot-tool refresh。
重置密码或恢复 SSH 访问
运行 passwd root 或 passwd alice,或将您的公钥追加到 /root/.ssh/authorized_keys。在 AlmaLinux 和 Rocky Linux 上,还需运行 touch /.autorelabel:这样 SELinux 会在下次启动时为更改过的文件重新打标签,这会多花几分钟时间。否则,登录可能会失败。
ZFS 存储池
安装在 ZFS 镜像上的 Proxmox VE 和 FreeBSD 使用 ZFS 存储池,而非 mdadm。请列出可导入的存储池,然后将您的存储池导入到 /mnt 下:
zpool import
zpool import -f -R /mnt rpool
Proxmox VE 通常将其存储池命名为 rpool;FreeBSD 安装程序使用 zroot。重启之前,请使用 zpool export rpool 导出存储池,否则已安装的系统可能会拒绝导入它。FreeBSD 存储池可能使用了救援系统的 ZFS 不支持的特性。遇到这种情况,或者 zpool 不可用时,请通过控制台启动您系统的安装 ISO,并使用其 Live Shell。
恢复从磁盘启动
exit # leave the chroot
umount -R /mnt
- 在救援模式标签页中,点击从磁盘启动。
- 重启服务器,例如在救援 shell 中运行
reboot。 - 在控制台标签页中观察启动过程。如果仍然中断,屏幕会显示中断的位置,由此可知下一步需要修复什么。



