Ubuntu Forums ubuntu.com - launchpad.net - ubuntu help  

Go Back   Ubuntu Forums > The Ubuntu Forum Community > Other Community Discussions > Tutorials & Tips
Register Reset Password Forum Help Forum Council Search Today's Posts Mark Forums Read

Ubuntu 9.10 is out!!!

When downloading Ubuntu 9.10 please consider using bittorrent to get your copy of Ubuntu.

The Ubuntu Developers Summit for Lucid Lynx will be held the week of 16-Nov-2009 till 20-Nov-2009 in Dallas, TX USA. Visit the the Ubuntu wiki for more information about UDS and how to participate remotely.

Tutorials & Tips
The place to find Ubuntu related Tips & Tricks.

 
Thread Tools Display Modes
Old June 23rd, 2009   #1
drs305
Ubuntu addict and loving it
 
Join Date: Jan 2007
Beans: 6,015
Ubuntu 9.10 Karmic Koala
Grub 2 Basics

The Grub 2 Guide
(formerly Grub 2 Basics)


Note: Most of this information has been incorporated, with a few graphics, into a page in the Ubuntu Help site. I will try to keep this post up-to-date and users are free to continue to post comments here. The help page is located here: https://help.ubuntu.com/community/Grub2

  1. Introduction
  2. First Look Differences
  3. Improvements
  4. Grub 2 Files & Options
  5. Booting Grub
  6. Adding Entries to Grub 2
  7. Removing Entries from Grub 2
  8. Grub 2 Splash Images
  9. Changing Menu Resolution
  10. Booting to LiveCD ISO
  11. Booting to Recovery Mode w/o Menu Option
  12. Uninstalling GRUB 2 > GRUB
  13. Reinstalling GRUB 2 from the LiveCD
  14. Booting from a LiveCD ISO
  15. Booting from the Rescue Mode
  16. Selected Problems
  17. Links
  1. Introduction
    I've written this guide to present some basic information about Grub 2. It is meant for users who may be familiar with basic editing of the original Grub (Grub Legacy) menu.lst and wonder how it carries over to Grub 2 (ver 1.97). I will not cover how to install or uninstall Grub 2 or whether you should convert to Grub 2.

    Grub 2 will be the default in Ubuntu 9.10, Karmic Koala but the plan is not to convert over previous Grub legacy installations to Grub 2.
    Official Announcement / Story

    StartUp-Manager supports Grub 2, but not all options are available. The two most-used items, however, are: setting the default kernel/OS and setting the menu timeout delay. There are plans for a StartUp-Manager 2 that works only for Grub 2 but it is still under development according to its creator. To view a guide on installing and running StartUpManager, view the StartUpManager community doc or the forum post on which it was based: http://ubuntuforums.org/showthread.php?t=818177

    Also note that Grub 2 is still in development. Official documentation at this point is limited and still being created. That is partly the reason for this post. More comprehensive and complete documentation will hopefully be forthcoming from the developers and volunteers. Of the existing documentation, I have have provided several links to the better sources at the end of this post.

    First, before proceeding, confirm the version of Grub you are using. Running this command should provide the version:
    Code:
    grub-install -v
    Which should produce something like this:
    Quote:
    drs305@mycomputer:~$ grub-install -v
    grub-install (GNU GRUB 1.97~beta2)
  2. First Look Differences: GRUB vs GRUB 2
    At first boot, there will not be much difference in what the user sees on the boot menu. The one exception is a clean install of Ubuntu 9.10 with no other installed operating system. In this case, GRUB 2 will boot directly to the login prompt or Desktop without displaying a menu. Other major differences:
    • No ''/boot/grub/menu.lst''. It has been replaced by ''/boot/grub/grub.cfg''.
    • Hold down SHIFT to display the hidden menu during boot (formerly ESC is GRUB legacy).
    • There is no "find /boot/grub/stage1" at the grub prompt. Stage 1.5 has also been eliminated.
    • The main menu file, ''/boot/grub/grub.cfg'' is not meant to be edited, even by 'root'.
    • ''grub.cfg'' is overwritten anytime there is a update, a kernel is added/removed or the user runs `update-grub` *
    • The user can use a custom file, ''/etc/grub.d/40_custom'', in which the user can place his own entries. This file will ''not'' be overwritten.
    • The primary configuration file for changing menu display settings is ''/etc/default/grub''.
    • There are multiple files for configuring the the menu - ''/etc/default/grub'' mentioned above, and all the files in ''/etc/grub.d/'' folder.
    • Other operating systems, such as Windows, should automatically be recognized and added to the menu.
    • No changes made in the configuration files will take effect until the `update-grub` command is also run.


    * To update the GRUB 2 menu, the command sudo update-grub will be used throughout this guide. update-grub actually runs the command "grub-mkconfig -o /boot/grub/grub.cfg" This runs several scripts and incorporates the results into /boot/grub/grub.cfg which detemines what is seen on the screen during boot. Since the GRUB 2 developers do not intend to remove the update-grub 'stub', it will be used for simplicity and ease of use.
  3. Improvements
    GRUB 2's major improvements over the original GRUB include:
    • New configuration file structure
    • Scripting support including conditional statements and functions
    • Dynamic module loading
    • Rescue mode
    • Themes
    • Graphical boot menu support and improved splash capability
    • Easily boot LiveCD ISO images directly from hard drive
    • Non-X86 platform support (such as PowerPC)
    • Universal support for UUIDs (not just Ubuntu)
    • Improved internationalization, including support for non-ASCII characters
    • Note: openSUSE & Fedora have not yet adopted GRUB 2
  4. Booting Grub
    Grub 2 loads before the operating system. It's modular components are loaded on an as-needed basis. Menu display behavior is generally determined by settings in /etc/default/grub. Review the "Grub 2 Files & Options" section for specific entry and formatting guidance.

    The main options for displaying the menu are:
    • Initial Default
      • Grub 2 will boot straight into the default operating system if no other operating system is detected. No menu will be displayed. If another operating system is detected, the Grub 2 menu will display.
    • Timed display.
      • The default delay is 10 seconds. If no user input is made Grub 2 boots to the default entry.
      • The countdown can be stopped by pressing any key. The user must then make a selection manually.
      • The booted entry is determined by the DEFAULT= setting in /etc/default/grub, The first "menuentry" is 0.
    • Hidden
      • The user can interrupt the boot process and display the menu by holding down the SHIFT key until the menu displays. Grub 2 searches for a depressed SHIFT key signal during boot. If the key is pressed or Grub 2 cannot determine the status of the key, the menu is displayed.
      • The time the screen remains blank but available for display is determined by a setting in /etc/default/grub.
      • To provide visual feedback during while the countdown continues, a countdown display can be shown on the screen.
      • At the end of the timeout, the default entry determined in /etc/default/grub will be selected.
    • Saved
      • If the default option is set to "saved", the last kernel/system successfully booted will be selected and run if no input is made.
  5. Grub 2 Files & Options
    Many of the files in /boot/grub will not be recognizable by users of Grub Legacy. Especially noticeable are the multitude of *.mod files. Grub 2 is modular and these files are loaded as necessary by the grub bootloader.

    The Grub 2 user-configurable settings are contained mainly in /etc/default/grub and the files in /etc/grub.d. When update-grub is executed the results are input into the /boot/grub/grub.cfg file.
    • /boot/grub/grub.cfg
      • This is the main Grub 2 file. It "replaces" Grub Legacy's /boot/grub/menu.lst This file contains the Grub menu information but unlike Grub Legacy's menu.lst file, grub.cfg is not meant to be edited.
        • grub.cfg is automatcially generated when "update-grub" is executed:
        • Each section (### BEGIN) is clearly delineated and references the file in the /etc/grub.d folder from which the information was generated.
        • grub.cfg is updated by running the "update-grub2" or "update-grub" command as root.
        • By default, and whenever the "update-grub2" command is executed, this file is made "read-only". This is in keeping with the intent that the file should not be edited manually. If you must edit this file, instructions are provided in Section 2.
      • Sample grub.cfg including Windows and one manual entry (41_srcd):
        Code:
        #
        # 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 ###
        load_env
        set default="0"
        if [ ${prev_saved_entry} ]; then
          saved_entry=${prev_saved_entry}
          save_env saved_entry
          prev_saved_entry=
          save_env prev_saved_entry
        fi
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396925
        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
        if [ ${recordfail} = 1 ]; then
          set timeout=-1
        else
          set timeout=10
        fi
        ### END /etc/grub.d/00_header ###
        
        ### BEGIN /etc/grub.d/10_linux ###
        menuentry "Ubuntu, Linux 2.6.31-12-generic" {
                recordfail=1
                save_env recordfail
            set quiet=1
            insmod ext2
            set root=(hd0,1)
            search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933
            linux    /boot/vmlinuz-2.6.31-12-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro   quiet splash
            initrd    /boot/initrd.img-2.6.31-12-generic
        }
        menuentry "Ubuntu, Linux 2.6.31-12-generic (recovery mode)" {
                recordfail=1
                save_env recordfail
            insmod ext2
            set root=(hd0,1)
            search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933
            linux    /boot/vmlinuz-2.6.31-12-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro single 
            initrd    /boot/initrd.img-2.6.31-12-generic
        }
        menuentry "Ubuntu, Linux 2.6.31-11-generic" {
                recordfail=1
                save_env recordfail
            set quiet=1
            insmod ext2
            set root=(hd0,1)
            search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933
            linux    /boot/vmlinuz-2.6.31-11-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro   quiet splash
            initrd    /boot/initrd.img-2.6.31-11-generic
        }
        menuentry "Ubuntu, Linux 2.6.31-11-generic (recovery mode)" {
                recordfail=1
                save_env recordfail
            insmod ext2
            set root=(hd0,1)
            search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933
            linux    /boot/vmlinuz-2.6.31-11-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro single 
            initrd    /boot/initrd.img-2.6.31-11-generic
        }
        ### END /etc/grub.d/10_linux ###
        
        ### END /etc/grub.d/20_memtest86+ ###
        
        ### BEGIN /etc/grub.d/30_os-prober ###
        menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
            set root=(hd0,1)
            chainloader +1
        }
        ### END /etc/grub.d/30_os-prober ###
        
        ### BEGIN /etc/grub.d/40_custom ###
        menuentry "Jaunty 2.6.28-15-custom" {
            saved_entry=${chosen}
            save_env saved_entry
            set root=(hd0,8)
            linux    /boot/vmlinuz-2.6.28-15-custom root=UUID=48e03255-22b3-488b-ae7e-9dbe4e2beac7 ro  quiet splash
            initrd    /boot/initrd.img-2.6.28-15-custom
        }
        menuentry "SystemRescue" {
            saved_entry=${chosen}
            save_env saved_entry
                set root=(hd0,6)
                linux   /sysrcd/rescuecd subdir=sysrcd setkmap=us
                initrd  /sysrcd/initram.igz
        }
        ### END /etc/grub.d/40_custom ###
    • /etc/default/grub
      • This file contains information formerly contained in the upper section of Grub Legacy's menu.lst and items contained on the end of the kernel line. The items in this file can be edited by a user with administrator (root) privileges.
        Quote:
        # If you change this file, run 'update-grub' afterwards to update
        # /boot/grub/grub.cfg.

        GRUB_DEFAULT=0
        #GRUB_HIDDEN_TIMEOUT=0
        GRUB_HIDDEN_TIMEOUT_QUIET=true
        GRUB_TIMEOUT="3"
        GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
        GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
        GRUB_CMDLINE_LINUX=""

        # Uncomment to disable graphical terminal (grub-pc only)
        #GRUB_TERMINAL=console

        # The resolution used on graphical terminal
        # note that you can use only modes which your graphic card supports via VBE
        # you can see them in real GRUB with the command `vbeinfo'
        #GRUB_GFXMODE=640x480

        # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
        #GRUB_DISABLE_LINUX_UUID=true

        # Uncomment to disable generation of recovery mode menu entrys
      • A few bugs still exist in the hidden menu feature. Hiding the menu, even with the correct "TIMEOUT" settings in /etc/default/grub may not work as described.
      • GRUB_DEFAULT - Sets the default menu entry. Entries may be numeric or "saved"
        • GRUB_DEFAULT=0 - Sets the default menu entry by menu position. As Grub Legacy, the first "menuentry" in grub.cfg is 0, the second is 1, etc.
        • GRUB_DEFAULT=saved - Sets the default menu entry with whatever was selected last. If the menu is displayed during boot, the last entry selected will be highlighted. If no action is taken, this selection will be booted at the end of the timeout or if the menu is hidden.
          • grub-set-default is enabled when this value is set to saved. You can quickly change the default OS/kernel with this command.
            • The format is "sudo grub-set-default X, with X being the menuentry position (starting with 0 as the first entry) or the exact menu string. Examples: sudo grub-set-default 3 or sudo grub-set-default "Ubuntu, Linux 2.6.31-14-generic"
            • To obtain the existing menuentry choice number (starting from 0) or the menuentry "string", run "grep menuentry /boot/grub/grub.cfg"
        • GRUB_DEFAULT="xxxx" - An exact menu entry, including the quotation symbols, may also be used. In this case, location in the menu will not matter. Example: GRUB_DEFAULT="Ubuntu, Linux 2.6.31-9-generic"
        • For an example of how to enable the "saved" option with a custom menu, see the "Custom User Entries" section.
      • GRUB_TIMEOUT=5 - No change from Grub Legacy. This is the number of seconds before the default entry is automatically booted.
        • Setting this value to -1 will cause the menu to display until the user makes a selection.
        • To display the menu on each boot use a value of 1 or higher.
        • This command defers to the GRUB_HIDDEN_TIMEOUT command. If the hidden display is interrupted by a key press, the GRUB_TIMEOUT counter begins its countdown.
        • In addition to editing the file as root, you can also run the following commands the check and change the default timeout value. The first checks the existing timeout, the second replaces the value. Replace T with the new value.
          Code:
          cat /etc/default/grub | grep 'GRUB_TIMEOUT='   # Checks current TIMEOUT value.
          sudo sed 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=T/g' -i /etc/default/grub  # Change TIMEOUT value. Replace T with new value.
      • GRUB_HIDDEN_TIMEOUT=0
        • The menu will be hidden unless a # symbol is present at the beginning of this line. ( # GRUB_HIDDEN_TIMEOUT=0 )
        • The default setting initially depends on the presence of other operating systems.
          • Another OS Detected: The menu will be displayed. ( The line will begin with a # symbol. )
          • No other OS Detected: The menu will be hidden.
        • For integers greater than 0, the system will pause, but not display the menu, for the entered number of seconds.
        • 0 The menu will not be displayed. There will be no delay. When this entry is set to 0:
          • The user may force displaying the menu as the computer boots by holding down the SHIFT key.
          • During boot, the system will check the SHIFT key status. If it cannot determine the key status, a short delay will enable the user to display the menu by pressing the ESC key.
        • If enabled, the splash screen designated in 05_debian_theme will be displayed. This setting hides the menu only.
      • GRUB_HIDDEN_TIMEOUT_QUIET=true
        • true - No countdown is displayed. The screen will be blank.
        • false - A counter will display on a blank screen for the duration of the GRUB_HIDDEN_TIMEOUT value.
      • GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
        • Determines the descriptive name in the menu entry. (Ubuntu, Xubuntu, Debian, etc.)
      • GRUB_CMDLINE_LINUX
        If it exists, this line imports any entries to the end of the 'linux' command line (Grub Legacy's "kernel" line) for both normal and recovery modes. This is similar to the "altoptions" line in menu.lst
      • GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
        This line imports any entries to the end of the 'linux' line (Grub Legacy's "kernel" line). The entries are appended to the end of the normal mode only. This is similar to the "defoptions" line in menu.lst. For a black screen with boot processes displayed in text, remove "quiet splash". To see the grub splash image plus a condensed text output, use "splash". This line is where other instructions, such as "acpi=off" are placed.
      • #GRUB_TERMINAL=console
        Uncomment to disable graphical terminal (grub-pc only)
      • #GRUB_DISABLE_LINUX_UUID=true
        Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
      • #GRUB_GFXMODE=640x480
        You can add this line and remove the # symbol to make it active. This entry sets the resolution of the graphical menu (the menu text size). It provides resolutions supported by the user's graphics card (e.g. 640x480, 800x600, 1280x1024, etc). The setting applies only to the boot menu text.
      • From the GRUB 2 menu you can display available resolutions by typing "c" and then at the "grub>" prompt type "vbeinfo"
      • GRUB_DISABLE_LINUX_RECOVERY=true
        Add or uncomment this line to prevent "Recovery" mode kernel options from appearing in the menu. If you want a "Recovery" option for only one kernel, make a special entry in /etc/grub/40_custom.
      • GRUB_DISABLE_OS_PROBER="true" - Enables/disables the os-prober check of other partitions for operating systems, including Windows, Linux, OSX and Hurd.
    • /etc/grub.d/
      • The files in this folder are read during execution of "update-grub" or "update-grub2" commands. The contents are imported into /boot/grub/grub.cfg

        The order of the entries in the grub menu is based on the order of the file names. File named with a starting numeral are run before those beginning with a letter. The order the files are run determines the menu order in grub.cfg.
        Custom entries can be added to the "40_custom" file or in a newly created file.

        Any file created must be executable in order to be included in the grub.cfg file during the "update-grub2" command.
        • 00_header
        • 05_debian_theme: Set background and text colors, themes
        • 10_hurd Locates Hurd kernels
        • 10_linux Locates Linux kernels based on results of the "lsb_release" command.
        • 20_memtest86+: If the file /boot/memtest86+.bin exists, it is included as a menu item.
        • 30_os-prober: Searches for Linux and OS's on other partitions and includes them in the menu.
        • 40_custom: A template for adding custom menu entries which will be inserted into grub.cfg upon execution of the "update-grub2" command. This and any other custom file must be made executable to allow importation into grub.cfg.
  6. Adding Entries to Grub 2
    Menu entries can be added to grub.cfg automatically or manually.
    • Automatically.
      • When "update-grub" or "update-grub2" is executed, Grub 2 will search for linux kernels and other Operating Systems. What and where is looks is based on the files contained in /etc/grub.d folder.
        • 10_linux searches for installed linux kernels on the same partition.
        • 30_os-prober searches for other operating systems.
    • Custom User Entries (/etc/grub.d/40_custom).
      • Entries to grub.cfg can be manually inserted by creating a file in the /etc/grub.d folder.
        • The name of the file determines the order in the menu. 30_os-prober entries will be placed before 40_custom entries, which will be placed before 50_my-sample entries.
        • Any created file must be made executable. This can be done as root by running "sudo chmod +x /etc/grub.d/filename".
        • The files in the /etc/grub.d folder will be read and the contents included in grub.cfg when the "update-grub2" command is executed as root.
      • A sample entry. This file creates a menu item for running the SystemRescueCD (previously installed) from a partition created on sda10. Folders and files must have been copied to the correct location in accordance with the SystemRescueCD if you wish to actually use this entry.
        • Quote:
          #!/bin/sh
          exec tail -n +3 $0
          # 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.

          echo "Adding SystemRescueCD" >&2
          menuentry "System Rescue CD" {
          set root=(hd0,10)
          linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
          initrd /sysrcd/initram.igz
          }
        • Note the new partition naming convention. Devices start counting from "0" as done previously. sda is designated as "hd0", sdb is "hd1", etc. However the first partition is now designated as sda1. Counting partitions does not start with "0". sda5 is "5".
        • The line 'echo "Adding SystemRescueCD" >&2' is not required. Including it in the file allows this line to be seen in the terminal when "update-grub2" is executed. It provides visual feedback that the entry has been found and entered. The entry, if in the correct format, will be inserted in grug.cfg whether or not this line is included in the file.
      • Tip: If you want to have your custom entries at the top of the menu (say you want custom titles), create a new file and name it "07_xxxx". Since the files in /etc/grub.d/ are read sequentially, those in "07_custom" will be placed before those of "10_linux". I recommend not naming a custom menu file lower than 06 so that any theme run from 05_debian_theme is allowed to run before any custom menu is created. After creating the file, run sudo update-grub and then check the value of "DEFAULT" in /etc/default/grub. If it doesn't point to the correct menuentry, change the value of DEFAULT to the correct menuentry value.
      • Omitting memtest86+: To prevent "memtest86+" entries in your Grub 2 menu, remove the "executable" bit from /etc/grub.d/20_memtest86+. You can do this via a file browser by selecting "Properties (right click), Permissions", or via the command line:
        Code:
        sudo chmod -x /etc/grub.d/20_memtest86+
      • Omitting Recovery Mode entries: The file /etc/grub.d/10_linux was recently updated to include a check for recovery mode options. Edit /etc/default/grub and add or change this line:
        Quote:
        GRUB_DISABLE_LINUX_RECOVERY=true
        If you have an older version of /etc/grub.d/10_linux and the above does not work after updating grub, you can prevent "Recovery mode" entries in your Grub 2 menu, by editing /etc/grub.d/10_linux. If there are no conditional "if" statements concerning the recovery mode, place a comment symbol (#) in front of the following lines (at approximately line 146) of the old file:
        Quote:
        # linux_entry "${OS}, Linux ${version} (recovery mode)" \
        # "single ${GRUB_CMDLINE_LINUX}"
        If you wish to retain one "Recovery mode" entry for insurance, you can add an entry to /etc/grub.d/40_custom which will appear at the bottom of your grub menu.
      • Building a Totally Customized Menu: Ok, admit you are a control freak and you want to see only what you build yourself - customized titles, no "memtest86+" and no extra kernels. Here is how you do it:
        • Run sudo update-grub to get the current available kernels.
        • Copy the desired "menuentry" listings from /boot/grub/grub.cfg to /etc/grub.d/40_custom The entry begins with the line starting with "menuentry" and ends with a line containing "}".
        • Add any other "menuentry" items you wish to see on the boot menu.
        • Edit the titles of the "menuentry" line if desired (between the quotation symbols). Do not change the lines following the "menuentry" line. Each entry should start with a "menuentry" line and end with a "}" on the last line.
        • Remove the executable bit from /etc/grub.d/10_linux, /etc/grub.d/20_memtest86+ and /etc/grub.d/30_os-prober
          Removing the executable bit from any file in /etc/grub.d will exclude the file from being included in grub updates.
          Code:
          sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober
        • Run "sudo update-grub"
        • The updated /boot/grub/grub.cfg file should now contain only sections for "00_header", "05_debian_theme" and "40_custom".
        • The grub.cfg file will not be updated with the addition of a new kernel. To add a new kernel, make "10_linux" executable, run "sudo update-grub" to refresh the available kernels, and repeat these instructions.
      • Incorporating the DEFAULT=save Option: In order to enable the "saved default" option with which Grub 2 preselects the last successfully-used option at boot, the "DEFAULT=save" option must be entered in /etc/default/grub and the 40_custom file must be modified. An example of a 40_custom file follows:
        • Quote:
          #! /bin/sh -e

          prefix=/usr
          exec_prefix=${prefix}
          libdir=${exec_prefix}/lib
          . ${libdir}/grub/grub-mkconfig_lib
          echo "Adding SystemRescueCD & Custom Kernel" >&2

          menuentry "Jaunty 2.6.28-15-custom" {
          save_default_entry | sed -e "s/^/\t/"
          set root=(hd0,7)
          linux /boot/vmlinuz-2.6.28-15-custom root=UUID=12c55255-27b3-488b-hje7e-9dbe4e2esfg5 ro quiet splash
          initrd /boot/initrd.img-2.6.28-15-custom
          }



          menuentry "SystemRescue" {
          save_default_entry | sed -e "s/^/\t/"
          set root=(hd0,6)
          linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
          initrd /sysrcd/initram.igz
          }
        • Manual Windows Entry (with /etc/grub.d/30_os-prober made unexecutable)
          Quote:
          #! /bin/sh -e

          echo "Adding Windows 43_custom" >&2
          menuentry "Windows Vista 43_custom" {
          insmod ntfs
          set root=(hd0,1)
          search --no-floppy --fs-uuid --set CFFCFF9EECFF7F49
          chainloader +1
          }
      • Don't forget to run "sudo update-grub" after making any changes to your /etc/grub.d files.
    • Manual Editing of grub.cfg (Not encouraged)
      Manual editing of /boot/grub/grub.cfg is not encouraged. Think of grub.cfg as a result, not as an initiator. The files that should be edited are contained in the /etc/grub.d folders and the /etc/default/grub file.

      In order to discourage its editing, grub.cfg is read-only. Even attempting to open, edit and save this file using root privileges cannot be done until the 'read-only' status is changed. If you must edit this file:
      Code:
      sudo chmod +w /boot/grub/grub.cfg
      gksudo gedit /boot/grub/grub.cfg
      Note: This file is returned to 'read-only' status anytime the update-grub command is run.
  7. Removing Entries from Grub 2
    Entries should be removed by editing or removing files in the /etc/grub.d folder. The /boot/grub/grub.cfg file is read-only and should not normally require editing.
    • Automatically.
      • Too Many Kernels? Kernels removed via Synaptic or with "apt-get remove" will automatically update grub.cfg and no user action is required.
        • In Synaptic, type the kernel number in the search window at the upper right (for example - 2.6.28-11).
        • Find the "linux-image" and "linux-headers" files for the applicable kernel (example - linux-image-2.6.26-11 or "linux-image-2.6.26-11-generic).
        • Right click and select "Mark for Complete Removal" and then press the Apply main menu button.
        • The kernels will be removed from your system and from the Grub menu.
        • If you are not sure of the kernel you are currently using, in a terminal type "uname -r".
        • Many users keep one previous kernel on the machine which previously ran without problems.
      • Other Operating Systems which have been removed from the computer will also be removed from the menu once "update-grub2" is run as root.
      • To prevent one of the /etc/init.d files from running, remove the "executable" bit.
        • Example: If you don't want to see the "Memtest86+" entries, run this command:
          Code:
          sudo chmod -x /etc/grub.d/20_memtest86+
        • Run the update-grub command to allow the changes to be incorporated in grub.cfg


      User-Created Entries.
      • To remove a user-created menu entry, remove the applicable file from the /etc/grub.d folder.
      • If a custom file contains multiple entries, individual items may be removed and others retained.
      • Once the file has been removed or edited, run "update-grub2" to update grub.cfg.
  8. Grub 2 Splash Images
    Why reinvent the wheel? Visit this site for an excellent presentation on creating Grub 2 images:
    http://members.iinet.net/~herman546/p20/GRUB2%20Splashimages.html

    However, if encrypted disks are not an issue, here are the basics:
    • Manually copy grub splash images into the /usr/share/images/grub folder or install the default grub2 splash images via Synaptic or:
      Code:
      sudo apt-get install grub2-splashimages
    • The grub2's splash images are controlled by /etc/grub.d/05_debian_theme. Open this file for editing:
      Code:
      gksudo gedit /etc/grub.d/05_debian_theme
      Find the following line and edit the highlighted area, replacing it with the grub splash image you wish to use (and located in /usr/share/images/grub):
      Quote:
      for i in {/boot/grub,/usr/share/images/grub}/moreblue-orbit-grub.{png,tga} ; do
      Note: There is a period ( . ) following the filename.
      • At one point Grub 2 splash images were downloaded and stored in /usr/share/images/desktop.base If this is where your grub images are stored, change the address in the previous command accordingly ( ... /usr/share/images/desktop-base} ... ).
    • Save the file, then update grub2:
      Code:
      sudo update-grub2
  9. Changing Menu Resolutions
    If the user wishes to change the resolution of the GRUB 2 screen while using a splash image follow these steps:
    1. Set the desired resolution in /etc/default/grub
      • Change the value of GRUB_GFXMODE= (Example: GRUB_GFXMODE=800x600)
        • If unsure of what resolutions are available to GRUB 2 they can be displayed by typing vbeinfo in the GRUB 2 command line. The command line is accessed by typing "c" when the main GRUB 2 menu screen is displayed.
    2. Select an image of the same size and make the change in /etc/grub.d/05_debian_theme
      • The image name is located in the line beginning with " for i in {/boot"
      • If an image of the correct size is not used, the menu will not be positioned correctly.
      • Use the image editor of your choice to create/resize an image to the correct size.
      • The user may be able to view the image size via Properties in a file browser (check the Properties Image tab in Nautilus).
    3. Run update-grub as root to add the new settings to /boot/grub/grub.cfg
  10. How to Boot to the Recovery Mode w/o a Menu Option
    1. If you have Grub 2 set to boot without displaying the menu at all, hold the SHIFT key down until the menu displays. (In Grub it was the ESC key.)
    2. Press any key once the menu is displayed to 'freeze' it. Then arrow to the kernel you want to boot.
    3. Press E
    4. Scroll to the end of the "linux /boot/vmlinuz...." line. If displayed, remove "quiet" and/or "splash". Add the word "single" to the end of the line.
    5. Press CTRL-X to boot to the Recovery menu.
  11. Uninstalling GRUB 2
    The command line produces a cleaner uninstall and reinstallation. While adding and removing the packages can be accomplished with Synaptic, certain steps must be accomplished in a terminal.
    • Open a terminal: Applications, Accessories, Terminal.
    • Make backup copies of the main GRUB 2 folders & files
      • Code:
        sudo cp /etc/default/grub /etc/default/grub.old
        sudo cp -R /etc/grub.d /etc/grub.d.old
        sudo cp -R /boot/grub /boot/grub.old
    • Remove GRUB 2
      • Code:
        sudo apt-get purge grub2 grub-pc
      • The user will be warned the system will be unbootable without installing another bootloader.
      • Once the packages are removed, many files will still remain in '/boot/grub'
    • Install GRUB 0.97
      • Code:
        sudo apt-get install grub
      • With ''grub'' installed, the user must still create the ''menu.lst'' and ''stage1/stage2'' files.
      • Code:
        sudo update-grub
        • Generates ''menu.lst'' Tab to "Yes" when prompted.
      • Code:
        sudo grub-install /dev/sdX
        • Choose the correct device (sda, sdb, etc), normally the one on which Ubuntu is installed.
        • Creates the ''stage1'' & ''stage2'' files in ''/boot/grub'' and writes to the MBR.
    • Reboot
  12. Reinstalling GRUB 2 from LiveCD
    If you cannot boot from GRUB 2 and need to reinstall it:
    • Boot to the 9.10 Karmic LiveCD Desktop.
    • Open a terminal - Applications, Accessories, Terminal.
    • Determine your normal system partition - `sudo fdisk -l` (That is a lowercase L)
    • If you aren't sure, run `df -Th`. Look for the correct disk size and ext3 or ext4 format.
    • Mount your normal system partition:
      Code:
      sudo mount /dev/sdXX /mnt
      • Note: substitue the correct partition: sda1, sdb5, etc.
      • Note: GRUB 2 counts the first drive as "0", but the first partition as "1"
    • Only if you have a separate boot partition:
      • Code:
        sudo mount /dev/sdYY /mnt/boot
        with sdYY being your /boot partition designation.
    • Note: If you have any other system partitions such as "/usr" these should also be mounted in a similar manner.
    • Mount devices:
      Code:
      sudo mount --bind /dev/ /mnt/dev
    • Chroot into your normal system device:
      Code:
      sudo chroot /mnt
    • Reinstall GRUB 2:
      Code:
      sudo grub-install /dev/sdX
      • Note: Substitute the correct device - sda, sdb, etc. Do ''not'' specify a partition number.
    • Verify the install:
      Code:
      sudo grub-install --recheck /dev/sdX
      • Note: Substitute the correct device - sda, sdb, etc. Do ''not'' specify a partition number.
    • Exit chroot: CTRL-D
    • Unmount devices:
      Code:
      sudo umount /mnt/dev
    • If you mounted a separate /boot partition:
      Code:
      sudo umount /mnt/boot
    • Unmount last device:
      Code:
      sudo umount /mnt
    • Reboot.
  13. Booting from a LiveCD ISO
    This section is under construction. Although I have been able to successfully mount the 64-bit Karmic desktop ISO the results among the other releases is not consistent enough to post.
  14. Booting from the Rescue Mode
    At the grub rescue> prompt, accomplish the following actions to attempt to boot to the latest kernel:
    • ls This will display the known devices and partitions. From this information, the user must determine the device and partition on which the system is installed.
    • set root=/dev/sdXY X is the device/drive, starting with 0. Y is the partition, starting with 1. (Example: (hd0,1) is sda1. (hd3,5) is sdc5.
    • ls /boot Inspect the contents. The user should see varioius kernels, initrd images and the grub folder. If not, use the ls command to inspect the device and attempt to find these files and folders. If necessary, set another device as root.
    • insmod /boot/grub/_linux.mod Load the linux module. Without this module loaded, the user will receive an "Unknown command linux" message when trying to load the kernel.
    • linux /vmlinuz root=/dev/sdXY ro Load the linux kernel, substituting the correct designations for "X" and "Y" (example: sda1). The user will see a message showing the kernel has been loaded. (See graphic above)
    • initrd /initrd.img Load the initrd image. When pressing enter, the user may or may not see a message in the terminal. (See highlighted graphic above)
    • boot
  15. Selected Problems
    File Not Found (Error 15)
    This error is the result of a GRUB 2 installation to /boot but a Master Boot Record ( MBR ) which still contains Grub legacy. This can happen if you don't select your drive when running sudo update-from-grub-legacy. Shortly after starting this command the user will be asked to select the device (sda, sdb, etc). Highlight the drive and press the space bar to select it when presented with this screen. Failure to select a drive will result in an Error 15.

    To recover from this error, GRUB 2 must be reinstalled. Go to the community documentation File Not Found (Error 15) for instructions.

    If you find you need to remove the following lines manually to get Grub to boot properly:
    Quote:
    recordfail=1
    save_env recordfail
    Open /etc/grub.d/10_linux with admin rights:
    Code:
    gksu gedit /etc/grub.d/10_linux
    Look for this section and comment the lines in bold;
    Quote:
    linux_entry ()
    {
    menuentry "$1" {
    recordfail=1
    save_env recordfail
    Change it to:
    Quote:
    - linux_entry ()
    {
    menuentry "$1" {
    # recordfail=1
    # save_env recordfail
    Save the file, then run
    Code:
    sudo update-grub
    The two lines should no longer appear when you press E to view the selection in the Grub 2 menu. You will see a "save_env save_entry" line but this should not cause the failure if you successfully booted the previous time.

    Grub 2 Hangs 10-30 Seconds between Grub 2 Loading and Menu Display.
    This is a known bug that can be caused by GRUB 2 and /boot being loaded on different partitions. To fix the problem, run
    Code:
    sudo dpkg-reconfigure grub-pc
    Select to load Grub 2 on the same device as the /boot partition. In your system BIOS, change the drive to boot from first to the drive with the /boot partition.
  16. Links
    Grub2 (help.ubuntu.com)
    Grub 2 Title Tweaks
    GRUB 2 - 5 Common Tasks
    Grub 2 Introduction
    Grub 2: A Guide for Users (from Kubuntu
    Forums)

    https://wiki.ubuntu.com/KernelTeam/Grub2Testing
    GNU Grub 2 Manual Links
    GNU Grub 2 Manual (in development)
    Grub 2 Wiki
    Herman's Grub 2 Site Comprehensive.

Last edited by drs305; 1 Day Ago at 01:36 PM.. Reason: Grub boot delay
drs305 is offline   Reply With Quote
Old July 17th, 2009   #2
foxy123
Dark Roasted Ubuntu
 
Join Date: Apr 2005
Beans: 1,101
Re: Grub 2 Basics

I am running
Code:
sudo update-grub
and have the following:
Code:
~$ sudo update-grub
Updating /boot/grub/grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.28-14-generic
Found initrd image: /boot/initrd.img-2.6.28-14-generic
Found linux image: /boot/vmlinuz-2.6.28-13-generic
Found initrd image: /boot/initrd.img-2.6.28-13-generic
Found linux image: /boot/vmlinuz-2.6.28-12-generic
Found initrd image: /boot/initrd.img-2.6.28-12-generic
Found linux image: /boot/vmlinuz-2.6.28-11-generic
Found initrd image: /boot/initrd.img-2.6.28-11-generic
Found memtest86+ image: /memtest86+.bin
Found Ubuntu karmic (development branch) (9.10) on /dev/sda6
done
But it does not add the last Karmic entry in the menu:

Code:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
set root=(hd0,9)
search --fs-uuid --set 9018bfe2-9de3-4692-9883-fc2f875e6455
if font /usr/share/grub/ascii.pff ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  terminal gfxterm
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###

### BEGIN /etc/grub.d/10_linux ###
set root=(hd0,8)
search --fs-uuid --set c3eb67b1-7f8f-419b-a462-c79a6c76e5de
menuentry "Ubuntu, linux 2.6.28-14-generic" {
	linux	/vmlinuz-2.6.28-14-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro  quiet splash
	initrd	/initrd.img-2.6.28-14-generic
}
menuentry "Ubuntu, linux 2.6.28-14-generic (single-user mode)" {
	linux	/vmlinuz-2.6.28-14-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro single 
	initrd	/initrd.img-2.6.28-14-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic" {
	linux	/vmlinuz-2.6.28-13-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro  quiet splash
	initrd	/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" {
	linux	/vmlinuz-2.6.28-13-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro single 
	initrd	/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-12-generic" {
	linux	/vmlinuz-2.6.28-12-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro  quiet splash
	initrd	/initrd.img-2.6.28-12-generic
}
menuentry "Ubuntu, linux 2.6.28-12-generic (single-user mode)" {
	linux	/vmlinuz-2.6.28-12-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro single 
	initrd	/initrd.img-2.6.28-12-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic" {
	linux	/vmlinuz-2.6.28-11-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro  quiet splash
	initrd	/initrd.img-2.6.28-11-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" {
	linux	/vmlinuz-2.6.28-11-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro single 
	initrd	/initrd.img-2.6.28-11-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	linux	/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	linux	/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file is an example on how to add custom entries
### END /etc/grub.d/40_custom ###
__________________
NEC Versa M400 Laptop, Intel Pentium 4 2.8GHz, 768Mb memory, 855GM Graphic Chip, RT2500 wireless chip
Ubuntu Karmic
foxy123 is offline   Reply With Quote
Old July 17th, 2009   #3
drs305
Ubuntu addict and loving it
 
Join Date: Jan 2007
Beans: 6,015
Ubuntu 9.10 Karmic Koala
Re: Grub 2 Basics

I don't know why grub2 isn't picking it up. I have had a few instances of grub2 not picking up all the kernels scattered over my drives but I don't remember grub2 actually ignoring ones that it located.

Here are a couple of things I do when troubleshooting:

a. Change one of the titles so I know the grub.cfg I see when it boots is the one I am looking at in the editor (i.e. if there are multiple grub.cfg files on your system). You will have to chmod +w to actually edit grub.cfg

b. Search your system for multiple instances of the file.

c. Place the kernel you want to show up in /etc/grub.d/40_custom so at least it shows up when you update grub. At best you will have two instances - the detected and the custom entries; at worst you will have at least the one from the 40_custom file. Don't forget to make the file executable.

d. Reinstall grub2 with grub-install.

Last edited by drs305; July 18th, 2009 at 07:38 AM.. Reason: 40_custom file problem
drs305 is offline   Reply With Quote
Old July 18th, 2009   #4
foxy123
Dark Roasted Ubuntu
 
Join Date: Apr 2005
Beans: 1,101
Re: Grub 2 Basics

It seems I have to unmount the Karmic partition before running 'grub-setup'. It has listed Karmic now. But I still cannot log in. I have now a message something like:
Code:
booting from kernel on /dev/sda6
you need to load kernel first
The entries in grub.cfg:
Code:
set root=(hd0,8) 
search --fs-uuid --set c3eb67b1-7f8f-419b-a462-c79a6c76e5de
menuentry "Ubuntu, linux 2.6.28-14-generic" {
	linux	/vmlinuz-2.6.28-14-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro  quiet splash
	initrd	/initrd.img-2.6.28-14-generic

menuentry "Ubuntu karmic (development branch), kernel 2.6.31-2-generic (on /dev/sda6)" {
	set root=(hd0,7)
	linux /boot/vmlinuz-2.6.31-2-generic root=UUID=6ad1f928-50b9-4aea-9495-95df46d08d58 ro quiet splash
	initrd /boot/initrd.img-2.6.31-2-generic
The first entry is for Jaunty, which is my primary OS, the second is for Karmic.

This is my fstab:
Code:
# / was on /dev/sda9 during installation
UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 /               ext3    relatime,errors=remount-ro 0       1

# /boot was on /dev/sda8 during installation
UUID=c3eb67b1-7f8f-419b-a462-c79a6c76e5de /boot           ext2    relatime        0       2

# /home was on /dev/sda5 during installation
UUID=4802e809-ecaa-4932-bd01-4a816c0bbd4f /home           ext3    relatime        0       2

# /media/test_boot was on /dev/sda7 during installation
UUID=0c98fbe4-ed7c-4134-994a-07d49074e137 /media/test_boot ext2    relatime        0       2

# /test was on /dev/sda6 during installation
UUID=6ad1f928-50b9-4aea-9495-95df46d08d58 /test           ext3    relatime        0       2
I am a bit lost with all this partition numbers
__________________
NEC Versa M400 Laptop, Intel Pentium 4 2.8GHz, 768Mb memory, 855GM Graphic Chip, RT2500 wireless chip
Ubuntu Karmic
foxy123 is offline   Reply With Quote
Old July 18th, 2009   #5
drs305
Ubuntu addict and loving it
 
Join Date: Jan 2007
Beans: 6,015
Ubuntu 9.10 Karmic Koala
Re: Grub 2 Basics

Quote:
Originally Posted by foxy123 View Post
I still cannot log in. I have now a message something like:
Code:
booting from kernel on /dev/sda6
you need to load kernel first
The entries in grub.cfg:
Code:
menuentry "Ubuntu karmic (development branch), kernel 2.6.31-2-generic (on /dev/sda6)" {
	set root=(hd0,7)
	linux /boot/vmlinuz-2.6.31-2-generic root=UUID=6ad1f928-50b9-4aea-9495-95df46d08d58 ro quiet splash
	initrd /boot/initrd.img-2.6.31-2-generic
This is my fstab:
Code:
# /test was on /dev/sda6 during installation
UUID=6ad1f928-50b9-4aea-9495-95df46d08d58 /test           ext3    relatime        0       2
I am a bit lost with all this partition numbers
Edit: foxy123 has a separate boot partition for his Karmic install as well, so his sda7 entry was correct. The following was written before I found out the separate test-boot partition was linked to the Karmic installation.

I believe the problem is with your partition numbers. First, a disclaimer. I'm relying on the comments in fstab being accurate. Since they aren't updated, they really can't be relied upon unless confirmed via "mount", "sudo blkid", or some other command. So I'm relying on sda6 being the correct partition number. I'm also making the assumption that the Karmic install is on sda6 and not sda7, since it is the sda6 UUID in the boot menu.

Grub 2 counts partitions a bit differently. sdXY, with X being the device (a,b,c) and Y being the partition number (1,2,3). The device starts counting at 0 - sda is device 0. The partitions (and this is a change) start counting at 1, so partition 1 is counted as 1. So sdb3 is device 1, partition 3.

In your setup, sda6 should be listed as (0,6). Try this as your Karmic entry and see if it works correctly. If it doesn't, confirm the device and UUID designations by running "sudo blkid -c /dev/null".

Quote:
menuentry "Ubuntu karmic (development branch), kernel 2.6.31-2-generic (on /dev/sda6)" {
set root=(hd0,6)
linux /boot/vmlinuz-2.6.31-2-generic root=UUID=6ad1f928-50b9-4aea-9495-95df46d08d58 ro quiet splash
initrd /boot/initrd.img-2.6.31-2-generic


Last edited by drs305; July 19th, 2009 at 11:49 AM..
drs305 is offline   Reply With Quote
Old July 18th, 2009   #6
methewjay
First Cup of Ubuntu
 
Join Date: Jul 2009
Beans: 3
Re: Grub 2 Basics

What about LILO?

You may have heard about another Linux bootloader called LILO (stands for LInux LOader). While a sensible option for many Linux users, I believe that GRUB is a better choice, for several reasons:
  • LILO supports only up to 16 different boot selections; GRUB supports an unlimited number of boot entries.
  • LILO cannot boot from network; GRUB can.
  • LILO must be written again every time you change the configuration file; GRUB does not.
  • LILO does not have an interactive command interface.
All in all, it seems that GRUB is the winner. So let's see what this baby can do.
__________________
http://www.indiaacademic.com/
methewjay is offline   Reply With Quote
Old July 18th, 2009   #7
foxy123
Dark Roasted Ubuntu
 
Join Date: Apr 2005
Beans: 1,101
Re: Grub 2 Basics

well, no luck. Same error. Also after I have it I cannot boot into Jaunty (same error) and have to reboot.

I have checked with sudo blkid -c /dev/null:

Code:
/dev/sda2: UUID="4d5250be-75cf-4ce4-9295-ae5e2cabd441" TYPE="swap" 
/dev/sda5: UUID="4802e809-ecaa-4932-bd01-4a816c0bbd4f" TYPE="ext3" - my /home partition
/dev/sda6: UUID="6ad1f928-50b9-4aea-9495-95df46d08d58" TYPE="ext3" - Karmic / partition
/dev/sda7: UUID="0c98fbe4-ed7c-4134-994a-07d49074e137" TYPE="ext2" - Karmic /boot partition
/dev/sda8: UUID="c3eb67b1-7f8f-419b-a462-c79a6c76e5de" TYPE="ext2" - Jaunty /boot partition
/dev/sda9: UUID="9018bfe2-9de3-4692-9883-fc2f875e6455" TYPE="ext3" - Jaunty / partition
In the Jaunty setup the menu points out to a /boot partition (sda8 c3eb67b1-7f8f-419b-a462-c79a6c76e5de). So I have to use something like:

Code:
menuentry "Ubuntu karmic (development branch), kernel 2.6.31-2-generic (on /dev/sda6)" {
	set root=(hd0,7)
	linux /boot/vmlinuz-2.6.31-2-generic root=UUID=0c98fbe4-ed7c-4134-994a-07d49074e137 ro quiet splash
	initrd /boot/initrd.img-2.6.31-2-generic
But it does not either
__________________
NEC Versa M400 Laptop, Intel Pentium 4 2.8GHz, 768Mb memory, 855GM Graphic Chip, RT2500 wireless chip
Ubuntu Karmic
foxy123 is offline   Reply With Quote
Old July 26th, 2009   #8
Fintan
Just Give Me the Beans!
 
Join Date: Oct 2004
Location: Switzerland
Beans: 48
Re: Grub 2 Basics

Thank you for the background information.

I am having a small issue I cannot figure out. It is not world stopping but annoying.

I have also posted this on the kubuntu forum as I am running Kubuntu but since we are all a family:
http://kubuntuforums.net/forums/inde...opic=3105336.0

To be short here, my issue is the following:
I have a ubuntu 9.04 and a kubuntu karmic partition with grub2 on a separate /boot.

The grub2 boot menu shows 2 ubuntu's.
One pointing to the swap partition the other going to the correct partition.

The details are on the link above.

Any help would be greatly appreciated

As some of mentioned that they cannot see the atch. on the kubuntu site I will add them here as well. sorry.
Attached Files
File Type: txt grubcfg.txt (2.5 KB, 13 views)
File Type: txt 30_os-prober.txt (4.4 KB, 13 views)

Last edited by Fintan; July 26th, 2009 at 10:25 AM..
Fintan is offline   Reply With Quote
Old July 26th, 2009   #9
glide
First Cup of Ubuntu
 
Join Date: Feb 2005
Location: Paris, France
Beans: 6
Ubuntu 9.04 Jaunty Jackalope
Send a message via Skype™ to glide
Post Re: Grub 2 Basics

Hi guys,

Pretty good guide, thanx.
I have a problem that many guys have aparently,
but I think it's not exactly about the same issue.
I get...
Quote:
Originally Posted by my computer
Invalid or unsupported executable format
... when I hit my Windows Grub launcher.

Here is my fdisk
Code:
Disque /dev/sda: 1000.2 Go, 1000204886016 octets
255 têtes, 63 secteurs/piste, 121601 cylindres, total 1953525168 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Identifiant de disque : 0x00063093

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sda1   *          63  1941455249   970727593+  83  Linux
/dev/sda2      1941455250  1953520064     6032407+   5  Etendue
/dev/sda5      1941455313  1953520064     6032376   82  Linux swap / Solaris

Disque /dev/sdb: 320.0 Go, 320072933376 octets
255 têtes, 63 secteurs/piste, 38913 cylindres, total 625142448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Identifiant de disque : 0x375e8732

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1   *          63    40965749    20482843+   6  FAT16
/dev/sdb2        40965750   625137344   292085797+   f  W95 Etendue (LBA)
/dev/sdb5        40965813   625137344   292085766    7  HPFS/NTFS

Disque /dev/sdc: 203.9 Go, 203928109056 octets
255 têtes, 63 secteurs/piste, 24792 cylindres, total 398297088 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Identifiant de disque : 0x16c175da

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdc1   *          63   398283479   199141708+   7  HPFS/NTFS
Here is my Windows Grub boot file section:

Code:
title           Microsoft Windows XP Professional
rootnoverify    (hd2,0)
savedefault
makeactive
map             (hd0) (hd2)
map             (hd2) (hd0)
chainloader     +1
My Windows system is actually located in sdc1.

Do somebody have a clue ?
glide is offline   Reply With Quote
Old July 26th, 2009   #10
drs305
Ubuntu addict and loving it
 
Join Date: Jan 2007
Beans: 6,015
Ubuntu 9.10 Karmic Koala
Re: Grub 2 Basics

Quote:
Originally Posted by glide View Post
My Windows system is actually located in sdc1.
Do somebody have a clue ?
Glide,

I don't have a lot of expertise with setting up dual boots with Windows - if it was something obvious and I had a solution I'd post it here.

It appears yours is a Grub legacy question. Since this thread was written about Grub 2, I suggest you create a new thread for your issue. It will get a bit confusing if we mix the two on this thread.

Thanks.
drs305 is offline   Reply With Quote

Bookmarks

Tags
grub 2, grub2, howto, intro

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 03:21 AM.


vBulletin ©2000 - 2009, Jelsoft Enterprises Ltd. Ubuntu Logo, Ubuntu and Canonical © Canonical Ltd. Tango Icons © Tango Desktop Project. lingonberry