我有一个 Centos 7 系统,运行在 OVH 的服务器上,从硬盘启动。我进行了内核更新,并在看起来一切顺利后匆忙重新启动。
事实并非如此。不仅旧内核被删除,当前内核 (4.9.185-xxxx-std-ipv6-64) 也没有 initramfs。启动时,grub 会查找旧的、不存在的内核(有 initramfs 4.9.184,但没有内核),并且系统将无法启动。
Grub 确实可以看到文件系统,包括根 (md/md2)
系统在 LVM 下运行 raid 阵列。我尝试使用 OVH 恢复内核启动、安装驱动器、chroot 并使用以下命令构建新的 initramfs
dracut --mdadmconf --lvmconf --kver 4.9.185-xxxx-std-ipv6-64
然后我启动,进入 grub 并执行这些命令:
set root=(md/md2)
linux /boot/vmlinuz-4.9.185-xxxx-std-ipv6-64 root=/dev/md2
initrd /boot/initramfs-4.9.185-xxxx-std-ipv6-64
boot
我还尝试使用卷的 UUID 作为根参数 (root=UUID=...)
在这两种情况下,引导过程都会进入最小系统,但无法找到 dev/md2,dracut 只是永远等待。
我通过切换到 OVH netboot 选项使系统再次可用,这让我
Linux {服务器名称} 4.9.182-xxxx-std-ipv6-64 #768030 SMP 六月 18 日星期二 08:30:59 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
现在有什么方法可以为 4.9.185 内核构建 initramfs,或者基本上任何其他方法可以让我回到可以从磁盘启动的状态?
此时,我在这台计算机上的十几个不同帐户下拥有超过 1TB 的备份,因此,如果我无法就地重建,这将是一个重要的 PITA。我必须卸载数据,重建数据,然后将数据带回来......然后编写一个白痴脚本,该脚本不会让我在崩溃的环境中重新启动。