2

Some weeks ago I configured a dual boot laptop to run Xubuntu 10.4 on the third partition of my disk (i.e. I had to set the installation location manually). Everything was fine until I had installed the bunch of automatic updates (including a new kernel), which were discovered after Wifi was finally working. After rebooting, Grub didn't boot into Xubuntu anymore (which it did several times before), but just showed a prompt. I managed to get the system repaired using a live CD and a good hour of Internet reading.

For some weeks everything was fine, including automatic updates. Yesterday I got a new kernel through automatic updates. And guess what? The laptop refused to boot afterwards.

To me it looks like every kernel update makes my system unbootable. How can I prevent this besides the obvious "Don't install updates"? Is there anything else I should inspect or monitor on that system? Or are my conclusions about the kernel update completely wrong and I should look for something else causing these symptomes?

EDIT: Some more details as asked in the comments: I didn't start Windows between the update and the crash, so for me it seems to be related to Xubuntu only. Grub is Grub2 (version 1.98something). /boot/grub/grub.cfg looks like this:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, mit Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux   /boot/vmlinuz-2.6.32-24-generic root=UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro   quiet splash
    initrd  /boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-24-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    echo    'Linux 2.6.32-24-generic wird geladen …'
    linux   /boot/vmlinuz-2.6.32-24-generic root=UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro single 
    echo    'Initiale Ramdisk wird geladen …'
    initrd  /boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux   /boot/vmlinuz-2.6.32-21-generic root=UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro   quiet splash
    initrd  /boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-21-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    echo    'Linux 2.6.32-21-generic wird geladen …'
    linux   /boot/vmlinuz-2.6.32-21-generic root=UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro single 
    echo    'Initiale Ramdisk wird geladen …'
    initrd  /boot/initrd.img-2.6.32-21-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
    insmod ntfs
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set 883cb1b73cb1a09c
    drivemap -s (hd0) ${root}
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
1
  • 1
    Are you using GRUB2 or GRUB Legacy?. Can you post your grub config files? Sep 2, 2010 at 17:07

3 Answers 3

2

I had this happen on a new Ubuntu 12.10 (desktop) install on a laptop. The system booted fine after the initial install, and then after getting a kernel update (from the initial set of updates), it would go through the GRUB menu, boot the kernel, and then a black screen, with no passphrase prompt.

It seems the problem is related to video. What I've found consistently fixes it, but is less pretty, is to edit /etc/default/grub, and remove the quiet and splash options from GRUB_CMDLINE_LINUX_DEFAULT, and running update-grub. If you already can't boot, then when the GRUB menu comes up, press E to edit your GRUB command line and remove those options, then ctrl-X to boot.

This bug suggests trying plymouth:force-drm as a GRUB boot option, which makes it not use the kernel framebuffer driver. This also seemed to work, except it still didn't use the splash screen, and booted in text mode.

For what it's worth, my laptop has two graphic chipsets: Intel (using the i915 kernel driver) and Nvidia GTX680M (still working on making this work accelerated). It may be the presence of two different graphics devices is making the boot non-deterministic.

1

It grub doesn't boot, it means that either it's configuration is corrupted, or that its code has been overwritten.

There are possible reasons for this:

  • certain windows software overwrites hidden (random) space on your hard drive. They do this for DRM reasons. However, I assume that the issue pops up immediately after upgrading the kernel, and then restarting, so this likely isn't it.

  • you don't have any free space left on your ubuntu partition (or at least the one holding grub). Make sure you do. I'm putting my money on this one, for now.

  • grub auto re-configures itself every time you install a new kernel. Try to reconfigure it manually and see if there is any error output. Run 'sudo update-grub' in a terminal to do this. You'll have to type your password and it should output some stuff.

  • you say it's the third partition of your disk; is it a removable disk? Like an external hard-drive or an internal hard-drive? Because it that case the device numbering may be different from installation time.

1
  • If the system has been installed using (old?) default Ubuntu install, the system will have very small /boot partition that easily gets full. Running sudo apt-get autoremove will free space in /boot. However, you should have received notices or warnings about not having any disk space. If /boot is full, kernel updates will fail. Jun 25, 2018 at 11:42
0

Everytime there is a new kernel added as part of software update, the grub configuration is updated. So the information Javier Rivera requested is very important. The relevant config file is /boot/grub/grub.cfg - in case you don't find it then look for /boot/grub/menu.lst

Also, you can run update-grub and check if you get any errors - pls post the result of that also. If, however, update-grub is successful, then a workaround would be to manually run this everytime your updates include a new kernel.

2
  • update-grub doesn't show any error. Thanks to your explanation of that process. Now if the next kernel update occurs I can make a backup of the config after the kernel update, run update-grub myself and compare both files afterwards. If they differ, I know that the needed automatic grub config update does not work and I always have to do it manually. Sep 5, 2010 at 12:15
  • I already see a significant difference in your grub.cfg. In the linux kernels list (lines 63-100), I don't see intermediate kernel versions between 2.6.32-21 and 2.6.32-24 (i.e.., 2.6.32-22-generic and 2.6.32-23-generic). Any idea why that could have happenned ?
    – koushik
    Sep 6, 2010 at 5:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .