Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to remove entries for deleted operating systems, from grub 1.98 menu.

I am using Gnu/Linux Debian 6 ( grub version 1.98+20100804-14+squeeze1 ).

I have an Ubuntu partition with 10 kernel images, and another OS that can not be named; Both these partitions have been deleted, but there entries are still in the boot menu.

I have tried sudo /usr/sbin/update-grub the output looked good,

#$sudo /usr/sbin/update-grub 
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
Found linux image: /boot/vmlinuz-2.6.32-5-486
Found initrd image: /boot/initrd.img-2.6.32-5-486
done

but nothing changed.

I then ran

sudo /usr/sbin/grub-mkconfig  2>&1 | less 

to see what it did

*Generating grub.cfg ...*
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by 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 load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set 456affde-b026-49a3-9682-2338da0e8271
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set 456affde-b026-49a3-9682-2338da0e8271
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set 456affde-b026-49a3-9682-2338da0e8271
*Found background image: /usr/share/images/desktop-base/desktop-grub.png*
insmod png
if background_image /usr/share/images/desktop-base/spacefun-grub.png; then
  set color_normal=light-gray/black
  set color_highlight=white/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
*Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686*
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set 456affde-b026-49a3-9682-2338da0e8271
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux   /boot/vmlinuz-2.6.32-5-686 root=UUID=456affde-b026-49a3-9682-2338da0e8271 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-2.6.32-5-686
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set 456affde-b026-49a3-9682-2338da0e8271
    echo    'Loading Linux 2.6.32-5-686 ...'
    linux   /boot/vmlinuz-2.6.32-5-686 root=UUID=456affde-b026-49a3-9682-2338da0e8271 ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-2.6.32-5-686
}
*Found linux image: /boot/vmlinuz-2.6.32-5-486
Found initrd image: /boot/initrd.img-2.6.32-5-486*
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-486' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set 456affde-b026-49a3-9682-2338da0e8271
    echo    'Loading Linux 2.6.32-5-486 ...'
    linux   /boot/vmlinuz-2.6.32-5-486 root=UUID=456affde-b026-49a3-9682-2338da0e8271 ro  quiet
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-2.6.32-5-486
}
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-486 (recovery mode)' --class debian --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos5)'
    search --no-floppy --fs-uuid --set 456affde-b026-49a3-9682-2338da0e8271
    echo    'Loading Linux 2.6.32-5-486 ...'
    linux   /boot/vmlinuz-2.6.32-5-486 root=UUID=456affde-b026-49a3-9682-2338da0e8271 ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-2.6.32-5-486
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_otheros ###

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
menuentry "Windows Vista (loader)" {
    set root=(hd0,msdos1)
    search --no-floppy --fs-uuid --set eaee-eb49
    chainloader +1
}

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda2
menuentry "Windows Vista (loader)" {
    set root=(hd0,msdos2)
    search --no-floppy --fs-uuid --set 6030999e30997c2a
    chainloader +1
}

# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-28-generic (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-28-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro quiet splash 
    initrd /boot/initrd.img-2.6.32-28-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-28-generic (recovery mode) (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-28-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro single 
    initrd /boot/initrd.img-2.6.32-28-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-27-generic (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-27-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro quiet splash 
    initrd /boot/initrd.img-2.6.32-27-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-27-generic (recovery mode) (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-27-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro single 
    initrd /boot/initrd.img-2.6.32-27-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-26-generic (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-26-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro quiet splash 
    initrd /boot/initrd.img-2.6.32-26-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-26-generic (recovery mode) (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-26-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro single 
    initrd /boot/initrd.img-2.6.32-26-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-25-generic (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-25-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro quiet splash 
    initrd /boot/initrd.img-2.6.32-25-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.32-25-generic (recovery mode) (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.32-25-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro single 
    initrd /boot/initrd.img-2.6.32-25-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.31-14-generic (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.31-14-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro quiet splash 
    initrd /boot/initrd.img-2.6.31-14-generic
}


# This entry automatically added by the Debian installer for an existing
# linux installation on /dev/sda9.
menuentry "Ubuntu, with Linux 2.6.31-14-generic (recovery mode) (on /dev/sda9)" {
    set root=(hd0,msdos9)
    search --no-floppy --fs-uuid --set e4bcaf13-21fb-4aab-b9ad-91d01637d78f
    linux /boot/vmlinuz-2.6.31-14-generic root=UUID=e4bcaf13-21fb-4aab-b9ad-91d01637d78f ro single 
    initrd /boot/initrd.img-2.6.31-14-generic
}

### END /etc/grub.d/30_otheros ###

### 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 ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
*done*

From this I can see the messages in stderr detecting the debian kernels but somewhere it is remembering the other OSs.

share|improve this question
    
looked it /etc/grub.d and found 30_os-prober and 30_otheros. This second file has all the unwanted stuff, so have removed it. Will now try again. – richard May 11 '12 at 15:59
    
removing /etc/grub.d/30_otheros worked. It is amazing how explaining a problem to someone else can help one solve it ones self. Thank you. – richard May 11 '12 at 16:07
    
You are encouraged to post such a solution as an answer to your own question and accept it. If not else so other people can see that the question is answered. – Daniel Andersson May 11 '12 at 16:08
    
And yes, formulating problems clearly is an immensely powerful error searching tool. This is one of the founding principles of the StackExchange network, actually: to encourage clear problem descriptions, so much that people will never have to ask anyone anything again! ;-) – Daniel Andersson May 11 '12 at 16:10
up vote 1 down vote accepted

remove file /etc/grub.d/30_otheros then run sudo /usr/sbin/update-grub

share|improve this answer

You must log in to answer this question.

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