Hello!
My hard drive is partitioned as follows:
/dev/sda1 - GRUB (where I keep my GRUB files)
/dev/sda2 - WINDOWS 7
/dev/sda3 - DATA
/dev/sda4 - EXTENDED
/dev/sda5 - SWAP
/dev/sda6 - LUBUNTU
/dev/sda7 - ARCH
/dev/sda8 - SPARE
I've been having this partition structure for a long time now. I had the GRUB Legacy bootloader installed on the MBR with the stage 2 (or 1.5 or whatever) residing in the 'dedicated' GRUB partition. This way, the bootloader was totally independent and I was able to delete any Linux installation without affecting the others.
Recently, after reading a post by a user called Herman, I learned that this was possible with GRUB 2 also. I did the following.
1. I installed Ubuntu 11.10 on my 'SPARE'(/dev/sda8 ) partition.
2. I logged into the new Ubuntu installation.
3. I created a folder for mounting my GRUB partition.
sudo mkdir /media/GRUBpartition
4. I mounted my GRUB partition onto that mount point.
sudo mount /dev/sda1 -t ext4 /media/GRUBpartition
5. I installed GRUB2 following the command in Herman's post.
sudo grub-install --root-directory=/media/GRUBpartition /dev/sda
6. I relaxed permissions on the GRUB files for easier editing.
sudo chmod 777 -R /media/GRUBpartition
7. I generated the grub.cfg file.
sudo grub-mkconfig -o /media/GRUBpartition/boot/grub/grub.cfg
After doing the above steps, I rebooted. The computer booted fine with the menu list showing in white characters on a magenta background. I only tried booting into my Windows and the new Ubuntu 11.10 OS's and they both booted fine.
Now, I wanted to know if the GRUB files were totally independent of the new Ubuntu 11.10 installation. That was the whole point. I reformatted the Ubuntu 11.10 root partition (I had no separate partitions for home or boot). I rebooted.
This time I was greeted with error messages which flashed before the menu list showed up. But, this time the menu list was white characters on black background with larger fonts than before. I only tried booting into Windows and Windows booted fine.
The error messages which flashed before the GRUB menu showed up read the following:
My grub.cfg file is as follows
What do I make of the above error messages? How can I correct them? Did I do something wrong while following Herman's method?
Thanks.
My hard drive is partitioned as follows:
/dev/sda1 - GRUB (where I keep my GRUB files)
/dev/sda2 - WINDOWS 7
/dev/sda3 - DATA
/dev/sda4 - EXTENDED
/dev/sda5 - SWAP
/dev/sda6 - LUBUNTU
/dev/sda7 - ARCH
/dev/sda8 - SPARE
I've been having this partition structure for a long time now. I had the GRUB Legacy bootloader installed on the MBR with the stage 2 (or 1.5 or whatever) residing in the 'dedicated' GRUB partition. This way, the bootloader was totally independent and I was able to delete any Linux installation without affecting the others.
Recently, after reading a post by a user called Herman, I learned that this was possible with GRUB 2 also. I did the following.
1. I installed Ubuntu 11.10 on my 'SPARE'(/dev/sda8 ) partition.
2. I logged into the new Ubuntu installation.
3. I created a folder for mounting my GRUB partition.
sudo mkdir /media/GRUBpartition
4. I mounted my GRUB partition onto that mount point.
sudo mount /dev/sda1 -t ext4 /media/GRUBpartition
5. I installed GRUB2 following the command in Herman's post.
sudo grub-install --root-directory=/media/GRUBpartition /dev/sda
6. I relaxed permissions on the GRUB files for easier editing.
sudo chmod 777 -R /media/GRUBpartition
7. I generated the grub.cfg file.
sudo grub-mkconfig -o /media/GRUBpartition/boot/grub/grub.cfg
After doing the above steps, I rebooted. The computer booted fine with the menu list showing in white characters on a magenta background. I only tried booting into my Windows and the new Ubuntu 11.10 OS's and they both booted fine.
Now, I wanted to know if the GRUB files were totally independent of the new Ubuntu 11.10 installation. That was the whole point. I reformatted the Ubuntu 11.10 root partition (I had no separate partitions for home or boot). I rebooted.
This time I was greeted with error messages which flashed before the menu list showed up. But, this time the menu list was white characters on black background with larger fonts than before. I only tried booting into Windows and Windows booted fine.
The error messages which flashed before the GRUB menu showed up read the following:
Code:
error: no such device: 68d95051-60d3-4d3b-83da-2a2cfcbee14b
error: file not found
error: no suitable mode found
error: no video mode activated
My grub.cfg file is as follows
Code:
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
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root 68d95051-60d3-4d3b-83da-2a2cfcbee14b
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root 68d95051-60d3-4d3b-83da-2a2cfcbee14b
set locale_dir=($root)/boot/grub/locale
set lang=en_IN
insmod gettext
fi
terminal_output gfxterm
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
if background_color 44,0,30; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root 68d95051-60d3-4d3b-83da-2a2cfcbee14b
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=68d95051-60d3-4d3b-83da-2a2cfcbee14b ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-12-generic
}
menuentry 'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root 68d95051-60d3-4d3b-83da-2a2cfcbee14b
echo 'Loading Linux 3.0.0-12-generic ...'
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=68d95051-60d3-4d3b-83da-2a2cfcbee14b ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.0.0-12-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root 68d95051-60d3-4d3b-83da-2a2cfcbee14b
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root 68d95051-60d3-4d3b-83da-2a2cfcbee14b
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/sda2)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root 0D9CAB5E0372A8B0
chainloader +1
}
menuentry "Ubuntu, with Linux 3.0.0-16-generic (on /dev/sda6)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 74965cc2-9fb2-4a0f-9edf-9bde9472fb0a
linux /boot/vmlinuz-3.0.0-16-generic root=UUID=74965cc2-9fb2-4a0f-9edf-9bde9472fb0a ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-16-generic
}
menuentry "Ubuntu, with Linux 3.0.0-16-generic (recovery mode) (on /dev/sda6)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 74965cc2-9fb2-4a0f-9edf-9bde9472fb0a
linux /boot/vmlinuz-3.0.0-16-generic root=UUID=74965cc2-9fb2-4a0f-9edf-9bde9472fb0a ro recovery nomodeset
initrd /boot/initrd.img-3.0.0-16-generic
}
menuentry "Ubuntu, with Linux 3.0.0-12-generic (on /dev/sda6)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 74965cc2-9fb2-4a0f-9edf-9bde9472fb0a
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=74965cc2-9fb2-4a0f-9edf-9bde9472fb0a ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-12-generic
}
menuentry "Ubuntu, with Linux 3.0.0-12-generic (recovery mode) (on /dev/sda6)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 74965cc2-9fb2-4a0f-9edf-9bde9472fb0a
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=74965cc2-9fb2-4a0f-9edf-9bde9472fb0a ro recovery nomodeset
initrd /boot/initrd.img-3.0.0-12-generic
}
menuentry "Arch (on /dev/sda7)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root e05b18c4-e84b-4a50-8a3c-ba2f7028857d
linux /boot/vmlinuz-linux root=/dev/sda7
initrd /boot/initramfs-linux.img
}
### 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 ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
What do I make of the above error messages? How can I correct them? Did I do something wrong while following Herman's method?
Thanks.