Bug ID | 964989 |
---|---|
Summary | /sbin/update-bootloader --refresh just hangs on truncated /boot/grub2/grub.cfg |
Classification | openSUSE |
Product | openSUSE 13.1 |
Version | Final |
Hardware | x86-64 |
OS | openSUSE 13.1 |
Status | NEW |
Severity | Major |
Priority | P5 - None |
Component | Bootloader |
Assignee | jsrain@suse.com |
Reporter | tilman.vogel@web.de |
QA Contact | jsrain@suse.com |
Found By | --- |
Blocker | --- |
Due to an out-of-space issue on a too small /boot partition, a recent kernel update produced a null byte /boot/grub2/grub.cfg file. It however, still had written a /boot/grub2/grub.cfg.new which I then copied to /boot/grub2/grub.cfg . Booting with this worked after I had rebuilt the initrd, even though the submenus did not show in grub2. After that I wanted to run purge_kernels but found out it hanged in update-bootloader. Also the YaST boot-loader module hung at "reading boot loader configuration". Looking at the /boot/grub2/grub.cfg.new, I found that the file indeed was incomplete, probably because of the out-of-space situation. After cp /boot/grub2/grub.cfg.old /boot/grub2/grub.cfg, /sbin/update-bootloader --refresh now works. I recommend checking for EOF when reading /boot/grub2/grub.cfg even when expecting further data. In that case, a hint about /boot/grub2/grub.cfg.old should be given or the option to generate it completely anew.