GRUB 2 - A Guide for Users

Embed Size (px)

Citation preview

  • 8/6/2019 GRUB 2 - A Guide for Users

    1/36

    GRUB 2 A Guide for Users

    Updated: 9/11/09, 9/12/09, 9/20/09, 9/22/09, 9/23/09, 10/04/09, 10/6/09, 10/7/09, 10/9/09, 10/12/09 (Dual

    booting, drivemap in Reply #1), 12/4/09 (edited References)

    Bugs and Questions: See REFERENCES at the end.

    In Progress -- pending the completion of the GRUB 2 Manual: http://grub.enbug.org/Manual.

    GRUB 2 Practical Reminders (a cheat sheet for those who know what they are doing)See end of SECTION 4 Special Topics.

    Installing Kubuntu--GRUB 2 placement

    Telling the Live CD installer where to put GRUB 2

    -> See the Appendix

    New:

    Booting Windows XP on a non-first hard drive

    See Reply #1

    NEW Notes about some of the new GRUB 2 commands: See Reply #1

    NEW comment (10-0-09)

    update-grub vs grub-mkconfig

    It appears that update-grub has been replaced by grub-mkconfig.

    HOWEVER, it appears that update-grub works fine, at least in 9.10 Karmic.

    update-grub is usually easier to use.

    (To Do: Track the status of this)

    I have made the switch throughout the how-to (in the first post of this thread).

    Note: update-grub

    The command update-grub generates a new grub.cfg file and replaces the existing grub.cfg with the newly

    generated grub.cfg (by default).

    But, as explained next, you must specify the output file when using grub-mkconfig:Note that

    sudo grub-mkconfig

    prints its output to the screen (default = stdout).

    To print to the grub.cfg, use

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    or

    sudo grub-mkconfig --output=/boot/grub/grub.cfg

    - - - - - - - - - -

    TABLE of CONTENTS

    SECTION 1

    Introduction

    History: GRUB Legacy, GRUB 2

    Differences between GRUB Legacy and GRUB 2

    GRUB 2 commands

    Notes about some of the new GRUB 2 commands: See Reply #1

    SECTION 2

    Key Facts About the Boot menu, grub.cfg

    Quick version -- Overview -- Details

    /etc/grub/default --> /etc/grub.d --> /boot/grub/menu.lst

  • 8/6/2019 GRUB 2 - A Guide for Users

    2/36

    Rules for editing grub.cfg, /etc/default/grub, and the script files in /etc/grub.d

    GRUB 2 device numbering is different: Partitions start at 1

    Details

    SECTION 3 Fixing Things

    A checklist of things to try to fix a broken system

    A Troubleshooting Outline

    Ctrl+Alt+Del will reboot your PC

    Super Grub Disk: Very Important

    Key commands: grub-mkconfig and sudo grub-installTimeout & Default OS, changing

    Kernel options, changing

    To see or to hide the boot menu

    Missing OS entry in the boot menu

    Editing the boot menu during booting: "e" key

    The GRUB prompt grub> -- What to do with it

    => Getting information and booting an OS

    Re-installing GRUB 2 using Live CD: Key Rescue Method

    Using a Live CD to edit files in your OS

    SECTION 4

    Special TopicsInstalling GRUB 2 to your PC

    grub-install The most useful command

    The various types of command modes.

    "c," grub>, Konsole BASH, edit "e", emu

    TAB Completion

    How to get information about your drives and devices

    At Konsole : sudo fdisk -lu

    At the GRUB 2 prompt: grub> ls

    Boot menu: Adding or removing an OS entry

    Boot menu: Create a custom boot entry

    Boot menu: Making your own custom grub.cfg

    Boot menu: Changing resolution, text colors, setting background image4 ways to boot an OS: configfile, symlinks, direct booting, chainloader

    Boot menu: Background image editing tip for those with widescreen monitors

    Dedicated GRUB 2 partition: How to build it

    GRUB 2 Flashdrive: How to build it

    Use of the term "root"

    GRUB's Root Device, the Linux statement: root=UUID=,

    --root-directory=DIR INSTALL_DEVICE

    Dual booting: See Reply #1

    Booting XP on a non-first hard drive (drivemap): See Reply #1

    Cheat sheet: GRUB 2 Practical Reminders

    Appendix: Techniques

    --- Installing Kubuntu--GRUB 2 placement

    --- Working as root, editing a file

    --- Permissions: read, write, execute; change the execute bit

    --- Chroot -- how to

    References and Tutorials

    See also REPLY #1 below this post for more GRUB 2 topics:

  • 8/6/2019 GRUB 2 - A Guide for Users

    3/36

    Notes about some of the new GRUB 2 commands

    Included: chainloader, ls, grub-emu, grub-mkconfig (many tips!), root, rootnoverify (is gone), grub-setup

    grub-install: See SECTION 4 above.

    drivemap: See Reply #17 below; See Reply #1

    loopback: See Boot From ISO (below)

    Dual booting: How to set it up

    Installing two or more Linux operating systems

    RECOMMENDED METHOD

    PROBLEMSMessing up the booting -- fixing GRUB without re-installing Kubuntu

    Windows topics

    Installing XP (or 7? or Vista?) & Kubuntu:

    How to set up dual booting (recommended outline)

    Re-installed XP and now can't boot Kubuntu

    XP on a non-first hard drive: (hdx,y), x > 1

    Booting XP on a non-first hard drive

    The drivemap command in GRUB 2

    Boot From ISO -- use of GRUB 2 loopback

    Boot your Kubuntu Live CD ISO from your flashdrive

    GPT: GUID Partition Table

    ... for Kubuntu 9.10 and GRUB 2

    => Overcoming the "2 TB disk size limit"associated with the conventional MBR

    => Testing GRUB 2 on your GPT-partitioned flash drive

    = = = = = = = = = = = = = = = = = = = =

    SECTION 1

    Introduction

    History: GRUB Legacy, GRUB 2Differences between GRUB Legacy and GRUB 2

    GRUB 2 commands

    Notes about some of the new GRUB 2 commands: See Reply #1

    History: GRUB Legacy, GRUB 2

    "Briefly, boot loaderis the first software program that runs when a computer starts. It is responsible for loading and

    transferring control to the operating system kernel software (such as the Hurd or the Linux). The kernel, in turn,

    initializes the rest of the operating system (e.g. GNU)." (gnu.org)

    The original GRUB (GRand Unified Bootloader) was developed by Erich Stefan Boleyn, from which came the GRUB

    most of us know, GRUB version 0.9x, and that is now referred to as GRUB Legacy (or even GRUB 1 by some writers).GRUB 2 replaces GRUB Legacy. (GRUB 2 is actually the end result of versions GRUB 1.xx; e.g., 1,96, 1.97, ...)

    For the history of GRUB and some interesting links, see

    http://www.gnu.org/software/grub/

    GRUB 2 is cleaner, more efficient, powerful, and more elegant, in many ways it is simpler to use than GRUB Legacy.

    GRUB 2: http://www.gnu.org/software/grub/grub-2.en.html

    Its mailing list for development,

    GRUB-devel: http://lists.gnu.org/mailman/listinfo/grub-devel

    And the Wiki: http://grub.enbug.org/

  • 8/6/2019 GRUB 2 - A Guide for Users

    4/36

    GRUB 2 is the default bootloader in 9.10

    https://lists.ubuntu.com/archives/ubuntu-devel-announce/2009-June/000573.html

    Differences between GRUB Legacy and GRUB 2

    From the user's view, the biggest difference between the two versions of GRUB concerns the boot menu

    configuration file.

    GRUB 2: /boot/grub/grub.cfg

    GRUB Legacy: /boot/grub/menu.lstThe configuration file is used to generate the boot menu you see at boot time.

    In GRUB Legacy, you can edit menu.lst directly and in any way you wish.

    In GRUB 2, you should not edit grub.cfg directly. Instead, you edit the file /etc/default/grub (which contains some

    default settings); this file feeds data to scripts in the folder /etc/grub.d. And you may edit the scripts (text files) in

    the folder /etc/grub.d; these scripts are used to generate the configuration file /boot/grub/grub.cfg. When you

    need a new grub.cfg, simply do sudo grub-mkconfig -o /boot/grub/grub.cfg.

    It is conceptually simple in GRUB 2:

    You can edit the file /etc/default/grub and you can edit the scripts in /etc/grub.d, then run the command sudo grub-

    mkconfig -o /boot/grub/grub.cfg, and the file grub.cfg is automatically generated.

    The configuration file in GRUB 2 grub.cfg looks different than the GRUB Legacy menu.lst. For example, in GRUBlegacy, you use

    default 0

    timeout 5

    In GRUB 2, default and timeout are variables, and it is

    set default=0

    set timeout=5

    A boot entry in GRUB Legacy menu.lst might look like this:

    title Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic

    root (hd1,2)

    kernel /boot/vmlinuz-2.6.24-24-generic root=UUID=0df17bc5-0056-4ef7-bfca-251194b6eb44 ro quiet splash

    initrd /boot/initrd.img-2.6.24-24-generic

    In GRUB 2 grub.cfg, it would look like this:

    ### BEGIN /etc/grub.d/10_Linux ###

    menuentry "Ubuntu 8.04.3 LTS, kernel 2.6.24-24-generic" {

    set root=(hd1,2)

    linux /boot/vmlinuz-2.6.24-24-generic root=UUID=0df17bc5-0056-4ef7-bfca-251194b6eb44 ro quiet splash

    initrd /boot/initrd.img-2.6.24-24-generic

    }

    ### END /etc/grub.d/10_Linux ###

    Note how the title line is changed in GRUB 2: Use menuentry instead, put the text in quotes, and start the bootentry with a left brace {, ending it with a right brace }. Instead of kernel, the word linux is used; initrd is the same.

    Instead of root=, in GRUB 2 it is set root= (in GRUB 2, root is a variable).

    sudo grub does not get you a GRUB 2 shell at Konsole

    In GRUB Legacy, the user may open a GRUB shell by typing sudo grub, and then use it to install/re-install GRUB (root-

    setup-quit) to a Master Boot Record or to a partition boot sector. In GRUB 2, there is no such option. Instead, the

    key command is the Konsole (BASH) command grub-install. At Konsole, as root, you will use sudo grub-install to

    install/re-install GRUB 2 to a Master Boot Record or to a partition boot sector.

    Device names have changed. In GRUB Legacy, the numbering of both hard drives and partitions start at zero.

    (hd0,0) is the first hard drive (hd0), the first partition (partition zero). In GRUB 2, the numbering of hard drives also

  • 8/6/2019 GRUB 2 - A Guide for Users

    5/36

    starts at zero: hd0 is the first hard drive. But partition numbering starts at 1: (hd0,1) is the first hard drive, the first

    partition (partition one).

    In GRUB Legacy, we use the find command; e.g., grub>find /boot/grub/menu.lst. In GRUB 2, the search command

    replaces the find command: grub>search /boot/grub/grub.cfg.

    In GRUB Legacy, the geometry command (at the grub> prompt) is very useful for listing devices as GRUB sees them

    on your PC. It is not used in GRUB 2. Instead the list command ls (at the grub> prompt) replaces the geometry

    command.

    GRUB Legacy uses stages: stage_1, stage_1.5, and stage_2. Those are replaced in GRUB 2 by boot.img (a 512-byte

    file that corresponds to stage_1 and is installed to a MBR); there is no stage_1.5 in GRUB 2; and core.img in GRUB 2

    takes the place of stage_2 (or, perhaps, of both stage 1.5 and stage_2). Details: See Section 4 the subsection "grub-

    install: A key command."

    GRUB 2 Commands -- compared to GRUB Legacy

    Comparison chart:

    http://grub.enbug.org/CommandList

    Key useful items to note:

    GRUB Legacy GRUB 2

    find is replaced with search

    geometry is gone and replaced by ls

    kernel (in menu.lst) is replaced by linux (and other terms for different OSs)

    title (in menu.lst) is replaced by menuentry (in grub.cfg)

    root is still used but is now a variable

    setup is gone; the work is done by grub-install

    map is replaced by drivemap

    device is replaced by loopback (makes a drive out of a file)

    set is a GRUB 2 term used to set a variable

    Notes about some of the new GRUB 2 commands: See Reply #1

    = = = = = = = = = = = = = = = = = = = =

    = = = = = = = = = = = = = = = = = = = =

    SECTION 2 Key Facts About the Boot menu, grub.cfg

    Quick version -- Overview -- Details

    /etc/grub/default --> /etc/grub.d --> /boot/grub/menu.lst

    Rules for editing grub.cfg, /etc/default/grub, and the script files in /etc/grub.d

    GRUB 2 device numbering is different: Partitions start at 1

    Details

    Quick version:/etc/grub/default --> /etc/grub.d --> /boot/grub/menu.lst

    Rules:

    -- The file /boot/grub/grub/cfg generates the boot menu.

    -- Do not directly edit /boot/grub/grub/cfg.

    -- You may edit (as root) /etc/default/grub.

    (timeout, default OS, kernel options, resolution of the boot menu)

    -- You may edit (as root) the scripts in /etc/grub.d.

    -- Together, /etc/default/grub and the scripts in /etc/grub.d generate /boot/grub/grub.cfg.

    -- To create a script, start with a text file as root: kdesudo kate

    -- To makefilename executable: sudo chmod 744 /etc/grub.d/filename

    or, sudo chmod +x /etc/grub.d/filename

  • 8/6/2019 GRUB 2 - A Guide for Users

    6/36

    -- To remove execute permission fromfilename: sudo chmod -x /etc/grub.d/filename

    -- To open Konqueror (Dolphin) as root: kdesudo konqueror

    -- Generate a new configuration file /boot/grub/grub.cfg after editing /etc/default/grub and after editing, creating,

    or deleting scripts in /etc/grub.d, as follows:

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    Examples of grub.cfg

    http://svn.savannah.gnu.org/viewvc/trunk/grub2/docs/grub.cfg?root=grub&view=markup

    Or: /usr/share/doc/grub-pc/examples/grub.cfg.

    Also: http://grub.enbug.org/grub.cfgAlso: GRUB 2 Basics http://ubuntuforums.org/showthread.php?t=1195275

    GRUB 2 device numbering is new: Partitions y start at 1

    In GRUB 2 (as in GRUB Legacy), hard drives start at zero: hd0 is the first hard drive. In GRUB 2 (unlike GRUB Legacy),

    partition numbering starts at 1: (hd0,1) is the first partition in the first hard drive; (hd0,2) is the second partition in

    the first hard drive; (hd1,2) is the second partition in the second hard drive.

    Linux device notation is the same as in GRUB Legacy

    sda is the first hard drive; sdb is the second hard drive; sdc is the third; etc.

    sda1 is the first partition of the first hard drive; sda2 is the second partition of the first hard drive; etc.

    Details

    The configuration file is called /boot/grub/grub.cfg, and it generates the boot menu you see on your screen when

    you boot your PC (and so, /boot/grub/grub.cfg can be called the boot menu configuration file). You are NOT

    supposed to edit it (it is read-only). It is generated from a folder of scripts called /etc/grub.d. Another key file is

    /etc/grub/default and it feeds default data to the scripts in /etc/grub.d. You may edit /etc/grub/default (as root).

    You may also edit the scripts in /etc/grub.d (as root). If you create a new file in /etc/grub.d, you must make it

    executable if you want the entry included in the configuration file grub.cfg. If you do not want a script to execute

    (and so remove that entry from grub.cfg), you must remove the execute bit (i.e., remove the execute permission).

    >>> Key reminder:

    Generate a new grub.cfg after changing anything in /etc/default/grub or /etc/grub.d by:grub-mkconfig -o /boot/grub/grub.cfg

    Experts: Editing grub.cfg

    The file is read-only, so change permission to include Write:

    sudo chmod +w /boot/grub/grub.cfg

    Then do the edits as root and Save. When grub-mkconfig is run, the file returns to read-only (chmod 444 or 400),

    AND your edits may be overwritten (and therefore gone).

    Optional: After editing, restore permissions to disallow writing:

    sudo chmod -w /boot/grub/grub.cfg or

    sudo chmod 444 /boot/grub/grub.cfg

    The default settings file /etc/grub/default

    This file feeds data to the scripts in /etc/grub.d. It contains the Default operating system, the Timeout, kernel

    options, resolution of the graphical boot menu, and other default settings. You may edit this file with root privileges.

    The folder of scripts /etc/grub.d

    These scripts generate /boot/grub/grub.cfg when the grub-mkconfig command is run (as root). The order of the

    entries in grub.cfg corresponds to the order of the files in /etc/grub.d, starting with 00_header, then 01_scriptname,

    etc., through all files starting with NN_ where NN is a 2-digit number and _ is the underscore (Shift+(minus sign));

    then comes scripts whose names start with a letter (e.g., a_anotherscript).

    You may edit the script files (as root) or create new ones. To create a new entry in grub.cfg, you simply create a new

  • 8/6/2019 GRUB 2 - A Guide for Users

    7/36

    script file: a text file that you make executable (like a program). To remove an entry from grub.cfg, remove the

    execute permission from the corresponding script file in /etc/grub.d. (If the entry corresponds to a custom script

    you wrote, you may also delete that script file from /etc/grub.d).

    See SECTION 4 Special Topics -- Create a custom boot entry.

    Editing the script files in /etc/grub.d:

    Do your work as root.

    To make the file /etc/grub.d/filename executable:

    sudo chmod 744 /etc/grub.d/filename

    To remove the execute bit from the filefilename:sudo chmod -x /etc/grub.d/filename

    When done, run

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    to generate a new boot menu configuration file /boot/grub/grub.cfg.

    GUI: How to set permissions

    Open Konqueror or Dolphin as root (e.g., kdesudo konqueror).

    Open the file.

    Right-click > Properties > Permissions, Advanced Permissions

    Tip: To open a file in /etc/grub.d (as root)

    The files in /etc/grub.d are scripts. So, as root, if you click on one, it will want to execute or run like a program.

    Instead, to open a script for editing/viewing, right-click on the script file, Open With Kate or Kwrite. That opens thefile as a text file. Now you can read it or edit it.

    Details:

    GUI, working as root: Open Konqueror (Dolphin) as root and work from there:

    kdesudo konqueror

    CLI, working as root: kdesudo kate /etc/grub.d/script_name

    Quick reference

    The (standard) files in /etc/grub.d (each is a script) are:

    00_header

    05_debian_theme: Set background, text colors, themes

    10_hurd Locates Hurd kernels10_linux Locates Linux kernels based on results of the lsb_release command.

    The target are kernels located on the same partition as the root partition

    of the current OS you are in (where this grub.cfg is located).

    In contrast to: 30_os-prober (see below)

    20_memtest86+: If the file /boot/memtest86+.bin exists, it is included in the boot menu.

    30_os-prober: Searches for Linux and otherOS's on allpartitions; includes them in the boot menu.

    40_custom: A template for adding custom boot menu entries.

    See Appendix: permissions, working as root, making a file executable, Konsole, and other topics.

    = = = = = = = = = = = = = = = = = = = == = = = = = = = = = = = = = = = = = = =

    SECTION 3 Fixing Things

    A checklist of things to try to fix a broken system

    A Troubleshooting Outline

    Ctrl+Alt+Del will reboot your PC

    Super Grub Disk: Very Important

    Key commands: grub-mkconfig and sudo grub-install

    Timeout & Default OS, changing

    Kernel options, changing

    To see or to hide the boot menu

    Missing OS entry in the boot menu

  • 8/6/2019 GRUB 2 - A Guide for Users

    8/36

    Editing the boot menu during booting: "e" key

    The GRUB prompt grub> -- What to do with it

    => Getting information and booting an OS

    Re-installing GRUB 2 using Live CD: A Key rescure method

    Using a Live CD to edit files in your OS

    Troubleshooting Outline

    When you can't boot into your OS, there are two possible causes:the boot menu is flawed, and/or

    the GRUB 2 installation is flawed.

    To fix it, you have two choices:

    boot into the OS somehow and fix it;

    or

    fix it from outside the OS (e.g., live CD, another OS, or live flash drive).

    Before looking at these two choices, note two important things:

    > To fix the boot menu means to fix its configuration file /boot/grub/grub.cfg. You can sometimes do that

    temporarily using the edit-on-the-fly "e" key (see subsection below). To fix it permanently, you do NOT edit grub.cfg

    directly; but rather you edit the file /etc/default/grub and/or you edit the script(s) in /etc/grub.d, and then you usethe command grub-mkconfig to generate a new grub.cfg.

    > To fix the GRUB 2 installation, that usually means re-installing GRUB 2 using, at Konsole, the command grub-

    install. You can do this from inside the OS (if you can boot into it somehow), or from a Live Kubuntu CD or from

    another Linux OS on your hard drive. You cannot do it from the GRUB 2 prompt (grub>) when booting the PC. (In

    GRUB Legacy, you could do it by getting the grub> prompt and using the root and setup commands.)

    Now let's look at each of your two choices for fixing the problem.

    --> How to boot into your OS when you can't seem to boot into your OS:

    (1) SGD, or (2) use the grub>, or (3) use the "e" key.

    Some tips and details:

    > Use Super Grub Disk to boot into it. You may have SGD fix the boot (under GNU/Linux options), or simply use SGD

    to boot the OS so you can get into it. If you use SGD to fix the boot, it will re-install GRUB to your drive, so make sure

    that's what you want; also, it may do so using either GRUB Legacy or GRUB 2, depending on the SGD CD version you

    are using. Of course, if you can get booted into the OS, then you can fix anything and everything, so maybe you

    won't be feeling too picky at this point.

    Note: Along these lines, you can also use your own GRUB 2 disk/flashdrive to boot your OS, if you built one.

    > Boot into your OS yourself, manually, using the GRUB 2 prompt, grub>, ASSUMING you can get the prompt!

    (Sometimes, you can't.) See the Subsection below titled "The GRUB prompt grub> -- What to do with it."

    > Boot into your OS yourself by fixing the boot menu (editing it "on-the-fly" using the "e" key when you see it on the

    screen). But sometimes, you don't see the boot menu. See the Subsection below titled "Editing the boot menuduring booting: 'e' key" If you are successful, since these "e" edits are only temporary, after booting into the OS, you

    must make the changes permanent (by editing /etc/default/grub or the script(s) in /etc/grub.d and then generate a

    new grub.cfg using grub-mkconfig -o /boot/grub/grub.cfg.

    --> How to fix the problem from outside the OS:

    (1) Use a Live CD, or (2) Fix it from another OS.

    Some details:

    > Use a Live CD.

    From a Live Kubuntu CD (or most any live Linux CD), you can re-install GRUB and/or perform edits on files

  • 8/6/2019 GRUB 2 - A Guide for Users

    9/36

    (/etc/default/grub or the script(s) in /etc/grub.d). See the subsections below: "Re-installing GRUB 2 using Live CD:

    Key Rescue Method" and "Using a Live CD to edit files in your OS."

    > Fix the problem from another Linux OS, ASSUMING you are able to boot into one!

    From there, you can edit files in your broken OS and/or re-install GRUB 2 using grub-install.

    (NOTE: From the second OS, or even from a Live CD, you'd have to mount the broken OS partition; or perhaps

    looking in your file manager you'd see it is automatically mounted for you.)

    [End of Troubleshooting Outline]

    Ctrl+Alt+Del will reboot your PC

    If your PC freezes up during the experiments/testing/troubleshooting of your bootloader, use Ctrl+Alt+Del to re-

    boot the PC. Be prepared to do something, though!

    Examples of what to do:

    -- Before using Ctrl+Alt+Del, put the Super Grub Disk CD in the CD tray so you can re-boot to it and rescue your OS.

    -- Be prepared to press the key required to enter your BIOS setup. That will buy you some time, or give you a

    chance to change hard drive booting order, or put a live CD or SGD in the CD tray, or get your notes ready, etc.

    -- If you have been getting a boot menu, let the PC reboot into it, then enter Edit mode (pressing the "e" key) or

    enter the GRUB 2 CLI (pressing the key "c"), then try to fix things from there.

    Super Grub Disk: Very Important

    Whether you think you need it or not, get it now, free, as a bootable CD which will get you booted into your

    operating system in case you can't. SGD can be downloaded here: http://www.supergrubdisk.org/ . Look for a CD

    ROM iso version, download it, burn it as an iso image to a CD (using K3b), test it briefly (by running it and stepping

    through a few menus but not choosing anything; then Quit; or, use it to boot into your OS).

    Tip (using SGD to boot into your broken OS)

    Choose GNU/Linux > Fix Boot, then select the broken partition.

    Should you decide to simply Quit the SGD (without doing anything), do so, select reboot, enter your BIOS setup,

    remove the SGD CD, exit BIOS, and continue rebooting.

    Key commands: sudo grub-mkconfig and sudo grub-install

    Use these two commands to "freshen up" your GRUB 2 installation.

    grub-mkconfig: builds a new boot menu configuration file boot/grub/grub.cfg.

    grub-install: builds a complete, fresh GRUB 2 installation, including /boot/grub/grub.cfg.

    grub-mkconfig

    will generate a new boot menu /boot/grub/grub.cfg. To do so, it uses /etc/default/grub and the scripts in

    /etc/grub.d. You should run this command after editing the default file or the scripts:

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    or

    sudo grub-mkconfig --output= /boot/grub/grub.cfgSee Reply #1 (to this post): Notes about some of the new GRUB 2 commands

    sudo grub-install [INSTALL_ DEVICE]

    installs or re-installs GRUB 2 to INSTALL_DEVICE.

    See SECTION 4: grub-install: A key command

    For now, here's some highlights.

    sudo grub-install /dev/sda

    installs GRUB 2 to the Master Boot Record of drive sda. And

    sudo grub-install /dev/sda1

  • 8/6/2019 GRUB 2 - A Guide for Users

    10/36

    installs GRUB 2 to the boot sector of the partition sda1.

    In doing so, grub-install does a complete job of setting up everything.

    Here's what it does: It builds the directory /boot/grub (if it doesn't already exit), copies GRUB 2 files to it from the

    "master" image directory /usr/lib/grub/i386-pc, probes your drives and devices and partition table, makes a new

    device.map, builds and installs boot.img (to MBR) and core.img, and builds /boot/grub/grub.cfg.

    > Man page: (8)GRUB-INSTALL - Install GRUB on your drive.

    http://grub.enbug.org/FranklinPiat/grub-install.manpage

    Troubleshooting-- After running grub-mkconfig, make sure that the line set default=(hdx,y) is correct (i.e., that the order of the

    menuentries did not change the default OS position).

    -- sudo grub-install --recheck [INSTALL_DEVICE]

    => If you get an error running sudo grub-install, try it again with sudo grub-install --recheck [INSTALL_DEVICE].

    Timeout and Default OS, changing

    The timeout is the length of time in seconds before the (highlighted) default OS is automatically booted (if you do

    not intervene by touching a key). To change these values, open the file /etc/default/grub as root, make the changes,

    Save, exit, then generate a new /boot/grub/grub.cfg by running sudo grub-mkconfig -o /boot/grub/grub.cfg.

    Opening /etc/default/grub as rootIf your file manager supports it, open the file manager, navigate to /etc/default/grub, right-click on the file, Actions,

    Edit as Root. Otherwise:

    Open the file manager as root and work from there:

    kdesudo konqueror

    kdesudo dolphin

    Or, open the file as root using Kate or Kwrite:

    kdesudo kate /etc/default/grub

    Example

    GRUB_DEFAULT=0

    GRUB_TIMEOUT=5

    GRUB_DEFAULT=0 selects boot entry #0 (i.e., the first entry) as the default OS to be booted automatically. Boot

    entries can be seen in your /boot/grub/grub.cfg file; they start with a line

    menuentry "some descriptive text" {

    and end with

    }

    Boot entries are counted from zero; so the first menuentry is boot entry #0, the second menuentry is boot entry #1,

    etc.

    Troubleshooting Tip: Check default OS setting after grub-mkconfig

    If you recently added/removed a boot entry (by editing a /etc/grub.d script) and ran grub-mkconfig to generate a

    new boot menu, you might have to check and edit the line "GRUB_DEFAULT= " (in /etc/default/grub) if the defaultsequence number changed.

    (TO DO: Check also: sudo grub-set-default N.)

    Kernel options, changing

    To change these values, open the file /etc/default/grub as root, make the changes, Save, exit. (See Timeout and

    Default OS above for editing tips.) The line in /etc/default/grub looks like this (or similar):

    GRUB_CMDLINE_LINUX="quiet splash"

  • 8/6/2019 GRUB 2 - A Guide for Users

    11/36

    To see or to hide the boot menu

    Look for this line in the file /etc/default/grub:

    # GRUB_HIDDEN_TIMEOUT=0

    With the # sign present, you will see the boot menu upon booting your PC.

    With the # removed, you will not see the boot menu.

    For a detailed explanation of the other ways this works, see

    GRUB 2 Basics drs305

    http://ubuntuforums.org/showthread.php?t=1195275

    Missing OS entry in the boot menu

    If you run grub-mkconfig, and there is a missing entry in your boot menu, you can add that entry as a custom entry.

    See SECTION 4 below, Special Topics Boot menu: Create a custom boot entry.

    Editing the boot menu during booting using the "e" key

    When you boot/re-boot your PC, the boot menu appears. If you select an entry (an OS to boot into) and get an

    error, and if you are able to return to the boot menu (or re-boot again to get it), you may be able to fix things or to

    experiment with your boot menu to see if something will work. See the help tips at the bottom of the boot menu.

    At the boot menu, highlight an entry, press the "e" key, and you'll see the menuentry statements for that OS. Seethe help tips at the bottom of that menu. If you highlight a line, press the "e" key, that line will be displayed so you

    can edit it (using arrow keys, delete, etc.). Pressing ESC returns you to the previous screen.

    The edits you make to the boot menu are "on-the-fly" edits and are not permanent. To make them permanent,

    you'll have to edit /etc/default/grub and/or the script files in /etc/grub.d, perhaps even making a custom boot entry

    if necessary (SECTION 4 Special Topics Boot menu: Create a custom boot entry), then generate a new

    /boot/grub/grub.cfg file using grub-mkconfig.

    The GRUB prompt grub> -- What to do with it

    => Getting information and booting an OS

    You may get the GRUB prompt grub> in three ways:

    > "c" key: You re-boot and upon seeing the boot menu, press the "c" key to get the grub>. (Or Control+c at the

    Edit mode menu.) (By pressing the ESC key, you get back to the boot menu.)

    Or:

    > No boot menu! Perhaps, you re-booted your PC and didn't see any boot menu but instead got dropped to the

    GRUB 2 prompt: grub>.

    Or:

    > You get a grub> when re-booting using your own GRUB 2 flash drive (which is what is usually supposed to

    happen!).

    From the grub> prompt, you may be able to issue commands tohelp you gather information about your drives

    or

    boot your computer.

    Use these resources:

    SECTION 4 Special Topics, the subsection

    "4 ways to boot an OS" -- direct booting configfile, symlinks, chainloader

    SECTION 4 Special Topics, the subsection

    "How to get information about your drives and devices"

    => In particular, take special note of the ls command and the use of TAB completion.

  • 8/6/2019 GRUB 2 - A Guide for Users

    12/36

  • 8/6/2019 GRUB 2 - A Guide for Users

    13/36

    Re-installing GRUB 2 using Live CD: Key Rescue Method

    There are two main ways of doing this: By chrooting into the broken partition and by not chrooting. For the

    chrooting way, see GRUB 2 Live CD Install Guide: http://grub.enbug.org/Grub2LiveCdInstallGuide For details about

    chrooting, see the Appendix in the first post (above).

    For "my" way, I'll call "Method 1," of re-installing GRUB2 from a live CD, read on.

    Method 1: Installing or re-installing GRUB 2 using a Live CD

    Your Kubuntu Live CD contains GRUB 2 files; specifically, in a live session, you will find the master GRUB 2 "image"

    files in /usr/lib/grub/i386-pc. Thus, they can be used to install or re-install GRUB 2. Here's how ...

    Start your Kubuntu Live CD.

    Choose the option to try Kubuntu without installing.

    Open Konsole (Terminal): K-Menu > System > Konsole

    Explore your partitions using

    sudo fdisk -lu

    Determine your root partition. In this example, ours is sda2.

    Make a mount point (directory) for partition sda2:

    sudo mkdir /media/sda2Mount sda2 on the mount point:

    sudo mount /dev/sda2 /media/sda2

    Make a mount point (directory) for /dev:

    sudo mkdir /media/dev

    Mount the devices in your Live CD session:

    sudo mount --bind /dev /media/dev

    Install (or re-install) GRUB 2 (into the MBR of drive sda) using the GRUB 2 files in sda2:

    sudo grub-install --root-directory=/media/sda2 /dev/sda

    You may get this error:

    grub-probe: error: Cannot find a GRUB drive for /dev/sda2. Check your device.map.

    Auto-detection of a filesystem module failed.Please specify the module with the option `--modules' explicitly.

    If so, try this:

    sudo grub-install --recheck --root-directory=/media/sda2 /dev/sda

    Maybe you'll get lucky and see this:

    Installation finished. No error reported.

    This is the contents of the device map /media/sda2/boot/grub/device.map.

    Check if this is correct or not. If any of the lines is incorrect,

    fix it and re-run the script `grub-install'.

    (hd0) /dev/sda

    (=> and so this was successful)

    Then, unmount both filesystems:

    sudo umount /dev/sda2 /media/sda2

    sudo umount /dev /media/dev

    Leave Konsole:

    exit

    Test it:

    Exit out of the Live CD, reboot, see if you fixed your booting problem (by booting into the broken partition).

    [End of Method 1]

    - - - - - - - - - -

  • 8/6/2019 GRUB 2 - A Guide for Users

    14/36

    Using a Live CD to edit files in your OS

    This is done as you would normally do it. Of course, if you wish, you may use Super Grub Disk to boot into your OS

    and do the editing from there. Here is an outline of a standard way to use your Kubuntu Live CD.

    Boot the Live Kubuntu CD, open Konsole, then as root make a directory, mount the filesystem containing the file you

    need to edit, open that file (possibly as root), edit it, save, quit, unmount the filesystem, exit.

    Example

    If the file you need to edit is called file_name and is on sdb3 (=(hd1,3)), start a Live CD Kubuntu session, openKonsole:

    sudo fdisk -lu # to see/check your partitions, if necessary

    Make a directory called /media/sdb3:

    sudo mkdir /media/sdb3

    Mount device sdb3 on directory /media/sdb3:

    sudo mount /dev/sdb3 /media/sdb3

    Change to that directory:

    cd /media/sdb3

    Then you may proceed in various ways:

    Open Konqueror/Dolphin as root, then open the file_name:

    in 8.10 or later: kdesudo konqueror (or dolphin)

    in 8.04: kdesu konqueror (dolphin)Make your edits, then File > Save, File > Quit.

    Or, open file_name as root using Kate, then do the edits:

    in 8.10 or later: kdesudo kate /path_to file_name

    in 8.04: kdesu kate /path_to file_name

    Make your edits, then File > Save, File > Quit

    Unmount the directory; note the spelling of umount:

    sudo umount /media/sdb3

    = = = = = = = = = = = = = = = = = = = =

    = = = = = = = = = = = = = = = = = = = =

    SECTION 4Special Topics

    Installing GRUB 2 to your PC

    grub-install The most useful command

    The various types of command modes.

    "c," grub>, Konsole BASH, edit "e", emu

    TAB Completion

    How to get information about your drives and devices

    At Konsole : sudo fdisk -lu

    At the GRUB 2 prompt: grub> ls

    Boot menu: Adding or removing an OS entry

    Boot menu: Create a custom boot entry

    Boot menu: Making your own custom grub.cfgBoot menu: Changing resolution, text colors, setting background image

    4 ways to boot an OS: configfile, symlinks, direct booting, chainloader

    Dedicated GRUB 2 partition: How to build it

    GRUB 2 Flashdrive: How to build it

    Use of the term "root"

    GRUB's Root Device, the Linux statement: root=UUID=,

    --root-directory=DIR INSTALL_DEVICE

    Dual booting: How to set it up

    Booting XP on a non-first hard drive: The drivemap command in GRUB 2

    Cheat sheet: GRUB 2 Practical Reminders

  • 8/6/2019 GRUB 2 - A Guide for Users

    15/36

    - - - - -

    Installing GRUB 2 To Your PC

    To install GRUB 2 to your PC so it boots your PC into your OSs, two steps are required.

    1 You need to get the GRUB 2 files installed to your PC, somewhere in the Kubuntu filesystem.

    2 Then use those GRUB 2 files to install GRUB 2 to your PC's drives or devices so it can serve as a bootloader to boot

    your PC into your Kubuntu and your other OSs.

    Step 1: Get the GRUB 2 files

    Install the GRUB 2 package in your Kubuntu OS using your package manager. Or, at Konsole, issue the following

    command:

    sudo apt-get install grub-pc

    Check it: Open your file manager (Konqueror or Dolphin or other), and see the GRUB 2 files under

    /usr/lib/grub/i386-pc (called the GRUB 2 image directory, and contains a set of "master" GRUB files).

    Step 2: Install the GRUB 2 files so they serve as a bootloader

    Suppose your first BIOS boot drive is sda (as seen in Kubuntu using at Konsole the command sudo fdisk -lu). Then,

    install GRUB 2 to the Master Boot Record of sda:

    sudo grub-install /dev/sda

    This also copies the GRUB 2 files into /boot/grub.

    Then to generate a fresh boot menu configuration file (/boot/grub/grub.cfg), run

    sudo grub-mkconfig -o /boot/grub/grub.cfg.

    More Details About This

    CAUTION, fair warning:

    Have a bootable Super Grub Disk CD handy in case this messes up booting your PC.

    To install GRUB 2 files to your PC, open Konsole and run the commands

    sudo apt-get updatesudo apt-cache search grub-pc

    (returns: grub-pc - GRand Unified Bootloader, version 2 (PC/BIOS version))

    sudo apt-get install grub-pc

    Then, install GRUB 2 to the Master Boot Record of your first BIOS boot drive. For example, if that MBR is sda, the

    command would be

    sudo grub-install /dev/sda

    And then update grub.cfg:

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    Reboot to see what happens.

    The old GRUB may also still be there (in which case you saw an entry on the boot menu to chainload into GRUB 2), in

    which case you may run

    sudo update-from-grub-legacyto replace GRUB Legacy with GRUB 2 IF YOU WISH TO DO SO.

    Troubleshooting

    Installing GRUB 2 to the MBR: using --recheck

    Example

    sudo grub-install /dev/sda

    grub-probe: error: cannot find a GRUB drive for /dev/sda.

    Auto-detection of a filesystem module failed.

    Please specify the module with the option `--modules' explicitly.

    So, try this:

    sudo grub-install --recheck /dev/sda

  • 8/6/2019 GRUB 2 - A Guide for Users

    16/36

  • 8/6/2019 GRUB 2 - A Guide for Users

    17/36

  • 8/6/2019 GRUB 2 - A Guide for Users

    18/36

    -- Konsole (BASH), in Kubuntu, at your regular prompt (as root), ~#:

    -- GRUB 2 emu (from Konsole, issue sudo grub-emu [OPTION]; this gives you a grub> prompt)

    =>TODO: More on this later.

    -- GRUB 2 command line interface (CLI), grub>.

    When you re-boot your PC, get the boot menu, and press the "c" key, you get a GRUB 2 prompt, grub>. That is the

    GRUB 2 CLI. You will also get "grub>" upon re-booting if you don't have a boot menu, grub.cfg, or if your boot menu

    is broken. (See SECTION 3, the subsection titled "The GRUB prompt grub> -- What to do with it")

    -- Edit mode. Editing on the fly: when you re-boot and see your GRUB 2 boot menu, you can use the "e" key to edit

    your boot menu on a temporary basis (the edits are not permanent unless you later make them so). (See SECTION 3

    -- Editing the boot menu during booting: "e" key.)

    => In all cases, help is nearby, and the commands are generally the same (or nearly so) in all modes, with a few

    differences.

    Help

    Konsole BASH CLI:

    Appending --help to a command in CLI; for example: grub-mkconfig --help.

    GRUB CLI (grub>):

    At the GRUB 2 prompt simply type help and press Enter.

    To get help with a command, type help .

    Example: grub>help ls tells you about the command ls.

    Edit mode:The key tips are at the bottom of the screen after your press "e"

    to enter the edit mode from your on-screen boot menu.

    Also, at that point, you can press Control+c to get a grub>,

    then type help and/or use TAB completion.

    TAB completion (grub>)

    While typing after the grub>, try pressing the TAB key and see what happens: in many cases, GRUB will try to help

    you complete the line with something meaningful or with choices. So type as much as you can recall or type a guess,

    then press TAB, then you may have to type another guess and press TAB again, and so on until you complete the line

    the way you want it.

    GRUB 2 device numbering is different(hdx,y): hard drive x, partition y

    Hard drives start at zero (x=0), same as for GRUB Legacy.

    Partitions start at 1 (y=1); in GRUB Legacy, partitions start at zero.

    - - - - -

    How to get information about your drives, devices, and files

    Key: at Konsole sudo fdisk -lu; and grub> ls

    We'll look at two cases: At the command line in Kubuntu (Konsole); and at the grub> prompt.

    Konsole (BASH) command line

    Exploring your hard drive(s): sudo fdisk -lu

    => sudo fdisk -lu is very useful, very important.

    GRUB version number: grub-install -v

    Drive space: df -h -T

    UUIDs (see NOTE below):

    blkid (or try sudo blkid); also:

    ls /dev/disk/by-uuid/ -alh

    grub.cfg, to see it: cat /boot/grub/grub.cfg

    fstab (filesystem table), to see it: cat /etc/fstab

    Mounting, how filesystems are mounted: cat /etc/mtab or: mount

    Boot directory /boot, to find it: df /boot

  • 8/6/2019 GRUB 2 - A Guide for Users

    19/36

    Kernel version and gcc version (gcc=the GNU compiler used to build the kernel):

    cat /proc/version

    Kernel version: uname -r

    Linux version/name: lsb_release -a

    (hold the Shift key and the minus sign key to get _ . LSB = Linux Standard Base)

    KDE version (KDE=K Desktop Environment)

    for KDE 3.5: kde-config version and for KDE 4: kde4-config --version

    NOTE: UUID = Universally Unique Identifier

    Starting with Kubuntu version 8.10, UUIDs are used to identify partitions. A UUID is a 16-byte number (= 128 bits).In canonical form, a UUID consists of 32 hexidecimal digits, displayed in 5 groups separated by hyphens.

    At a GRUB prompt, grub>

    Exploring your hard drive(s): grub> ls

    => Very useful, very important.

    (in GRUB Legacy, the geometry command is used instead of ls)

    The ls command is very useful

    grub>ls

    gives you a list of your hard drives and partitions as GRUB sees them, in (hdx,y) GRUB 2 device notation.

    grub>ls /shows you the files under the current GRUB 2 root device. You can set that device using set root=. For example:

    grub>set root=(hd0,8)

    grub>ls /

    shows you all files under root. Or: grub>ls (hd0,8)/ .

    grub>ls /boot

    shows you all files--including kernels--under /boot.

    UUIDs and filesystem type

    grub>ls (hd0,8)

    shows you information about the partition (hd0,8) including its filesystem type and its UUID.

    The contents of a directory: grub>ls -l /directoryExample

    grub>ls -l /boot

    shows you the kernel and initrd files.

    (The option -l indicates "long form" and gives more information. To see all files, including hidden files, use the

    option -a: grub>ls -a -l /boot; or grub>ls -al /boot)

    GRUB 2 emulation sudo grub-emu

    At Konsole, to get a grub> prompt, type sudo grub-emu.

    To exit emu and return to Konsole, type exit.

    >>> IMPORTANT sudo grub-emu and then grub>ls

    While you are working at Konsole in Kubuntu, you may need to know how GRUB sees your drives and partitions, the

    (hdx,y)'s. You can switch into emulation made (sudo grub-emu)) and issue the list (ls) command at the GRUB prompt(grub>ls) to see your drives and GRUB devices. Type exit to return to BASH mode in Konsole.

    Using search and cat

    GRUB files, what partitions they are in: grub>search /boot/grub/boot.img

    Boot menu, what partition(s) it is in: grub>search /boot/grub/grub.cfg

    Kernel, where it is: grub>search /vmlinuz

    Boot menu, to see it: grub>cat (hdx,y)/boot/grub/grub.cfg

    fstab, to see it: grub>cat (hdx,y)/etc/fstab

    Device.map, to see it: grub>cat (hdx,y)/boot/grub/device.map

    (NOTE: In GRUB Legacy, the find command is used instead of search.)

  • 8/6/2019 GRUB 2 - A Guide for Users

    20/36

    Restart (reboot), or shutdown (halt) your PC at a command line

    At Konsole:

    sudo shutdown -r now (re-boots the PC)

    sudo shutdown -h now (shuts down the PC)

    In GRUB:

    grub>reboot (re-boots the PC)

    grub>halt (shuts down the PC)

    - - - - -

    Boot menu: Adding or removing an OS entry to grub.cfg

    Rule: You do NOT edit grub.cfg directly. Instead, you work with script files in the folder /etc/grub.d or with settings

    in /etc/default/grub.

    -- Linux operating systems, added automatically

    Look at your grub.cfg. The section

    ### BEGIN /etc/grub.d/10_linux ###

    ### END /etc/grub.d/10_linux ###

    contains Linux operating systems that were automatically detected by GRUB 2 using the script file

    /etc/grub.d/10_linux. Most of your Linux OSs should be detected this way and included in the boot menu grub.cfg.

    If not, you can create a custom boot entry (see below, "Boot menu: Create a custom boot entry").

    -- Windows and other OSs added automatically

    This is done by the script /etc/grub.d/30_os-prober.

    -- Adding or removing OSs from your PC. After doing so,

    generate a new grub.cfg: sudo grub-mkconfig -o /boot/grub/grub.cfg.

    -- Add a boot menu entry by making your own custom boot entry, then run:

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    to generate a new grub.cfg.

    (See subsection below: "Boot menu: Create a custom boot entry")

    -- Removing a boot entry from grub.cfg:

    Two choices.

    (1) Simply remove the execute bit from the script file in /etc/grub.d that corresponds to (i.e., generates) the boot

    entry.

    Example: If that file is named 43_MyOS-1, then run the Konsole commands

    sudo chmod -x /etc/grub.d/43_MyOS-1

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    (2) Or, remove the script file (for the boot entry) from the folder /etc/grub.d. Then run

    sudo grub-mkconfig -o /boot/grub/grub.cfg to generate the new grub.cfg file.

    NOTE: If a custom file contains more than one boot entry, you may remove any number of them, leaving the rest.

    Then use grub-mkconfig to generate your new boot menu, grub.cfg.

    Boot menu: Custom boot entry

    This is easy, usually.

    -- There are 4 ways to make a boot entry (see "4 Ways To Boot an OS").

    -- There is a custom template at /etc/grub.d/40_custom.

    -- After you write the script file for your custom boot entry, make it executable.

    -- Then generate a new grub.cfg by running sudo grub-mkconfig -o /boot/grub/grub.cfg.

    Troubleshooting: Sometimes when you run grub-install or grub-mkconfig, it will fail to detect one of your OSs and

    excludes it from the boot menu grub.cfg. In that case, you could make a custom entry for it (as a script file in

    /etc/grub.d).

  • 8/6/2019 GRUB 2 - A Guide for Users

    21/36

    Direct booting To get a model for some of the entries, you have two choices: (1) Get it from your old boot menu

    (/boot/grub/menu.lst) from GRUB Legacy (if that is available on your PC). Or, it may also be here, made by GRUB 2:

    menu.lst_backup_by_grub2_postinst. (2) Go into the operating system itself (the one you wish to include), or

    perhaps access its filesystem using a live CD, and get the information from its own boot menu.

    Example

    Making a custom entry for sidux. Method: Direct booting.

    It helps if you have a model for some of the entries. In the old boot menu (/boot/grub/menu.lst) from my GRUB

    Legacy, I had this boot entry for sidux:

    title Debian GNU/Linux, sidux kernel 2.6.28-5.slh.3-sidux-686

    root (hd0,2)

    kernel /boot/vmlinuz-2.6.28-5.slh.3-sidux-686 root=UUID=306d94a5-107b-4c9e-ae03-a159e18dc1c7 ro quiet

    vga=791

    initrd /boot/initrd.img-2.6.28-5.slh.3-sidux-686

    Using a template (e.g., /etc/grub.d/40_custom), create an executable file for the sidux boot entry:

    Open an empty text document (as root)

    kdesudo kate

    Save the new file as, say, /etc/grub.d/41_sidux_sda3

    Copy the kernel & initrd lines from menu.lst, change kernel to linux, adjust the sidux partition number toconform to GRUB 2 convention:

    Legacy GRUB: (hd0,2)

    GRUB 2: (hd0,3)

    Also, double check the UUID for sda3 by running sudo blkid.

    Result:

    The file /etc/grub.d/41_sidux_sda3 looks like this:

    #!/bin/sh

    echo "Adding sidux" >&2

    cat

  • 8/6/2019 GRUB 2 - A Guide for Users

    22/36

  • 8/6/2019 GRUB 2 - A Guide for Users

    23/36

    set root=(hd1,2)

    configfile /boot/grub/grub.cfg

    An equivalent way of doing it is this:

    configfile (hd1,2)/boot/grub/grub.cfg

    That tells your GRUB 2 to access partition (hd1,2), find the file /boot/grub/grub.cfg, show you that file so you can

    make a choice of which OS to boot, then boot the OS you choose. The GRUB doing the work is your native GRUB,

    the one you are using, not the GRUB in (hd1,2). Your native GRUB must be able to interpret the commands it finds in

    the grub.cfg of the OS you wish to boot.

    When to avoid configfile

    When there is a mixture of GRUB versions on your PC, it is best to avoid using configfile.

    Instead, use chainloader or symlinks.

    Example (Taken from a grub.cfg. The # sign indicates a comment.)

    # Kubuntu 8.04.3 on sdb2, by configfile

    menuentry Kubuntu 8.04.3 on sdb2, by configfile {

    set root=(hd1,2)

    configfile /boot/grub/grub.cfg

    }

    >>> Symlinks used in a boot entry

    Symlinks are like shortcuts, and they direct control from the link to the file they point at. Symlinks for the kernel and

    initrd files are already set up for you. Look for yourself. List all files (-a) in long or detailed form (-l) under your root

    partition (/) by issuing the following command at Konsole:

    ls -a -l /

    lrwxrwxrwx 1 root root 33 2009-08-02 11:01 initrd.img -> boot/initrd.img-2.6.24-24-generic

    lrwxrwxrwx 1 root root 33 2009-04-19 17:14 initrd.img.old -> boot/initrd.img-2.6.24-23-generic

    lrwxrwxrwx 1 root root 30 2009-08-02 11:01 vmlinuz -> boot/vmlinuz-2.6.24-2 4-generic

    lrwxrwxrwx 1 root root 30 2009-04-19 17:14 vmlinuz.old -> boot/vmlinuz-2.6.24-23-generic

    The symlink for the kernel is vmlinuz, and vmlinuz points at the NEWEST kernel.

    The symlink for the initrd is initrd.img, and initrd.img points at the NEWEST initrd.

    NOTE: The "l" at the left indicates "link." Note how the links point at their target files following the symbol ->. Note

    that the symlinks are stored in your OS at the root level.

    NOTE: If you wish to make a boot entry for the older kernel and initrd, you must use the symlinks for them,

    vmlinuz.old and initrd.img.old.

    If you use direct booting, you have to write out the exact kernel and initrd names:

    linux /boot/vmlinuz-2.6.24-24-generic root=UUID= vb687f89-ggjd-6ach-7755-77241i4b4fk3 ro quiet splashinitrd /boot/initrd.img-2.6.24-24-generic

    With symlinks, vmlinuz starts at root and points at vmlinuz-2.6.24-24-generic and initrd.img starts at root and

    points at initrd.img-2.6.24-24-generic, so you can write more simply,

    linux /vmlinuz root=UUID= vb687f89-ggjd-6ach-7755-77241i4b4fk3 ro quiet splash

    initrd /initrd.img

    However, to simplify this when you are in an emergency trying to boot at the GRUB prompt (grub>), do it this way:

    Suppose this OS is Kubuntu 9.10 in (hd0,8) = sda8. Then you'd have

    menuentry Kubuntu 9.10 on sda8, by symlinks {

  • 8/6/2019 GRUB 2 - A Guide for Users

    24/36

    set root=(hd0,8)

    linux /vmlinuz root=/dev/sda8 ro quiet splash

    initrd /initrd.img

    }

    or even simpler, when you can't remember the kernel options "ro quiet splash":

    menuentry Kubuntu 9.10 on sda8, by symlinks {

    set root=(hd0,8)

    linux /vmlinuz root=/dev/sda8initrd /initrd.img

    }

    (ro = Read-Only and is the default. Thanks to dibl for this information.)

    NOTE about the paths

    Notice the paths to the symlinks start at root / (since the symlinks are stored under root /); whereas the paths to the

    actual kernel & initrd files start at /boot (since the kernel and initrd are stored under /boot)

    Another Example

    # Kubuntu 9.10 on sdb7 symlinks, normal modemenuentry Kubuntu 9.10 on sdb7, by symlinks {

    set root=(hd1,7)

    linux /vmlinuz root=/dev/sdb7 ro quiet splash

    initrd /initrd.img

    }

    This is normal mode. If you want recovery mode (single user),

    replace the kernel options ro quiet splash with ro single (without quotes)

    >>> Direct booting

    In direct booting, you use the actual kernel and initrd file names in the boot menuentry.NOTE

    If you use direct booting at the GRUB CLI, ie., at grub> prompt, you may use TAB completion to make your job easier.

    For example,

    grub>linux /boot/

    and you will get some choices, such as vmlinuz-2.6.24-24-generic

    Example

    # Kubuntu 8.04 on sdb3, direct booting

    menuentry "Kubuntu 8.04 on sdb3, direct booting" {

    set root=(hd1,3)

    linux /boot/vmlinuz-2.6.24-24-generic root=UUID=db287e84-cbdd-4ca1-8745-85241a3b3fe2 ro quiet splashinitrd /boot/initrd.img-2.6.24-24-generic

    }

    >>> Chainloader booting

    When you boot an OS by chainloading, you use the chainloader command to pass control of the booting from your

    native GRUB to some other bootloader located in the MBR of a disk somewhere or in the

    boot sector of a partition.

    NOTE: For this to work, a bootloader must first be installed to the target MBR or a partition boot sector.

  • 8/6/2019 GRUB 2 - A Guide for Users

    25/36

    A Linux example

    menuentry Kubuntu 9.10 on sdb7, by chainloader {

    set root=(hd1,7)

    chainloader +1

    }

    "chainloader +1" says to go to sector 1 (of (hd1,7)) and turn control over to the bootloader found there.

    For this example to work, a bootloader (e.g., GRUB 2) must be installed to the partition (hd1,7).To install GRUB 2 to the boot sector of partition sdb7 (=(hd1,7)):

    sudo grub-install /dev/sdb7

    This is another way to write the same boot entry:

    menuentry Kubuntu 9.10 on sdb7, by chainloader {

    chainloader (hd1,7)+1

    }

    Another Linux example

    menuentry Drive sdc = hd2 by chainloader {

    chainloader (hd2)+1}

    If a bootloader (e.g., GRUB 2) has been installed to the Master Boot Record of drive sdc (= hd2), the menuentry will

    boot that hard drive by turning control over to the bootloader in its MBR.

    For this example to work, a bootloader (e.g., GRUB 2) must be installed to the Master Boot Record of drive sdc (=

    hd2). To install GRUB 2 to the Master Boot Record of drive sdc:

    sudo grub-install /dev/sdc

    Example

    Windows XP on sda1menuentry Windows XP on sda1, by chainloader {

    set root=(hd0,1)

    chainloader +1

    }

    Dedicated GRUB 2 Partition: How To Build It

    Again, this is straightforward, much easier than in GRUB Legacy.

    1 Create the GRUB 2 partition.

    Create a partition to be used as your dedicated GRUB 2 partition and format it. I use GParted Live CD to do this. Atthat time, you may if you wish, again using GParted, set a Label on your partition; e.g., GRUB2 (without the

    quotation marks) (in GParted, use Partition > Labels).

    (Check the size of the /boot/grub folder to determine how big to make the partition. GRUB 2 files use just 572 KB

    (96 files, including 12 old ones) on my installation.)

    2 Create grub.cfg.

    In your home directory, create a text file called grub.cfg and build your custom boot menu for the dedicated GRUB 2

    partition. (For a sample, see below.)

    (To create the text file, two ways: (1) Right-click on your Desktop, Create New > Text File; or (2) open text editor

    Kate to an empty document by typing at Konsole kate and save it under the name grub.cfg in your home directory

    only! To do this as root, use kdesudo kate, but that is not necessary at this point.)

  • 8/6/2019 GRUB 2 - A Guide for Users

    26/36

    Caution: You may want to completely build your boot menu now and have it ready to go. To make your boot entries

    in your grub.cfg, see the subsection above "4 Ways To Boot an OS."

    3 Install GRUB 2 to the MBR.

    From your Kubuntu OS, install GRUB 2 to the Master Boot Record (of your first BIOS boot drive) using GRUB 2 files

    set up in your dedicated GRUB 2 partition.

    Example

    Suppose sdb1 is your dedicated GRUB 2 partition, and assume it is mounted as /media/sdb1 (or, if you set the label

    GRUB2 on sdb1, this might be /media/GRUB2). And suppose you wish to install GRUB 2 to the MBR of sda which is

    set in BIOS to be your first boot drive.Do it this way:

    sudo grub-install root-directory=/media/sdb1 /dev/sda

    See: http://grub.enbug.org/FranklinPiat/grub-install.manpage

    (That will also build the directory /boot/grub for you in your GRUB 2 partition.)

    4 As root, copy your grub.cfg from your home directory to the GRUB 2 partition under the folder /boot/grub. (To

    do this in GUI, open your file manager as root and work from there; e.g., kdesudo konqueror or kdesudo dolphin.)

    5 Set the boot flag on your dedicated GRUB 2 partition and re-boot to test it.

    Set the boot flag on the dedicated GRUB 2 partition:

    Do that using GParted either from your OS (K > System > Partition editor) or from the GParted Live CD. If you do itusing the GParted Live CD, you might go this way now:

    After completing Step 4 (copying the grub.cfg file into the partition), put the GParted Live CD in the CD tray, let it be

    recognized, re-boot into GParted Live, set the boot flag on your dedicated GRUB 2 partition (Partition > Manage

    Flags), GParted > Quit, then double click GParted (large menu at top) to quit and re-boot, when prompted remove

    the GParted Live CD, and let the PC re-boot (and it will now be using your dedicated GRUB 2 partition), and see if it

    works.

    CAUTION: Remember to keep Super Grub Disk live CD handy.

    IMPORTANT NOTE ABOUT KERNEL UPDATES:

    Using this method of building a dedicated GRUB 2 partition, YOU are in charge of the boot configuration file

    /boot/grub/grub.cfg that is located in the GRUB 2 partition. The stuff we talked about above--/etc/default/grub andthe scripts /etc/grub.d and grub-mkconfig--does not apply. You must keep these two "shows" separate. Edit the

    dedicated GRUB 2 file grub.cfg manually. If there ever is a problem, you may have to manually re-install GRUB 2 to

    the MBR (of the first BIOS boot drive) from the dedicated GRUB 2 partition.

    Example Here's my dedicated GRUB 2 /boot/grub/grub.cfg:

    # grub.cfg

    # This is my custom boot menu, called /boot/grub/grub.cfg, located in my dedicated Grub 2 partition sda1.

    # Set the timeout

    set timeout=10

    # Set the default boot entry.

    set default=0

    # Kubuntu 9.10 on sda8 by chainload

    menuentry "Kubuntu 9.10 on sda8, by chainload" {

    chainloader (hd0,8)+1

    }

    # Kubuntu 9.10 on sda8 by configfile

    menuentry "Kubuntu 9.10 on sda8, by configfile" {

    configfile (hd0,8)/boot/grub/cfg

  • 8/6/2019 GRUB 2 - A Guide for Users

    27/36

    }

    # Kubuntu 9.10 on sda8 by symlink

    menuentry "Kubuntu 9.10 on sda8, by symlink" {

    set root=(hd0,8)

    linux /vmlinuz root=/dev/sda8 ro quiet splash

    initrd /initrd.img

    }

    # Kubuntu 8.04.3 on sda2, by configfilemenuentry "Kubuntu 8.04.3 on sda2, by configfile" {

    configfile (hd0,2)/boot/grub.cfg

    }

    # sidux on sda3, by direct booting

    menuentry "sidux on sda3" {

    set root=(hd0,3)

    linux /boot/vmlinuz-2.6.28-5.slh.3-sidux-686 root=UUID=306d94a5-107b-4c9e-ae03-a159e18dc1c7 ro quiet

    vga=791

    initrd /boot/initrd.img-2.6.28-5.slh.3-sidux-686

    }

    GRUB 2 Flashdrive (USB flash drive)

    For the principles of installing GRUB 2, see the discussion under "Installing GRUB 2" and "The grub-install

    Command."

    Example

    I used a 1 GB Kingston; the GRUB 2 files used just 51 MB.

    Partition and format the flash drive as ext2 (using GParted Partition Editor). (You could also use FAT32 or ext3 or

    some other filesystem.)Set the boot flag on the newly created partition (use GParted to do that: Partition > Manage Flags).

    Exit GParted. Unplug the flashdrive, then plug it in.

    In Kubuntu, to see how it is named, at Konsole run

    sudo fdisk -lu

    Output:

    Disk /dev/sdb: 1031 MB, 1031798784 bytes

    255 heads, 63 sectors/track, 125 cylinders, total 2015232 sectors

    Units = sectors of 1 * 512 = 512 bytes

    Disk identifier: 0x000f0fe1

    Device Boot Start End Blocks Id System

    /dev/sdb1 63 2008124 1004031 83 Linux

    Konqueror (or Dolphin) indicated it is mounted as /media/disk.

    => So it is seen as sdb with the partition sdb1 mounted as /media/disk.

    Install GRUB 2 to the flash drive. At Konsole:

    sudo grub-install --root-directory=/media/disk /dev/sdb

    Output:

    Installation finished. No error reported.

    This is the contents of the device map /media/disk/boot/grub/device.map.

    Check if this is correct or not. If any of the lines is incorrect,

  • 8/6/2019 GRUB 2 - A Guide for Users

    28/36

    fix it and re-run the script `grub-install'.

    (hd0) /dev/sda

    (hd1) /dev/sdb

    (This is the device.map on the flash drive, /boot/grub/device.map. I will ignore this! Doesn't matter too much. You

    could edit it as root to read

    (hd0) /dev/sda

    as seen from the point of view of the flash drive when it is used as a boot drive.)

    Let's move on, now ...

    Check to see that /boot/grub is created and filled with GRUB 2 files.

    Reboot, setting BIOS to boot from the flash drive (USB booting).

    The next thing I saw on the screen was:

    grub>

    I used the GRUB 2 command ls to see my drives and partitions (on the PC):

    grub>ls

    Since the PC booted from the flash drive, it was seen as hd0 with partition (hd0,1). (The drive that the PC actually

    boots from is always seen during its booting session as hd0--this is a general fact.)

    My regular HDD, normally seen as hd0 was now seen as hd1 and my Kubuntu 9.10 was in (hd1,8).So, to boot into Kubuntu, I did

    grub>chainloader (hd1,8)+1

    grub>boot

    NOTE:

    Previously I had already installed GRUB 2 to the partition boot sector of Kubuntu in case I ever needed to chainload

    into it. (I used at Konsole in Kubuntu, sudo grub-install /dev/sda8, where sda8 is my Kubuntu partition when there is

    no other drive attached to the PC.) Had I not already done this, I could could NOT chainload into Kubuntu and would

    have to boot into Kubuntu in some other way, for example using symlinks:

    grub>ls

    would show me that Kubuntu is on (hd1,8) when booting from my GRUB 2 flash drive, and so to boot it, I'd do:

    grub>set root=(hd1,8)

    grub>linux /vmlinuz root=/dev/sda8grub>initrd /initrd.img

    grub>boot

    Or, you could do this (if you remembered how!):

    grub>set root=(hd1,8)

    grub>linux /vmlinuz root=/dev/sda8 ro quite splash

    grub>initrd /initrd.img

    grub>boot

    Thus, I booted into Kubuntu using the GRUB 2 flash drive.

    Building a boot menu for the flash drive:

    You can create a text file /boot/grub/grub.cfg for the flash drive exactly as demonstrated under building a DedicatedGRUB 2 Partition.

    Technical Note: To do so, you will probably have to work as root, say by opening Konqueror or Dolphin as root

    (kdesudo konqueror), or by opening Kate as root (kdesudo kate). However, you do not necessarily need a grub.cfg

    on the flash drive. You can simply use it as I did to explore your drives and then boot into an OS. If you do build a

    grub.cfg for it, you might include the OS(s) on your hard drive(s), and use the GRUB 2 flash drive to boot in

    emergencies, as you would use Super Grub Disk. Just remember that from the point of view of the grub.cfg on your

    flash drive, the other drives in your PC are shifted by 1 since upon booting the flash drive, it will be seen as hd0. If

    adrian15 builds Super Grub Disk for GRUB 2 and includes his usbshift function, then the story changes--for the

    principle of "USB drive shifting," see my how on building a GRUB flash drive:

    -- How To Make GRUB Thumb Drive

  • 8/6/2019 GRUB 2 - A Guide for Users

    29/36

  • 8/6/2019 GRUB 2 - A Guide for Users

    30/36

    /etc/grub.d Folder of boot menu scripts:

    00_header; 05_debian_theme: Background, text colors, themes

    10_hurd Locates Hurd kernels; 10_linux Locates Linux kernels; 20_memtest86+

    30_os-prober: Searches for Linux and other OS's on all partitions

    40_custom: Template for custom boot menu entries

    More: /boot/grub/device.map, boot.img (MBR), core.img

    Fixing Things, Rescue

    Ctrl+Alt+Del reboot PC; Super Grub Disk

    New grub.cfg: sudo grub-mkconfig -o /boot/grub/grub.cfgInstall, re-install GRUB 2: sudo grub-install [INSTALL_DEVICE]

    to MBR: sudo grub-install /dev/sdx; partition: sudo grub-install /dev/sdxn

    If error: grub-install --recheck /dev/sdx; sudo grub-install --recheck /dev/sdxn

    Install GRUB 2 to MBR of sda using GRUB 2 in /dev/sdb1/boot/grub:

    sudo grub-install root-directory=/media/sdb1 /dev/sda

    Install GRUB 2 to PC (/usr/lib/grub/i386-pc/): sudo apt-get install grub-pc

    Live CD rescue: Re-install GRUB 2

    sudo mkdir /media/sda2 /media/dev

    sudo mount /dev/sda2 /media/sda2

    sudo mount --bind /dev /media/dev

    Install GRUB 2 to MBR of sdb [or to partition sda2] using GRUB 2 files in sda2:sudo grub-install --root-directory=/media/sda2 /dev/sdb [or /dev/sda2]

    umount /media/sda2 /media/dev

    Drives, partitions, information sudo fdisk -lu & grub>ls

    Naming: (hdx,y) or sdzy: drive x starts at 0; partitions y start at 1

    Konsole: sudo fdisk -lu; df -hT; mounting: cat /etc/mtab; or: mount

    UUIDs: sudo blkid; ls /dev/disk/by-uuid/ -alh

    Kernel ver: uname -r; cat /proc/version; Linux ver: lsb_release -a

    sudo grub-emu and then grub>ls

    GRUB devices/drives: grub>ls; grub>ls -al directory

    UUID of (hdx,y): grub>ls (hdx,y)

    Finding: grub>search /boot/grub/grub.cfg; grub>search /boot/grub/boot.img

    Syntax, booting choices

    configfile: set root=(hdx,y) and configfile /boot/grub/grub.cfg; or:

    configfile (hdx,y)/boot/grub/grub.cfg

    symlinks: linux /vmlinuz root=UUID= xxx ro quiet splash; initrd /initrd.img

    symlinks: linux /vmlinuz root=/dev/sdxn ro quiet splash

    chainload: set root=(hdx,y) and chainloader +1; chainloader (hdx,y)+1

    chainload a MBR: chainloader (hdx)+1

    Permissions

    Executable: sudo chmod 744 /etc/grub.d/file; Remove: sudo chmod -x /etc/grub.d/file

    Read only, everyone: sudo chmod 444 /etc/grub.d/fileGUI: kdesudo konqueror (dolphin), rt-click onfile, Properties, Permissions

    grub.cfg: sudo chmod +w /boot/grub/grub.cfg; sudo chmod -w /boot/grub/grub.cfg

    Create a script called /etc/grub.d/NN_myscript

    Empty text doc: kdesudo kate; File > Save As /etc/grub.d/NN_myscript

    Type it (see template below).

    Make executable: sudo chmod 744 /etc/grub.d/NN_myscript

    or, sudo chmod +x /etc/grub.d/NN_myscript

    GUI: kdesudo konqueror (dolphin), rt-click, Properties, Permissions

    Make new grub.cfg: sudo grub-mkconfig -o /boot/grub/grub.cfg

  • 8/6/2019 GRUB 2 - A Guide for Users

    31/36

    > Template, custom boot entry for file /etc/grub.d/NN_name

    #!/bin/sh

    echo "Adding name" >&2

    cat Save, Exit. New grub.cfg: sudo up-date grub; sudo grub-mkconfig

    Flash drive /dev/sdc, sdc1 mounted at /media/disk; set boot flag; install GRUB 2:

    sudo grub-install --root-directory=/media/disk /dev/sdc

    Separate GRUB 2 partition: mounted at /media/sdb1; sda=MBR of 1st BIOS drive

    sudo grub-install root-directory=/media/sdb1 /dev/sda

    Working as root (8.10+: kdesudo; 8.04: kdesu)

    kdesudo kate /path-to-file; kdesudo konqueror (or dolphin)

    Terminal as root: sudo i; sudo su

    GUI file manager, navigate to file, right-click on file, Actions, Edit as Root.

    sudo [COMMAND]; sudo grub-install [INSTALL_DEVICE];

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    [End of GRUB 2 Practical Reminders]

    = = = = = = = = = = = = = = = = = = = =

    = = = = = = = = = = = = = = = = = = = =

    Appendix: Techniques

    --- Installing Kubuntu--GRUB 2 placement

    --- Working as root

    --- Permissions: read, write, execute; change the execute bit

    --- Chroot -- how to

    See Part 3 of Commands at Konsole: Beginners: 3 parts

    http://kubuntuforums.net/forums/index.php?topic=3091607.0

    = = = = = = = = = = = = = = = = = = = =

    Installing Kubuntu--GRUB 2 placement

    Live CD method

    The Live CD method of installing Kubuntu is easy, fast, and convenient because afterwards, you then have a Live CD

    to use for rescue and repair of your system.

    Installing GRUB 2 files

    GRUB 2 is standard on Kubuntu starting with 9.10. During its installation from the Live CD, you can specify if you

    want GRUB 2installed, and if so, where to put it. Here's how:

    Start the Live CD installer.

    Step: Disk Setup

    "Specify Partitions Manually"

  • 8/6/2019 GRUB 2 - A Guide for Users

    32/36

    Step: Summary

    Advanced button at lower right

    Check or un-check to install GRUB 2 bootloader

    Choose from the drop-down list where to install GRUB 2

    sda = the MBR of drive sda

    sda1 = the first partition of drive sda

    sdb = the MBR of drive sdb

    etc.

    Caution:

    > If you install GRUB to a MBR (sda, sdb, sdc, etc.), it will overwrite any other bootloader already installed to that

    MBR, and the GRUB 2 from the OS you are currently installing will then control the boot menu you see when you

    boot up your PC. That is OK, just so you know.

    > If you install GRUB 2 to the partition boot sector where you are currently installing the OS (e.g., sdan, for some

    n=1,2,3,4...), when you re-boot your PC, you will have to manually boot into your new OS you just installed. Do so

    using chainloader, as follows:

    -- Re-boot

    -- If you get some boot menu (from a prior Linux OS installation), press the "c" key to get a GRUB prompt, grub>. If

    you don't get a boot menu but only the GRUB prompt grub>, then that's OK, too.

    -- Let's say your new Kubuntu OS was installed to sda9. That is the same as (hd0,9). Thengrub>chainloader (hd0,9)+1

    grub>boot

    and you will boot into your new OS.

    Building new boot menus

    > In your new OS, you can build a full boot menu simply by doing sudo grub-mkconfig -o /boot/grub/grub.cfg.

    > In your existing OSs, you can re-build boot menus to include the new OS the same way:

    Konsole

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    > Worst case, if for some reason that doesn't work, you can make a custom boot entry to include your new OS. See

    SECTION 4. To get the details of the menuentry for the new OS for the existing grub.cfg, you might have to boot

    into the new OS and copy details from its grub.cfg. Or, simply boot your new OS using symlinks or chainloader (from

    another OS's boot menu), for which you do not need any details specific to the new OS. See SECTION 4, "4 Ways to

    boot an OS."

    = = = = = = = = = = = = = = = = = = = =

    Working as root

    Opening a text editor (e.g., Kate, Kwrite, etc.) to see the file and/or to edit it:

    kdesudo kate path-to-file

    Example: kdesudo kate /etc/fstab

    Opening an empty text document as root:

    kdesudo kate

    (then File > Save As)

    Opening a file manager as root:

    in 8.10 and after: kdesudo konqueror (or dolphin)

    in 8.04: kdesu konqueror (dolphin)

    Opening a terminal as root:

    sudo i (to get a root terminal)

  • 8/6/2019 GRUB 2 - A Guide for Users

    33/36

  • 8/6/2019 GRUB 2 - A Guide for Users

    34/36

  • 8/6/2019 GRUB 2 - A Guide for Users

    35/36

    http://www.gnu.org/software/grub/grub-2.en.html

    GNU GRUB, main site, Legacy GRUB

    http://www.gnu.org/software/grub/

    GRUB Wiki: grub.cfg

    http://grub.enbug.org/grub.cfg

    GRUB 2 Commands, GRUB Wiki

    http://grub.enbug.org/CommandListCompares GRUB Legacy to GRUB 2 commands.

    GRUB 2: Live CD Install Guide

    http://grub.enbug.org/Grub2LiveCdInstallGuide

    StartUp-Manager

    https://help.ubuntu.com/community/StartUpManager

    GRUB & GRUB 2 Boot Process

    http://www.pixelbeat.org/docs/disk/

    Bootloaderhttp://en.wikipedia.org/wiki/Boot_loader

    GNU GRUB

    http://en.wikipedia.org/wiki/GRUB

    Boot Options

    https://help.ubuntu.com/community/BootOptions

    Kernel Parameters

    http://www.kernel.org/doc/Documentation/kernel-parameters.txt

    Grub Legacy-- How To GRUB Methods - Toolkit

    http://kubuntuforums.net/forums/index.php?topic=3081671.0

    GParted Live CD

    http://gparted.sourceforge.net/livecd.php

    For partitioning, formatting your hard drive.

    Super Grub Disk

    http://www.supergrubdisk.org/

    Will boot you into your OS when you can't do it alone.

    Arch Linux, ArchWiki GRUB 2http://wiki.archlinux.org/index.php/GRUB2

    Experiences in the Community, Jaunty and GRUB2

    http://flossexperiences.wordpress.com/2008/11/19/jaunty-and-grub2/

    GRUB 2 installation

    http://www.techenclave.com/guides-and-tutorials/grub-2-installation-92883.html

    GRUB2 Theming

    http://ubuntuforums.org/showthread.php?t=1182436

  • 8/6/2019 GRUB 2 - A Guide for Users

    36/36

    KernelTeam/Grub2Testing

    https://wiki.ubuntu.com/KernelTeam/Grub2Testing

    Using UUID

    https://help.ubuntu.com/community/UsingUUID

    BIOS Boot Partition, and what does GRUB use it for?

    http://grub.enbug.org/BIOS_Boot_Partition

    GUID Partition Tablehttp://en.wikipedia.org/wiki/GUID_Partition_Table

    Technical Note TN2166, Secrets of the GPT

    http://developer.apple.com/mac/library/technotes/tn2006/tn2166.html

    HOWTO: Booting LiveCD ISOs from USB flash drive with Grub2, by JustRon.

    http://ubuntuforums.org/showthread.php?t=1288604

    Booting LiveCD from HD ISO

    http://ubuntuforums.org/showthread.php?t=1295506

    Boot an iso via Grub 2http://michael-prokop.at/blog/2009/05/25/boot-an-iso-via-grub2/

    MultiBoot USB with Grub2 (boot directly from iso files)

    http://www.panticz.de/MultiBootUSB

    GRUB Graphical Menu Development Journal

    http://grub.gibibit.com/Journal

    Debian Wiki, GRUB, grub.cfg

    http://wiki.debian.org/Grub/grub.cfg.manpage

    As of 9-9-09, it doesn't exist.

    Tweaking GRUB 2

    http://www.drlock.com/blog/2008/07/11/tweaking-grub-2/

    GRUB 2 configuration, shirish

    http://www.techenclave.com/guides-and-tutorials/grub-2-configuration-93512.html

    How To Install GRUB 2 On Ubuntu 9.04

    http://www.linuxtoday.com/news_story.php3?ltsn=2009-09-02-005-35-OS-HL-SM