Grub2 and multiple boot different ubuntu versions

NoOp glgxg at sbcglobal.net
Thu Mar 25 01:52:21 UTC 2010


On 03/24/2010 06:25 PM, Goh Lip wrote:
> On 03/25/2010 05:25 AM, Colin Law wrote:
> 
>>
>> Many thanks to all for the suggestions, I have learned a lot from
>> working through them.  I hope you will all not be upset if I decide to
>> wimp out and just live with what I have, editing /etc/default/grub
>> occasionally as required.  I think possibly the possibility of causing
>> myself grief outweighs the benefit.
> 
> 
> Very good point. Precisely; it's not much of a hassle just editing 
> grub.cfg (not even /etc/default/grub and update-grub).

So how would you advise a standard multiboot user to edit 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="7"
> 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,8)'
> search --no-floppy --fs-uuid --set <snipped>
> 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,8)'
> search --no-floppy --fs-uuid --set <snipped>
> set locale_dir=($root)/boot/grub/locale
> set lang=en
> 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, with Linux 2.6.32-17-generic" --class ubuntu --class gnu-linux --class gnu --class os {
> 	recordfail
> 	insmod ext2
> 	set root='(hd0,8)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux	/boot/vmlinuz-2.6.32-17-generic root=UUID=<snipped> ro   quiet splash
> 	initrd	/boot/initrd.img-2.6.32-17-generic
> }
> menuentry "Ubuntu, with Linux 2.6.32-17-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os {
> 	recordfail
> 	insmod ext2
> 	set root='(hd0,8)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	echo	Loading Linux 2.6.32-17-generic ...
> 	linux	/boot/vmlinuz-2.6.32-17-generic root=UUID=<snipped> ro single 
> 	echo	Loading initial ramdisk ...
> 	initrd	/boot/initrd.img-2.6.32-17-generic
> }
> menuentry "Ubuntu, with Linux 2.6.32-16-generic" --class ubuntu --class gnu-linux --class gnu --class os {
> 	recordfail
> 	insmod ext2
> 	set root='(hd0,8)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux	/boot/vmlinuz-2.6.32-16-generic root=UUID=<snipped> ro   quiet splash
> 	initrd	/boot/initrd.img-2.6.32-16-generic
> }
> menuentry "Ubuntu, with Linux 2.6.32-16-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os {
> 	recordfail
> 	insmod ext2
> 	set root='(hd0,8)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	echo	Loading Linux 2.6.32-16-generic ...
> 	linux	/boot/vmlinuz-2.6.32-16-generic root=UUID=<snipped> ro single 
> 	echo	Loading initial ramdisk ...
> 	initrd	/boot/initrd.img-2.6.32-16-generic
> }
> ### END /etc/grub.d/10_linux ###
> 
> ### BEGIN /etc/grub.d/20_memtest86+ ###
> menuentry "Memory test (memtest86+)" {
> 	insmod ext2
> 	set root='(hd0,8)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux16	/boot/memtest86+.bin
> }
> menuentry "Memory test (memtest86+, serial console 115200)" {
> 	insmod ext2
> 	set root='(hd0,8)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux16	/boot/memtest86+.bin console=ttyS0,115200n8
> }
> ### END /etc/grub.d/20_memtest86+ ###
> 
> ### BEGIN /etc/grub.d/30_os-prober ###
> menuentry "Windows 7 (loader) (on /dev/sda1)" {
> 	insmod ntfs
> 	set root='(hd0,1)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	chainloader +1
> }
> menuentry "Ubuntu, Linux 2.6.31-20-generic (on /dev/sda5)" {
> 	insmod ext2
> 	set root='(hd0,5)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.31-20-generic root=UUID=<snipped> ro quiet splash
> 	initrd /boot/initrd.img-2.6.31-20-generic
> }
> menuentry "Ubuntu, Linux 2.6.31-20-generic (recovery mode) (on /dev/sda5)" {
> 	insmod ext2
> 	set root='(hd0,5)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.31-20-generic root=UUID=<snipped> ro single
> 	initrd /boot/initrd.img-2.6.31-20-generic
> }
> menuentry "Ubuntu, Linux 2.6.31-19-generic (on /dev/sda5)" {
> 	insmod ext2
> 	set root='(hd0,5)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.31-19-generic root=UUID=<snipped> ro quiet splash
> 	initrd /boot/initrd.img-2.6.31-19-generic
> }
> menuentry "Ubuntu, Linux 2.6.31-19-generic (recovery mode) (on /dev/sda5)" {
> 	insmod ext2
> 	set root='(hd0,5)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.31-19-generic root=UUID=<snipped>e ro single
> 	initrd /boot/initrd.img-2.6.31-19-generic
> }
> menuentry "Ubuntu, linux 2.6.24-27-generic (on /dev/sda7)" {
> 	insmod ext2
> 	set root='(hd0,7)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.24-27-generic root=UUID=<snipped> ro quiet splash
> 	initrd /boot/initrd.img-2.6.24-27-generic
> }
> menuentry "Ubuntu, linux 2.6.24-27-generic (single-user mode) (on /dev/sda7)" {
> 	insmod ext2
> 	set root='(hd0,7)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.24-27-generic root=UUID=<snipped> ro single
> 	initrd /boot/initrd.img-2.6.24-27-generic
> }
> menuentry "Ubuntu, linux 2.6.24-26-generic (on /dev/sda7)" {
> 	insmod ext2
> 	set root='(hd0,7)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.24-26-generic root=UUID=<snipped> ro quiet splash
> 	initrd /boot/initrd.img-2.6.24-26-generic
> }
> menuentry "Ubuntu, linux 2.6.24-26-generic (single-user mode) (on /dev/sda7)" {
> 	insmod ext2
> 	set root='(hd0,7)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/vmlinuz-2.6.24-26-generic root=UUID=<snipped> ro single
> 	initrd /boot/initrd.img-2.6.24-26-generic
> }
> menuentry "Memory test (memtest86+) (on /dev/sda7)" {
> 	insmod ext2
> 	set root='(hd0,7)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/memtest86+.bin 
> }
> ### 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 ###

to simply edit out the memtest bits? Would I take the chance of deleting a:

> }
> menuentry "Memory test (memtest86+) (on /dev/sda7)" {
> 	insmod ext2
> 	set root='(hd0,7)'
> 	search --no-floppy --fs-uuid --set <snipped>
> 	linux /boot/memtest86+.bin
> }

to see if it works or not?

You see, it will take quite a bit of work to do that, and a single
mistake could bork grub2 in the process. Plus, how do you keep it updated?

While I very much respect your advise & opinions, I seriously doubt that
modifying grub2 is easier than the former menu.lst and/or 'not much of a
hassle'. Note that Tom H had to provide a method simply to eliminate the
Win7 bits (thanks Tom H!) for the Win7 recovery entries.








More information about the ubuntu-users mailing list