Chceme znovu vygenerovat initramfs a vmlinuz pro Rescue Kernel v našem systému CentOS/RHEL 7. Jak to lze provést pomocí aktuálního jádra, ze kterého se systém spouští?
Během procesu zavádění, když se načte obraz jádra a obraz initramfs, spustí initramfs první proces v systému, který je systemd s ID procesu 1. Tento proces systemd dále přebírá řízení v závěrečných fázích zavádění systému a provádí následující operace:
- Načte konfigurační soubory z /etc/systemd/ adresář
- Čte soubory propojené pomocí /etc/systemd/system/default.target
- Spustí /etc/rc.local soubor
Postupujte podle kroků níže a znovu vygenerujte initramfs a vmlinuz pro Rescue Kernel z aktuálního jádra.
1. Zkontrolujte existující soubory pro záchranné jádro:
# cd /boot # ll | grep rescue -rw-------. 1 root root 72166662 Apr 6 21:37 initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img <<----Apr 6 -rwxr-xr-x. 1 root root 5925632 Apr 6 21:37 vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435 <<----Apr 6
2. Přesuňte existující soubory do jiného adresáře (například „/tmp“):
# mv initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img /tmp/initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img.bk # mv vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435 /tmp/vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435.bk
Ověřte, že v adresáři /boot:
nejsou žádné soubory pro záchranné jádro# ll | grep rescue #
3. Regenerujte nové initramfs &vmlinuz pro záchranné jádro s aktuálním jádrem.
# /etc/kernel/postinst.d/51-dracut-rescue-postinst.sh $(uname -r) /boot/vmlinuz-$(uname -r)
Ověřit
Po dokončení výše uvedeného příkazu by se dva nové soubory pro záchranné jádro měly zobrazit takto:
# ll | grep rescue -rw-------. 1 root root 72164785 May 4 00:18 initramfs-0-rescue-a0eaa652c599455aa125077a4167f435.img <<----May 4 -rwxr-xr-x. 1 root root 5925632 May 4 00:18 vmlinuz-0-rescue-a0eaa652c599455aa125077a4167f435 <<----May 4