Fedora
如何在 2022 年從 Fedora 中執行/安裝的核心手動重新生成救援核心?
在網際網路上我只發現了這個:
/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。
救援核心使用通用的 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)"