linux - remove deleted OSs from grub 1.98 boot menu

16
2013-10
  • richard

    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.

  • Answers
  • richard

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


  • Related Question

    memory - How To Boot with "mem=1024m" Argument using GRUB - Ubuntu 10.04
  • nicorellius

    I am still working on this question. This new one is a different question so I thought it would be good to post a new question. Is this the proper protocol or should I have just edited the other question?

    I'm running Ubuntu 10.04 with the kernel 2.6.32-22-generic on a Toshiba Satellite laptop. When I enter the GRUB menu (I have Ubuntu 9.10 installed as well), I can choose which kernel to boot. I use scroll down to the one I want and press "e" and I expect to be able to enter mem=1024m and force the kernel to use this much memory. But when I run cat /proc/meminfo or look in the process manager after booting wth this argument I still see all the RAM: ~2 GB.

    Am I using this boot argument incorrectly? The boot configuration (before I add anything) looks like this:

    insmod ext2
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set 10270f21-1c42-494b-bd3f-813c23f6d\
    518
    linux /boot/vmlinuz-2.6.32-22-generic root=UUID=10270f21-1c42-494b-b\
    d3f-813c23f6d518 ro quiet splash
    initrd /boot/initrd.img-2.6.32-22-generic

    The way I did this was that I added the mem=1024m after the last line and pressed Ctrl+x (Emacs save and boot the kernel) and the system booted.

    I tried adding mem=1024m to the end and the beginning of this list and it appeared to not change the RAM allocation.


  • Related Answers
  • quack quixote

    With Ubuntu and Debian-based installations that use Grub2, you shouldn't edit /boot/grub/grub.cfg directly. That file is configured by running the update-grub command, which happens automatically at various times (like when installing new kernel images).

    Instead, you need to add kernel commandline options to the GRUB_CMDLINE_LINUX or GRUB_CMDLINE_LINUX_DEFAULT variables in /etc/default/grub:

    # these options don't get added to recovery boot entry
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    
    # these options get added to both standard and recovery boot entries
    GRUB_CMDLINE_LINUX="var1 var2 mem=1024m"
    

    Once you've finished editing, don't forget to generate a fresh Grub menu with the changes:

    sudo update-grub
    
  • nicorellius

    Apparently, the paramters go after the linux line:

    linux /boot/vmlinuz-2.6.32-22-generic root=UUID=10270f21-1c42-494b-b\ d3f-813c23f6d518 ro quiet splash

    So the new boot parameter line would be:

    linux /boot/vmlinuz-2.6.32-22-generic root=UUID=10270f21-1c42-494b-b\ d3f-813c23f6d518 ro quiet splash mem=1024m

    EDIT - I just looked over at Stack Overflow and found this post. I apologize for answering my own question. I usually ask a question when I get stumped and then keep on working on it, so sometimes I figure it out before SU does. I do not intend to do this for reputation. It just happens sometimes.

  • 8088

    Shouldn't it be either:

    mem=1024M
    

    (note the capital M? Or doesn't it matter?)

    or:

    mem=1024mb
    

    Just curious as I stumbled upon this post while researching ways to control the memory.

    I've been using mem=1024mb, and adding the following to /etc/default/grub:

    GRUB_CMDLINE_LINUX="mem=1024mb"
    

    Then run:

    update-grub