在互联网上我只找到了这个:
/etc/kernel/postinst.d/51-dracut-rescue-postinst.sh $(uname -r) /boot/vmlinuz-$(uname -r)
但它在Fedora 36和即将发布的37版本中不起作用,因为这个文件丢失了,实际上整个/etc/kernel/postinst.d/
目录都是空的。
我也发现了
dnf reinstall kernel-core
但它仅适用于最新的内核。我正在运行的内核在存储库中不再可用。此外,这本身并不是一个好的选择,因为它会导致无缘无故地重新安装数百个文件。
grep -r rescue /etc
什么也没找到。
# grep -r rescue /usr/bin
grep: /usr/bin/tdbdump: binary file matches
grep: /usr/bin/ctags: binary file matches
grep: /usr/bin/systemctl: binary file matches
grep: /usr/bin/systemd-analyze: binary file matches
grep: /usr/bin/efisecdb: binary file matches
grep: /usr/bin/dpkg: binary file matches
grep: /usr/bin/grub2-mkrescue: binary file matches
/usr/share
包含大量匹配项,但我不知道如何使用它。
kernel-core
软件包kernel-modules
中的 RPM 脚本可以执行某些操作,但没有任何特定于“救援”的内容。看起来这一切都是作为一个操作完成的,但我不想重新生成 initrd。
答案1
救援内核使用通用 initramfs,因此您必须重新生成它。 (比较 initramfses 的大小以查看其影响。)
要使用当前运行的内核创建新的救援内核,请在 Fedora 36 上运行
sudo rm /boot/*rescue*
sudo /usr/lib/kernel/install.d/51-dracut-rescue.install add "$(uname -r)" /boot "/boot/vmlinuz-$(uname -r)"