The posttrans scripts are not executed when zypper fails or crashes, and rpm does not track script execution status so the scripts are never retried. Possible mitigations: - tell grub scripts that initrd is needed for packaged kernels (eg place a file together with the kernel) and make grub not list kernels that lack initd in menu - instead of creating initrd synchronously set a flag that initrd is to be created and start initrd creation in the background. If the flag is set again the initrd is re-created once finished. In posttrans wait for background creation to finish. background initrd creation with restart already used by kdump service.