我有一个非常具体和奇怪的问题,需要及时解决。昨天,我的服务器遇到了内核崩溃,查看服务器管理日志,显然是停电了,UPS 因维护而停止服务,启动到默认内核:
cannot open "scripts/zfs" no such file or directory kernel panic "not syncing attempted to kill init"
我能够从 grub 中的恢复模式启动到以前的内核,然后在检查系统日志后,我删除了导致问题的故障虚拟网卡,因此我删除了 ovswitch,执行了 apt 更新并修复了损坏的软件包并安装了新的可用内核。重启后,我仍然出现内核恐慌,而且由于我更新了 grub 并安装了新内核,以前运行的内核不再可用,所以我无法再启动系统。
重新安装系统是不可能的,所以我需要帮助来修复内核。
这是我到目前为止尝试过的我启动了一个实时操作系统,导入了 zfs 池,我可以看到池已挂载新目录出现在实时系统的根目录中,使用“zfs list”命令我可以看到 zfs 池的根目录已挂载到 / 但是当我 cd 到该目录时我无法读取数据它是空的我执行了“zpool import rpool”然后出现了 2 个目录 rpool/DATA 和 rpool/ROOT/pve-1 但它们都是空的。使用 lsblk 我可以看到大多数客户虚拟机分区但看不到主系统的分区。此外,在导入 zfs 池后,我执行了“mdadm --assemble --scan”出现了两个额外的分区,我不知道它们是什么(我在导入 zfs 后组装 raid 阵列的原因是因为在导入 rpool 之前 mdadm 无法识别任何 raid 阵列)
我认为我需要 chroot 到具有实时操作系统的存储并修复 zfs 脚本
值得一提的是,我在宽容模式下使用了 selinux,我相信这正是导致问题的原因。
全新安装将是我的最后选择。
所以,重建之前我应该尝试什么吗?
如果我必须重建,有人可以指导我迁移数据吗?
系统配置:软件 RAID 5 文件系统 ZFS 存储:rpool zfs / rpool。