ActiveProtect 还原完 Linux 起不来了?三种报错对号入座,都能救回来
痛点:备份都在,还原出来的系统却开不了机
用 ActiveProtect 做企业级整机保护的企业,最看重的就是"随时能还原"这件事——物理服务器、虚拟机统一备份到 NAS(从 DS 系列桌面机型到机房里的 RS 机架式都可以承担)。但真做还原演练,有时候会栽在最后一公里:还原过程全部完成,目标机器一开机,黑屏上滚出一串报错,系统起不来。备份明明好好的,怎么还原出来是死的?其实绝大多数不是数据丢了,而是引导环节缺了点东西。按报错形态分三种情况,各有各的救法。
先对号:屏幕上是哪种报错
- 情况一:Debian 或 Ubuntu,启动时报
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(); - 情况二:RHEL、CentOS、Oracle Linux,启动进入 Dracut 紧急 shell,提示
dracut-initqueue: Warning: Could not boot、/dev/mapper/ol-root does not exist之类; - 情况三:使用 LVM 的 CentOS/RHEL 系统,启动进入紧急模式,屏幕上出现一串
[DEPEND] Dependency failed for ...的 systemd 依赖错误。
诊断:为什么还原后会这样
情况一、二的根因相同:备份里带的内核 initramfs 镜像(系统启动早期加载驱动的文件)不包含目标设备所需要的块设备驱动。原机器的控制器或磁盘类型与还原目标不一样,引导阶段找不到根文件系统所在的设备,自然报挂载失败。情况三则是另一回事:还原出来的系统里 LVM 设备文件(/etc/lvm/devices/system.devices)还留着还原之前的旧设备信息,LVM 在启动早期按旧信息找卷找不到,依赖它的挂载全部失败。
分步处置
情况一:Debian / Ubuntu(重建 initramfs)
-
启动机器,在 GRUB 菜单进入"Debian GNU/Linux 高级选项"或"Ubuntu 高级选项";
-
选择名称以
(recovery mode)结尾的内核进入恢复模式; -
Ubuntu 里选 root 并回车;Debian 直接进下一步。提示输入 root 密码就输入,没设密码直接回车;
-
在 root 命令行下重建当前内核的 initramfs:
update-initramfs -u -k $(uname -r) -
重启,系统应能正常进入。
情况二:RHEL / CentOS / Oracle Linux(用救援内核重建)
-
启动机器,在 GRUB 菜单选择救援内核(名称形如
...0-rescue-xxxx 7.8 (Maipo)的条目); -
用图形或命令行界面登录 root 账户;
-
重建 initramfs:
dracut -f /boot/initramfs-$(uname -r).img $(uname -r) -
重启验证。
情况三:LVM 系统进紧急模式(清掉过时的设备文件)
-
启动已还原的系统,进入紧急模式后以 root 登录;
-
删除残留旧信息的 LVM 设备文件:
rm -f /etc/lvm/devices/system.devices -
重启。重启后 LVM 会重新扫描发现块设备,卷恢复正常激活。
注意:以上操作要求系统能进入救援/恢复模式且 /boot 目录正常挂载。如果系统直接进了紧急模式而无法用救援内核,可在 GRUB 菜单按 e 编辑启动项,给内核行追加 systemd.unit=rescue.target,按 Ctrl + x 启动进救援模式后再操作。
验证:别停在"能开机"
系统能进登录界面只是第一关。登录后确认三件事:业务服务是否都起来了(systemctl --failed 看有无失败单元);磁盘与 LVM 卷是否都挂载到位(df -h、lvs);文件抽查几个确认还原数据完整。都正常,这台机器才算真正救回来。
预防:还原演练要提前做,补驱动要养成习惯
- 异构还原(原机与目标机硬件不同)前,就有心理预期可能要重建 initramfs,把本文命令存进运维手册;
- 服务器更换存储控制器或大硬件变动后,主动重建一次 initramfs 再做备份,让备份里的驱动跟得上硬件;
- 每季度做一次还原演练,别等真出事故才第一次试还原——演练暴露的问题都是低成本问题。
整机保护与还原演练的体系化落地,贵州本地企业可以找诚鑫致达科技协助,从方案选型到应急演练一并做扎实。