GRUB not booting after reboot.

http://www.slhess.com/pictures/grub.jpg
When I went to reboot my main openSUSE 11.4 machine I am greeted with this. I need to recover from this some how.
then video on the monitor dims. It just hangs there. Any ideas on how to recover?

It appears you have booted grub OK, but the menu.lst file was not found. Think like you just booted a DOS like disk OS. I would normally boot from a LiveCD and see if I can mount the openSUSE / partition at all.

Thank You,

Using P-Magic I can mount all the drives see / and enter /boot/grub/menu.lst.

I have a long standing problem that somewhere in the updating system the wrong drive ( one no longer in the machine) gets set as the boot drive ( system uses drive by ID) and this some how may have gotten set wrong again. but I am not even getting a failure message.
I fixed /boot/grub/menu.lst after installing the most recent Kernel update and have rebooted several times. I know that was working recently.
Can you boot from an install DVD any more? I think that was removed in 11.4?

You can boot from all of the LiveCD’s and DVD’s, perhaps you are thinking of the repair function, which did get removed. If I had a bootable DVD, you could use it to reload openSUSE, but to only mount your /home and not formatting it. Or, you could look up how to reinstall Grub I supposed, through stickily speaking, grub is loading. Here is one post to look at here:

http://forums.opensuse.org/english/information-new-users/unreviewed-how-faq/429971-re-install-grub-quickly-parted-magic.html#post2097786

Thank You,

You should fix your device.map (/boot/grub/device.map).

jdmcdaniel3
I used the method to reinstall GRUB at the URL you gave. I had complete success and I posting from that machine I am still nervous as heck as I don’t know what could have caused GRUB to be come corrupted.

please_try_again I’d love to do that but I don’t understand what I should do there?
This is what I have done for now. But I am sure it is wrong. Some of those devices are no longer in this machine.
I just want smooth kernel updates that boot the first time. I retain previous desktop kernels so I am not screwed if one goes badly.


#(hd1)	/dev/disk/by-id/ata-WDC_WD5000AADS-00M2B0_WD-WCAV5R429030
(hd0)	/dev/disk/by-id/ata-WDC_WD5000AADS-00M2B0_WD-WCAV5R429030
#(hd2)	/dev/disk/by-id/ata-WDC_WD5002ABYS-02B1B0_WD-WCASY7880549
#(hd3)	/dev/disk/by-id/ata-WDC_WD5000AAKS-22A7B0_WD-WMASY4550447
#(hd4)	/dev/disk/by-id/ata-ST3250823AS_3ND1T4AT

On 2012-02-25 01:36, jdmcdaniel3 wrote:

>> Can you boot from an install DVD any more? I think that was removed in
>> 11.4?
>
> You can boot from all of the LiveCD’s and DVD’s, perhaps you are
> thinking of the repair function, which did get removed.

The automatic repair functionality was removed, but he is referring to
another lost feature: boot installed system from the install DVD, even if
there is no grub at all in the installed system.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Yes Robin that was what I was looking for. Fortunately re-installing Grub worked I was sweating bullets even though I have recent backups. updating to 12.1 isn’t for me at this point. LOL my heart is weak :stuck_out_tongue:

So, it looks like only one device (hd0) is being used as the rest is commented out and further, as I understand it, the device.map file was created on the install and not normally used later except by some utilities. It seems you kind of need to make sure it is right, before you begin your installation, but not sure how its used now after your grub fix. Of course you can edit the file as root and I normally make sure the boot drive is called hd0, while the rest is just listed in normal hardware order. The boot drive and first hard drive can be the same, but not if you selected a different drive to boot from in your BIOS setup. You can determine the disk by id when looking at the same drive in the YaST Partitioner if you like and in general, the device.map file should contain all hard drives, internal or external (like USB or eSATA).

Thank You,

Post the ouptut of findgrub -M. Then you can write a device.map according to its result.

On 2012-02-25 00:56, FlameBait wrote:

> I have a long standing problem that somewhere in the updating system
> the wrong drive ( one no longer in the machine) gets set as the boot
> drive ( system uses drive by ID) and this some how may have gotten set
> wrong again. but I am not even getting a failure message.

Guess: review “/etc/grub.conf” and “/boot/grub/device.map”.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

I hashed out all the other drives in when I was root in Pmagic as I wanted no confusion

Yes my understanding is this file is created when you do the first install. I have updated via DVD and via zypper since then.
I am just uneasy about getting the right labels and IDs right.

That isn’t working here

lamebait@fuuyuu:~> findgrub -M
If 'findgrub' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf findgrub
flamebait@fuuyuu:~> su
Password: 
fuuyuu:/home/flamebait # findgrub -M
If 'findgrub' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf findgrub
fuuyuu:/home/flamebait # cnf findgrub
findgrub: command not found                         
fuuyuu:/home/flamebait # exit
exit
flamebait@fuuyuu:~> find grub -M
find: unknown predicate `-M'
flamebait@fuuyuu:~> 

OK I have a new device.map


(hd0)    /dev/disk/by-id/ata-WDC_WD5000AADS-00M2B0_WD-WCAV5R429030
(hd1)    /dev/disk/by-id/ata-WDC_WD5000AAKS-22A7B0_WD-WMASY4550447
(hd2)   /dev/disk/by-id/ata-WDC_WD5002ABYS-02B1B0_WD-WCASY7880549
(hd3)    /dev/disk/by-id/ata-WDC_WD10EARS-00MVWB0_WD-WCAZA7727924
(hd4)    /dev/disk/by-id/ata-WDC_WD5000AVDS-63U7B0_WD-WCAV95924946
(hd5)   /dev/disk/by-id/ata-WDC_WD5000AADS-56S9B0_WD-WCAV97260650

Is there any way to test if this is sane?


$ su -l
# zypper ar [noparse]http://download.opensuse.org/repositories/home:/please_try_again/openSUSE_12.1/[/noparse]  PTA
# zypper -n --gpg-auto-import-keys refresh -r PTA
# zypper -n in updategrub

# findgrub -M

On 2012-02-25 03:26, FlameBait wrote:
> That isn’t working here

You have to install it first :slight_smile:


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

I am on 11.4

$ su -l
# zypper ar [noparse]http://download.opensuse.org/repositories/home:/please_try_again/openSUSE_11.4/[/noparse]  PTA
# zypper -n --gpg-auto-import-keys refresh -r PTA
# zypper -n in updategrub

# findgrub -M

Done and I haven’t compared the output to the new /boot/grub/device.lst yet. Ran it as root.


--- DEVICE.MAP: sdb is ata drive hd1                                                                                                                                                                                                         
--- DEVICE.MAP: looking for /dev/sdb in /boot/grub/device.map:                                                                                                                                                                               
--- DEVICE.MAP: - /dev/sdb                                                                                                                                                                                                                   
--- DEVICE.MAP: - /dev/disk/by-id/ata-WDC_WD5000AAKS-22A7B0_WD-WMASY4550447 -> hd1                                                                                                                                                           
--- DEVICE.MAP: - /dev/disk/by-id/edd-int13_dev84                                                                                                                                                                                            
--- DEVICE.MAP: - /dev/disk/by-id/scsi-SATA_WDC_WD5000AAKS-_WD-WMASY4550447                                                                                                                                                                  
--- DEVICE.MAP: - /dev/disk/by-id/wwn-0x50014ee0564494e6                                                                                                                                                                                     
--- DEVICE.MAP: - /dev/disk/by-path/pci-0000:00:11.0-scsi-1:0:0:0                                                                                                                                                                            
--- DEVICE.MAP: => sdb - found in device.map - is now hd1                                                                                                                                                                                    
--- DEVICE.MAP:                                                                                                                                                                                                                              
--- DEVICE.MAP: sdc is ata drive hd2                                                                                                                                                                                                         
--- DEVICE.MAP: looking for /dev/sdc in /boot/grub/device.map:                                                                                                                                                                               
--- DEVICE.MAP: - /dev/sdc
--- DEVICE.MAP: - /dev/disk/by-id/ata-WDC_WD5002ABYS-02B1B0_WD-WCASY7880549 -> hd2
--- DEVICE.MAP: - /dev/disk/by-id/edd-int13_dev83
--- DEVICE.MAP: - /dev/disk/by-id/scsi-SATA_WDC_WD5002ABYS-_WD-WCASY7880549
--- DEVICE.MAP: - /dev/disk/by-id/wwn-0x50014ee258c3f217
--- DEVICE.MAP: - /dev/disk/by-path/pci-0000:00:11.0-scsi-2:0:0:0
--- DEVICE.MAP: => sdc - found in device.map - is now hd2
--- DEVICE.MAP:
--- DEVICE.MAP: sdd is ata drive hd3
--- DEVICE.MAP: looking for /dev/sdd in /boot/grub/device.map:
--- DEVICE.MAP: - /dev/sdd
--- DEVICE.MAP: - /dev/disk/by-id/ata-WDC_WD10EARS-00MVWB0_WD-WCAZA7727924 -> hd3
--- DEVICE.MAP: - /dev/disk/by-id/edd-int13_dev85
--- DEVICE.MAP: - /dev/disk/by-id/scsi-SATA_WDC_WD10EARS-00_WD-WCAZA7727924
--- DEVICE.MAP: - /dev/disk/by-id/wwn-0x50014ee205eded4c
--- DEVICE.MAP: - /dev/disk/by-path/pci-0000:00:11.0-scsi-3:0:0:0
--- DEVICE.MAP: => sdd - found in device.map - is now hd3
--- DEVICE.MAP:
--- DEVICE.MAP: sda is ata drive hd0
--- DEVICE.MAP: looking for /dev/sda in /boot/grub/device.map:
--- DEVICE.MAP: - /dev/sda
--- DEVICE.MAP: - /dev/disk/by-id/ata-WDC_WD5000AADS-00M2B0_WD-WCAV5R429030 -> hd0
--- DEVICE.MAP: - /dev/disk/by-id/edd-int13_dev80
--- DEVICE.MAP: - /dev/disk/by-id/scsi-SATA_WDC_WD5000AADS-_WD-WCAV5R429030
--- DEVICE.MAP: - /dev/disk/by-id/wwn-0x50014ee2b05a9cb0
--- DEVICE.MAP: - /dev/disk/by-path/pci-0000:00:11.0-scsi-0:0:0:0
--- DEVICE.MAP: => sda - found in device.map - is now hd0
--- DEVICE.MAP:
--- DEVICE.MAP: sdf is ata drive hd5
--- DEVICE.MAP: looking for /dev/sdf in /boot/grub/device.map:
--- DEVICE.MAP: - /dev/sdf
--- DEVICE.MAP: - /dev/disk/by-id/ata-WDC_WD5000AADS-56S9B0_WD-WCAV97260650 -> hd5
--- DEVICE.MAP: - /dev/disk/by-id/edd-int13_dev82
--- DEVICE.MAP: - /dev/disk/by-id/scsi-SATA_WDC_WD5000AADS-_WD-WCAV97260650
--- DEVICE.MAP: - /dev/disk/by-id/wwn-0x50014ee1583ea61d
--- DEVICE.MAP: - /dev/disk/by-path/pci-0000:00:14.1-scsi-1:0:1:0
--- DEVICE.MAP: => sdf - found in device.map - is now hd5
--- DEVICE.MAP:
--- DEVICE.MAP: sde is ata drive hd4
--- DEVICE.MAP: looking for /dev/sde in /boot/grub/device.map:
--- DEVICE.MAP: - /dev/sde
--- DEVICE.MAP: - /dev/disk/by-id/ata-WDC_WD5000AVDS-63U7B0_WD-WCAV95924946 -> hd4
--- DEVICE.MAP: - /dev/disk/by-id/edd-int13_dev81
--- DEVICE.MAP: - /dev/disk/by-id/scsi-SATA_WDC_WD5000AVDS-_WD-WCAV95924946
--- DEVICE.MAP: - /dev/disk/by-id/wwn-0x50014ee1ad79ec01
--- DEVICE.MAP: - /dev/disk/by-path/pci-0000:00:14.1-scsi-1:0:0:0
--- DEVICE.MAP: => sde - found in device.map - is now hd4
--- DEVICE.MAP:
********************************************************************************

Notice that findgrub -M sorts the drives according to controller and PCI drive numbers it reads in /dev/disk/by-path/pci-???. It provides an indication about what could be the BIOS order of disks, but it’s impossible to guess. This is why a correct device.map is needed. It is usually created under openSUSE (with what appeared to be the correct drive mapping) at installation time, but it never gets automatically updated when you add or remove hard disks. Thus, the perl bootloader might pick a wrong disk number while rewriting the boot menu correctly after a kernel update. That’s the problem you’re having now.