I had Debian squeeze on the 32 bit system I just installed openSUSE 12.1 on. I got through the first boot from the install DVD but failed on rebooting from the hard drive. Debian suqeeze installs GRUB to the MBR.
I used the method given in the first post to repair GRUB.
On trying to boot now I get
GRUB loading, please wait
Error 21
How do I proceed to try and salvage the GRUB bootloader from this point?
Since the thread was open Robin and I saw questions posted to the thread I ask my question there as my question related to that method of repair.
This is my /boo/grub/menu.lst from that machine
# Modified by YaST2. Last modification on Sun Mar 11 22:39:11 PDT 2012
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,1)/boot/message
##YaST - activate
###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 12.1 - 3.1.0-1.2
root (hd0,1)
kernel /boot/vmlinuz-3.1.0-1.2-default root=/dev/disk/by-id/ata-ST3250823AS_3ND1T4AT-part2 nomodeset resume=/dev/disk/by-id/ata-ST3250823AS_3ND1T4AT-part1 splash=silent quiet showopts vga=0x317
initrd /boot/initrd-3.1.0-1.2-default
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 12.1 - 3.1.0-1.2
root (hd0,1)
kernel /boot/vmlinuz-3.1.0-1.2-default root=/dev/disk/by-id/ata-ST3250823AS_3ND1T4AT-part2 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
initrd /boot/initrd-3.1.0-1.2-default
21 : Selected disk does not exist
This error is returned if the device part of a device- or full file name refers to a disk or BIOS device that is not present or not recognized by the BIOS in the system.
This of course is not one of the more normal error codes that we get. Since the device.map file refers to disks by their full name normally, its hard to understand why this might happen. A fdisk -l command from a LiveCD might be helpful to see. You would need to mount the partition not booting from the LiveCD and let us see the /boot/grub/device.map & perhaps the/etc/fstab files for more info.
root@PartedMagic:~# fdisk -l
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00072dcc
Device Boot Start End Blocks Id System
/dev/sda1 1 262 2103296 82 Linux swap
Partition 1 does not end on cylinder boundary.
/dev/sda2 * 262 2873 20972544 83 Linux
/dev/sda3 2873 30402 221121536 83 Linux
According to this the root / is /dev/sda2 so that is not (hd0,1) as referenced in menu.lst that would be (hd0,2) correct?
The method of editing GRUB given at the URL relating to this indicated shows (hd0,1) when you give it the command:
I never tried it on partedMagic, but it should work. It works on all other Linux distros I use (i.e Ubuntu, Mint, Fedora, Gentoo, Mandriva, ArchLinux and Gentoo).
WARNING: /boot/grub/device.map not found.
Displayed BIOS device mapping may be incorrect!
This looks like the source of the problem. I can’t say why this would not be created, but the install in not working for the booting part for some reason. The fdisk -l command seemed OK with sda looking like swap, sdb is / root and sdc is /home with sdb being marked active for booting. So, you need to install openSUSE and end up with a device.map file I would say.
Looks to me like there are two grubs listed though. Looks like the one in the mbr is retained from the Debian install that was on this drive previously perhaps?
So, if that were the case and you only use openSUSE, then install Grub into the MBR. It works with ALL openSUSE configurations and only if a dual boot with Windows is there a chance you needed to do anything different. Without device.map, important files are missing and not created. One would need to reinstall grub at minimum to get things going again and for a new install, I would just try the whole thing over again and set grub to load into the MBR from the Installation Booting Section of openSUSE 12.1.
No. He’s running findgrub from the live CD. There is no device.map in /boot/grub on the live system. You can ignore this warning. If you want to check the device.map on the installed system, you should mount /dev/sda2 (for example in /mnt) and look in /mnt/boot/grub.
No. If it were old Debian Legacy Grub, findgrub would say “(Mandriva/ArchLinux/Debian)”, because they have the same signature. It it were Debian Squeeze’s Grub2, findgrub would identify the boot loader as Grub2 (1.98 or 1.99). You have openSUSE’s Grub stage1 installed in both locations.