linux - remove deleted OSs from grub 1.98 boot menu
2013-10
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.
remove file /etc/grub.d/30_otheros
then run sudo /usr/sbin/update-grub
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.
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
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.
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