Grub

From miki
Revision as of 00:59, 9 September 2009 by Mip (talk | contribs)
Jump to navigation Jump to search

Documentation

  • Official manual here.

Boot from CDROM

When booting on HDD, it is possible to tell Grub to boot from CDROM instead.

  • Press esc to quit Grub GUI menu.
  • Press c to go to command-line mode.
  • Enter the following commands (adapt hd2 according to your configuration):
grub>rootnoverify (hd2)
grub>chainloader +1
grub>boot

Note that this might be actually a hack that only works on my machine. More information on normal way to tell Grub to boot on CDROM:

Grubonce

grubonce is an handy tool to force the system to immediately boot a given grub entry at the next reboot.

 (as root)
 $ grubonce
 0: openSUSE 11.0 - 2.6.25.20-0.1
 1: Failsafe -- openSUSE 11.0 - 2.6.25.20-0.1
 2: windows
 3: Floppy
 $ grubonce 2

By default, grubonce can only be run by root. We can use sudo to allow any user to use grubonce.

 % su
 $ visudo
 ... edit the /etc/sudoers file
 $ exit
 % sudo grubonce 2

Make the following change to the sudoers file:

 Defaults        env_keep = "DISPLAY ..."             # add DISPLAY env var to the list of kept var
 ALL     ALL = (ALL) NOPASSWD: /usr/sbin/grubonce

Restore / Troubleshoot

To repair a broken / lost GRUB, do from any grub prompt (live CD...) [1]:

grub> find /boot/grub/stage1
find /boot/grub/stage1
 (hd0,4)
grub> root (hd0,4)
root (hd0,4)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  23 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+23 p (hd0,4)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
  • try find /grub/stage1 if the first find command doesn't work
  • In my example I set root to (hd0,4) make sure you set it to whatever the find command returns
  • Always run 'setup (hd0)' to install grub on the MBR of the first drive. For second drive use (hd1) etc