Razlika između inačica stranice Grub 2

Izvor: HrOpenWiki
Skoči na: orijentacija, traži
(Nova stranica: ||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents(2)>>|| GRUB 2 is the default boot loader a...)
 
(Uklonjen cjelokupni sadržaj stranice)
 
Nisu prikazane 4 međuinačice istog suradnika
Redak 1: Redak 1:
||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents(2)>>||
 
  
GRUB 2 is the default boot loader and manager for Ubuntu 9.10 (Karmic Koala) and many other operating systems. As the computer starts GRUB 2 either presents a menu and awaits user input or automatically transfers control to an operating system kernel. GRUB 2 is a descendant of GRUB (GRand Unified Bootloader). It has been completely rewritten to provide the user significantly increased flexibility and performance. GRUB 2 is Open Source software.
 
 
In this guide, GRUB 2 is version 1.96 or later. GRUB legacy (version 0.97) will be referred to as GRUB.
 
 
= Improvements =
 
 
GRUB 2's major improvements over the original GRUB include:
 
* Scripting support including conditional statements and functions
 
* Dynamic module loading
 
* Rescue mode
 
* Custom Menus
 
* Themes
 
* Graphical boot menu support and improved splash capability
 
* Boot LiveCD ISO images directly from hard drive
 
* New configuration file structure
 
* Non-x86 platform support (such as PowerPC)
 
* Universal support for UUIDs (not just Ubuntu)
 
* openSUSE & Fedora have not yet adopted GRUB 2
 
 
= GRUB vs GRUB 2 =
 
 
GRUB 2's default menu will look familiar to GRUB users but there are a great number of differences beneath the surface.
 
* On a new install of Ubuntu 9.10 with no other installed operating system, GRUB 2 will boot directly to the login prompt or Desktop. No menu will be displayed.
 
* No ''/boot/grub/menu.lst''. It has been replaced by ''/boot/grub/grub.cfg''.
 
* There is no "/find boot/grub/stage1" at the grub prompt. Stage 1.5 has 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 the ''/etc/grub.d/'' folder.
 
* Partition numbering has changed. The first partition is now 1 rather than 0. The first device is still 0, however (no change).
 
* Automated searches for other operating systems, such as Windows, whenever `update-grub` is executed.
 
* No changes made in the configuration files will take effect until the `update-grub` command is also run.
 
 
= Installation =
 
 
GRUB 2 is installed by default on new installations of Ubuntu 9.10 (Karmic Koala). Releases such as Ubuntu 9.04 Jaunty Jackalope which are upgraded to 9.10 will retain GRUB unless the user elects to upgrade to GRUB 2. Previous releases of Ubuntu can be upgraded to GRUB 2 if the user desires.
 
 
You can check the current version installed on your system via Synaptic or from the command line. Open a Terminal (''Applications > Accessories > Terminal'') and enter the following:
 
{{{
 
grub-install -v
 
}}}
 
 
GRUB 2 should display a version number of 1.96 or later. Legacy GRUB is version 0.97.
 
 
== Default Installation ==
 
 
GRUB 2 will be the default bootloader on LiveCD installations of Ubuntu 9.10, Karmic Koala.
 
 
* The GRUB 2 package is ''grub-pc''. The ''grub-common'' package will also be installed.
 
* ''grub2'' is a dummy transitional package. It can safely be removed and will not be shown as installed in Synaptic.
 
 
== Upgrading to GRUB 2 ==
 
 
Upgrading to GRUB 2 from GRUB (legacy) in Ubuntu 9.10 or earlier versions is relatively easy. Importantly, the upgrade offers a process to ensure GRUB 2 will work on your machine before the user commits to a full conversion. Note however that the developers made a decision to not use an automatic update to GRUB 2 as the default on upgrade installs. Users who upgrade to Ubuntu 9.10 may continue to use GRUB if desired.
 
 
* Before installing GRUB 2, refresh the repository indexes to ensure the system has the latest update list. This is normally accomplished via `apt-get update` in a terminal or refreshing the lists in a GUI package manager such as Synaptic. Older GRUB packages may not contain updates which have fixed several bugs in the early versions of the installer.
 
 
* To upgrade to GRUB 2: [[apt:grub-pc|install the ''grub-pc'' package]]. A simple script will guide the user through the installation:
 
 
||<(-2 tablewidth="90%" style="border:none">  1. At the first prompt, read the message, tab to select "OK", then press ENTER. ||
 
||<( width="5%" style="border:none">||<( style="border:none">{{attachment:grub2.upgrade.ok.sm.png}} ||
 
||<(-2 style="border:none;"> 2. After selecting "OK" the next option allows the user to ''test'' GRUB 2 by adding an entry to their normal GRUB menu. Select "Yes" to place a ''Chainload'' option on the GRUB menu. When GRUB boots the next time, the user can select a normal GRUB entry or transfer control to GRUB 2 via the ''Chainload'' entry.  ||
 
||<(-2 style="border:none;"> 3. The next step(s) will import sections from GRUB's ''menu.lst'' to the "Linux command line" (shown) and possibly the "Linux default command line". These entries allow the user to enter any special commands such as ''quiet, splash, noapic'' and others of that nature. GRUB 2 should automatically import these settings. Normally the user should accept any existing entries and TAB to "OK". If necessary, entries can be added later. Refer to the ''Configuring GRUB 2'' section for more detail. ||
 
||<( style="border:none;"> ||<( style="border:none">{{attachment:grub2.linux.command.line.ok.sm.png}}||
 
||<(-2 style="border:none;"> 4. Once the system has installed GRUB 2, the user can reboot and will be greeted by an updated GRUB legacy menu. As shown, the user will see a "Chainload" option which will test the GRUB 2 installation. Selecting the ''Chainload'' option will transfer control to GRUB 2 and display a GRUB 2 menu.||
 
||< style="border:none;">||<( style="border:none">{{attachment:grub2.chainload.grub.sm.png}} ||
 
||<(-2 style="border:none;">4a. Jaunty users may experience an "Unrecognized device string" Error 11 when making a selection. If so, press "e" until you see the line beginning with "grub edit> root". Change "root" to "uuid", ENTER, then boot by pressing "b". More details on ''Error 11'' are located in the ''Command Line & Rescue Mode'' section.||
 
||<(-2 style="border:none;"> 5. Test the new entries and note the Grub 1.9X version number (highlight added).||
 
||<( style="border:none;">||<( style="border:none">{{attachment:grub2.chainload.grub2.sm.png}}||
 
||<(-2 style="border:none;"> 6. If the GRUB 2 menus function properly the user can upgrade to GRUB 2 at any time by running:||
 
{{{
 
sudo upgrade-from-grub-legacy
 
}}}
 
{{attachment:important.png}} Upon successful installation of GRUB 2, a message will inform the user that some GRUB Legacy configuration files are still present and can be removed. The instructions provide the following command, which must be run as 'root':  `rm -f /boot/grub/menu.lst*`  Use caution when running the `rm` command as "root". Incorrectly entering this command could result in permanently deleting necessary system files.
 
 
 
= File Structure =
 
 
GRUB 2 incorporates a totally revised folder and file hierarchy. The ''menu.lst'' of GRUB legacy is no longer used.
 
 
To find out where GRUB 2 is installed, the user can run the following commands: `sudo grub-probe -t device /boot/grub` for the device and `sudo grub-probe -t fs_uuid /boot/grub` for the UUID.
 
 
The main folders and files used by GRUB 2 include:
 
 
== /boot/grub/grub.cfg ==
 
 
This is the file most closely resembling GRUB's ''/boot/grub/menu.lst''. This file contains the GRUB 2 menu information but unlike GRUB's ''menu.lst'' the ''grub.cfg'' file is not meant to be edited.
 
  * Each section is clearly delineated with ''~-"(### BEGIN)"-~'' and references the file in the ''/etc/grub.d'' folder from which the information was generated.
 
  * ''grub.cfg'' is updated by running the `update-grub` command as root. The `update-grub` command is a stub for `sudo grub-mkconfig -o /boot/grub/grub.cfg`. For standardization, the command `update-grub` will be employed, run as "root" with the `sudo`.
 
  * The file is automatically updated with kernel installations/removals or other updates which would effect its output.
 
  * By default, and whenever the `update-grub` command is executed, this file is made "read-only". This is in keeping with the intent that the file should not be edited manually.
 
The user will also see a multitude of *.mod files in the ''/boot/grub'' folder. These files relect the modular nature of GRUB 2 and are loaded as necessary by the GRUB 2 bootloader.
 
 
== /etc/default/grub ==
 
 
  * This configuration 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 entries in this file can be edited by a user with administrator (root) privileges and are incorporated into ''grub.cfg'' when it is updated. Specific configuration settings are detailed in the ''Configuring GRUB 2'' later in this section.
 
 
==  /etc/grub.d/ (folder) ==
 
 
  * The files in this folder are read during execution of the `update-grub` command and their instructions are incorporated into ''/boot/grub/grub.cfg''.
 
  * The placement of the menu items in the ''grub.cfg'' menu is determined by the order in which the files in this folder are run. Files with a leading numeral are executed first, beginning with the lowest number. ''10_linux'' is run before ''20_memtest'', which would run before ''40_custom''. If files with alphabetic names exist, they are run after the numerically-named files.
 
  * Custom entries can be added to the ''40_custom'' file or in a newly created file. Based on it's name, ''40_custom'' entries by default appear at the bottom of the menu. A custom file beginning with ''06_'' would appear at the top of the menu since it's alphanumeric sorting would place it ahead of ''10_'' through ''40_'' files.
 
  * Only executable files generate output to ''grub.cfg'' during execution of `update-grub`.
 
 
 
  *The default files in this folder are:
 
 
  * '''00_header''' Sets initial appearance items such as the graphics mode, default selection, timeout, etc.  These settings are normally imported from information from ''/etc/default/grub''. Users normally do not need to make changes to this file.
 
 
 
  * '''05_debian_theme''' The settings in this file set splash image, text colors, selection highlighting and themes. In the absence of a splash image, this file sets a monochromatic theme for the initial menu display. How to set font renderings and splash images are discussed in detail in the ''Splash Images & Themes'' section.
 
 
  * '''10_hurd''' Locates Hurd kernels. Not currently used.
 
 
 
  * '''10_linux''' Locates kernels on the root device for the operating system currently in use. It takes this information and establishes the names displayed on the menu for these kernels.
 
 
 
  * '''20_memtest86+''' Searches for ''/boot/memtest86+.bin'' and includes it as an option on the GRUB 2 boot menu. There is currently no line option to remove this entry from the menu. The display of ''memtest86+'' can be inhibited by removing the executable bit from this file:  `sudo chmod -x /etc/grub.d/20_memtest86+` and then running `sudo update-grub`.
 
 
 
  * '''30_os-prober''' This file with ''os-prober'', which searches for Linux and other operating systems. Results are placed in ''grub.cfg'' based on the scripts in this file. The file is divided into 4 sections, representing the types of operating systems handled by the scripts: Windows, Linux, OSX, and Hurd. Variables in this file determine the format of the displayed names in ''/boot/grub/grub.cfg'' and on the GRUB 2 menu. Users familiar with basic scripting can alter these variables to change the format of the displayed menu entries. Alternatively, the user can insert an entry into ''/etc/default/grub'' which disables this script. (See below)
 
 
 
  * '''40_custom''' A template for adding custom menu entries which will be inserted into ''grub.cfg'' upon execution of the `update-grub2` command. The contents of this file, below the "''exec tail -n +3 $0''" line and the default comments, are imported directly into ''/boot/grub/grub.cfg'' without any changes.
 
 
 
  * Files in these folders must be executable to be used by `update-grub`. Files which are not executable will be ignored. To make a file executable, run `sudo chmod +x /etc/grub.d/folder/filename`
 
 
 
= Configuring GRUB 2 =
 
 
Configuration changes are normally made to ''/etc/default/grub'' and to the custom files located in ''/etc/grub.d''. The ''/boot/grub/grub.cfg'' file should not be edited by the user; changes to this file are made by configuration scripts.
 
 
== /etc/default/grub ==
 
 
  * The main configuration file for changing default settings. Upon installation, the following lines are available for alteration by the user:
 
 
  * '''''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 in GRUB, 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_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_HIDDEN_TIMEOUT=0'''''
 
  * This setting effects the menu display. The splash image, if enabled, will be displayed during any timeout.
 
  * {{attachment:info.png}} The menu will be hidden unless a # symbol begins the line. ( '''~-# GRUB_HIDDEN_TIMEOUT=0-~''' ).
 
  * The first time GRUB 2 runs it will look for other operating systems. If no other operating systems are detected the menu will be hidden. If other operating systems are recognized, the menu will be displayed.
 
  * 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.
 
    * 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.
 
 
 
  * '''''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_TIMEOUT=10'''''
 
  * {{attachment:info.png}} This instruction defers to the '''~-GRUB_HIDDEN_TIMEOUT-~''' unless '''~-GRUB_HIDDEN_TIMEOUT-~''' is commented (#). If '''~-GRUB_HIDDEN_TIMEOUT-~''' is active, the '''~-GRUB_TIMEOUT-~''' only operates once, and if, the menu is displayed.
 
  * Setting this value to -1 will cause the menu to display until the user makes a selection.
 
  * The GRUB 2 menu is hidden by default unless another OS is detected by the system. If there is no other OS, this line may be commented out unless the user changes it. To display the menu on each boot, uncomment the line and use a value of 1 or higher.
 
 
  * '''''GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`'''''
 
  * Retrieves 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". The entry "acpi=off", if required, would also be an option entered on this line.
 
 
  * '''''#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 remove the # symbol to make this line active. The 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 display, not the resolution of the operating system that boots.
 
    * Tip: Setting the same resolution in GRUB 2 and the operating system will decrease boot times slightly.
 
  * Although not required, the user can also specify the color bitdepth by appending it to the resolution setting. An example would be 1280x1024x24 or 640x480x32.
 
  * The user can also add multiple resolutions. If GRUB 2 cannot use the first entry, it will try the next setting. Settings are separated by a comma. Example: ''1280x1024x16,800x600x24,640x480''.
 
  * If using a splash image, make sure the resolution setting and the splash image size are compatible.
 
  * If using an entry that produces a "not found" message when running ''update-grub'', try adding or changing the color bitdepth.
 
  * Resolutions available to GRUB 2 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.
 
  * If this line is commented (#) or the resolution is unavailable GRUB 2 uses the default setting determined by ''/etc/grub.d/00_header''.
 
  * For a guide to changing resolutions when using a splash image see the ''Splash Images & Theming'' section.
 
  * '''''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.
 
 
 
 
* Additional instructions which may be included:
 
 
 
  * '''''GRUB_DISABLE_OS_PROBER=true'''''
 
  * Enables/disables the os-prober check of other partitions for operating systems, including Windows, Linux, OSX and Hurd.
 
 
= Boot Display Behavior =
 
 
GRUB 2 loads before any 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 "Configuring GRUB 2" section for specific entry and formatting guidance.
 
 
== 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 menu is displayed for a predetermined number of seconds. The default entry is highlighted and other selections may be made by the user until the timeout expires. The default timeout is now 3 seconds. The timer continues until any key is pressed or the highlighted entry is selected by pressing ENTER. If no user input is made GRUB 2 boots the default entry at the end of the timeout period.
 
  * Once a key has been pressed the timeout is deactivated and the user must make a selection manually. 
 
  * The default entry is determined by the '''''~-DEFAULT=-~''''' setting in ''/etc/default/grub''; the first "menuentry" is has a value of "0".
 
 
== Hidden ==
 
 
  * No menu entries are displayed. The splash screen, if configured, will be displayed.
 
  * 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''.
 
  * GRUB 2 can display a countdown timer to provide visual feedback on the time remaining until the default selection is chosen. The timeout setting is enabled in ''/etc/default/grub''
 
  * At the end of the timeout, the default entry determined by settings 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 not overridden by the user.
 
 
 
= Custom Menu Entries =
 
 
GRUB 2 allows users to create customized menu selections which will be automatically added to the main menu when `sudo update=grub` is executed. An empty ''40_custom'' file is available in ''/etc/grub.d/'' for use or to serve as an example to create other custom menus. Here are some considerations for custom menus:
 
 
* The name of the file determines the order of the selections in the menu. Numeric filenames are run first, followed by alphabetic filenames.
 
  * ''10_linux'' entries will appear before ''30_os-prober'' entries, which will be placed before ''40_custom entries'', which will preceed ''my.custom.entries'' inputs.
 
  * A user wishing for the custom menu entries to appear first on the main menu could name the folder ''06_xxx'' so its listings are first in the menu.
 
* The file must be made executable: `sudo chmod +x /etc/grub.d/filename`.
 
* The contents of the file is added to ''grub.cfg'' without changes when the `update-grub` command is executed.
 
* Unlike ''grub.cfg'', custom files can be edited at any time, are not read-only, and can be owned by the user if desired.
 
* Custom files are static. The contents will not be altered when new kernels are added or removed (unless the contents are effected by user-added scripts).
 
 
{{attachment:important.png}} If the custom file places the ''menuentry'' listings at the top of ''grub.cfg'', the user may wish to confirm the ''/etc/default/grub'' '''~-DEFAULT=-~''' setting after running  `update-grub`. Make sure it still points to the desired ''menuentry'' listing. When counting, the first "menuentry" in the ''/etc/default/grub'' is ''0''.
 
 
 
 
== Creating the Custom Menu ==
 
 
The user can either edit the default ''/etc/grub.d/40_custom'' file or create a new one. The easiest way to create the content of a custom menu is to copy a working entry from ''/boot/grub/grub.cfg''. Once copied, the contents of ''40_custom'' can be tailored to the user's desires.
 
* According to the default sample custom file (''/etc/grub.d/40_custom'') the first two lines of any custom file in ''/etc/grub.d'' should be:
 
  ||<tablestyle="background-color: #fffbdb; font-size:small;" style="border:none;">  #!/bin/sh||
 
  ||<style="border:none;">exec tail -n +3 $0||
 
* The user can copy existing ''menuentries'' from the ''/boot/grub/grub.cfg'' file or from a GRUB legacy file. If the user wishes to copy from a GRUB legacy ''menu.lst'' file:
 
  * A backup copy of this file may be in the ''/boot/grub'' folder if the user upgraded from GRUB to GRUB 2.
 
  * The following entries from the GRUB menu listing must be changed for them to work:
 
  * ''title'' is changed to ''menuentry''. The line must end with '''''{'''''
 
  * ''root'' is changed to ''set root=''
 
  * ''kernel'' must be changed to ''linux''
 
  * Any ''partition'' designation (sda'''4''', sdb'''6''') must be changed, as GRUB and GRUB 2 count the partitions differently. The first partition for GRUB 2 is '''1''', not '''0'''. Devices still start the count at '''0'''.
 
  * Look carefully at the format of any working GRUB 2 ''menulist'' entry to ensure the correct format is used.
 
 
* General '''menuentry''' Construction Rules:
 
  * The first line must start with '''menuentry''' and end with '''~+{+~'''
 
  * The area between the quotation symbols is what will appear on the GRUB 2 menu. Edit as desired.
 
  * The last line of the ''menuentry'' must be '''~+}+~'''
 
  * Do '''''not''''' leave empty spaces at the end of lines
 
  * The ''set root='' line should point to the GRUB 2 /boot location ( sd'''XY''' )
 
  * The ''root'' reference in in the ''linux'' line should point to the system partition. 
 
  * If GRUB 2 cannot find the referenced kernel, try replacing the UUID with the device name (example: /dev/sda6 ).
 
 
 
* A sample entry copied from the ''grub.cfg'' and altered by the user might look like this:
 
 
  ||<tablestyle="background-color: #fffbdb; font-size:small;" style="border:none;">'''menuentry''' "My Default Karmic" '''{'''||
 
  ||<style="border:none;">set root=(hd0,1)||
 
  ||<style="border:none;">search --no-floppy --fs-uuid --set cb201140-52f8-4449-9a95-749b27b58ce8||
 
  ||<style="border:none;">linux /boot/vmlinuz-2.6.31-11-generic root=UUID=cb201140-52f8-4449-9a95-749b27b58ce8 ro  quiet splash||
 
  ||<style="border:none;">initrd /boot/initrd.img-2.6.31-11-generic||
 
  ||<style="border:none;">'''}'''||
 
 
 
* A sample entry for a hard drive version of SystemRescueCD installed per the instructions on the web site (on sda8).
 
 
  ||<tablestyle="background-color: #fffbdb; font-size:small;" style="border:none;">      menuentry "System Rescue CD" {||
 
  ||<style="border:none;">set root=(hd0,8)||
 
  ||<style="border:none;">linux /sysrcd/rescuecd subdir=sysrcd setkmap=us||
 
  ||<style="border:none;">initrd /sysrcd/initram.igz||
 
  ||<style="border:none;">}||
 
 
 
* A sample entry for chainloading to another GRUB bootloader.
 
 
  ||<tablestyle="background-color: #fffbdb; font-size:small;" style="border:none;">      menuentry "Grub 1 Bootloader" {||
 
  ||<style="border:none;">set root=(hd0,8)||
 
  ||<style="border:none;">chainloader +1||
 
  ||<style="border:none;">}||
 
 
 
= Command Line & Rescue Mode =
 
 
There are several ways for a user to attempt to resume a failed boot. If the menu is still available, menu settings can be viewed and altered by the user. Additionally, if GRUB 2 detects errors during boot and cannot pass control to the selected kernel because of a ''grub.cfg'' error or omission it will revert to the ''rescue'' mode. Both methods allow the user to recover to a usable system via a limited command line interface.
 
 
== Editing Menus During Boot ==
 
 
* If the menu is not normally displayed during boot, hold down the SHIFT key as the computer attempts to boot to display the GRUB 2 menu.
 
* With the menu displayed, press any key (except ENTER) to halt the countdown timer and select the desired entry with the up/down arrow keys.
 
* Press the 'e' key to reveal the selection's settings.
 
  {{attachment:grub2.menu.edit.png}}
 
* Use the keyboard to position the cursor. In this example, the cursor has been moved so the user can change or delete the numeral ''9''.
 
* Make a single or numerous changes to any or every line. Do not use ENTER to move between lines.
 
* Tab completion is available, which is especially useful in entering kernel and ''initrd'' entries.
 
* When complete, determine the next step:
 
  * CTRL-x - boot with the changed settings (highlighted for emphasis)
 
  * CTRL-c - go to the command line to perform diagnostics, load modules, change settings, etc.
 
  * ESC - Discard all changes and return to the main menu.
 
  * The choices are listed at the bottom of the screen as a reminder.
 
 
== Command Line Mode ==
 
 
From the main GRUB 2 menu display the user can elect to drop to a command line by typing 'c'.
 
 
{{attachment:info.png}} Here are some useful tips & features for use with the GRUB 2 command line:
 
 
* Turning off the splash image may make viewing the terminal easier. Press "c" to go to the command line and then type: `set color_normal=white/blue` or the color combination you wish to use. "black" as the second entry retains the menu's transparency and should be avoided as a selection if the user wants to work with a solid background color.
 
 
* To prevent scrolling past the top of the screen, first run `set pager=1`, which acts like the terminal's "| more" command. This will allow one full screen of data, with line advancement continued by pressing the ENTER key.
 
 
* Type `help` to view a list of all the commands. Type `help x` to view help commands beginning with the letter "x". Tab completion and using the up arrow to repeat commands work the same as in a normal terminal.
 
 
* The ''TAB completion'' feature is very handy. At any point, pressing the TAB key may complete an entry, if the element is unique, or display available options. Typing a few additional characters and pressing TAB again may allow ''tab completion'' to finish the entry.
 
 
 
Some of the more useful commands include:
 
||<(^ tablewidth="95%" tablestyle="border:none; background-color: #fffbdb; font-size:small" rowstyle="border:none; " width="10%" style="border:none; ">'''Command'''||<style="border:none" width="5%"> ||<(^ style="border:none" >'''Result'''||
 
||<^ style="border:none">background_image||<style="width=5%; border:none;"> ||<^ style="border:none;">Load an existing background image. Use tab completion to help complete filename entries! `background_image=/usr/share/images/grub/` then tab to display a list of all images. Useful command when initially testing splash images. ||
 
||<^ style="border:none; ">cat||<style="border:none;"> ||<^style="border:none; ">Use to display the current file contents. `cat /boot/grub/grub.cfg , cat /etc/fstab`||
 
||<^ style="border:none; ">help||<style="border:none;"> ||<^ style="border:none;">View all available commands. Type `help x` to get a list of commands beginning with the letter x.  `help xxx` for information about the xxx command. This command should be preceded by running "set pager=1", which acts like the terminal's "| more" command, to prevent scrolling past the top of the screen.||
 
||<^ style="border:none; ">ls||<style="border:none;"> ||<^ style="border:none;">Used alone, lists all devices ''(hd0) (hd0,1)'', etc. View available partitions with `ls`. View /boot and /grub folder contents with `ls /boot, ls /boot/grub||
 
||<^ style="border:none; ">initrd||<style="border:none;"> ||<^style="border:none;">Load an ''initrd''.||
 
||<^ style="border:none; ">linux||<style="border:none;"> ||<^ style="border:none;">Load a ''linux'' kernel.||
 
||<^ style="border:none; ">loopback||<style="border:none;"> ||<^ style="border:none;">Mount a file as a device.  `loopback loop (hd0,2)/iso/my.iso||
 
||<^ style="border:none; ">lsmod||<style="border:none;"> ||<^ style="border:none; ">Display loaded modules||
 
||<^ style="border:none; ">reboot||<style="border:none;"> ||<^ style="border:none; ">Reboot the machine ||
 
||<^ style="border:none; ">rescue||<style="border:none;"> ||<^ style="border:none;">Enter the rescue mode ||
 
||<^ style="border:none; ">set ||<style="border:none;"> ||<^ style="border:none;">Show environmental variables in place. Combined with others, set variables such as `set gfxmode=640x480`, `set color_normal=cyan/black` Use the latter command in command line mode to test various menu font colors.||
 
||<^ style="border:none; ">vbeinfo||<style="border:none;"> ||<^ style="border:none; ">Display available monitor resolutions. ||
 
 
 
== Using CLI to Boot ==
 
 
If the user has problems booting but the menu is available, the easiest method to boot the system is to edit the existing menu. Refer to ''[[https://help.ubuntu.com/community/Grub2#Editing%20Menus%20During%20Boot|Editing Menus During Boot]]''. If GRUB 2 fails to find a usable ''grub.cfg'' file it should revert to the ''grub-rescue'' mode. The command line prompt will display ''grub-rescue>'' and no menu will be displayed. From this command line the user can attempt to manually enter the instructions to boot to a usable system.
 
 
 
If the command line prompt is not already active press "c" to enter the ''Command Line'' mode. You will see the GRUB 2 prompt: '''~-grub>-~''' or '''~-grub rescue>-~'''
 
 
{{attachment:info.png}} If you wish to cancel and start over at any time, ''~-ESC-~'' will remove changes and return the user to the previous menu.
 
 
Use the following two commands to determine the device (drive) and partition of the system you wish to boot.
 
||<(^ style="border:none;" width="10%">'''~-set-~'''||<style="border:none;">||<(^ style="border:none;">When '''~-set-~''' is typed without additional entries the command displays the current GRUB 2 settings.||
 
||<(^ style="border:none;">'''~- ls-~ '''||<style="border:none;">||<(^ style="border:none;">Run '''~- ls-~ '''  to see the devices recognized by GRUB 2. ''Example: (hd0) = sda; (hd0,1)=sda1; (hd1,3)=sdb3''||
 
 
=== Express Boot to the Most Recent Kernel ===
 
 
Press ''~-ENTER-~'' after entering each command.
 
 
||<(^ style="border:none;" width="30%">1. '''~-set root=(hd''X,Y'')-~''' ||<style="border:none;">||<style="border:none;">Type with correct ''X,Y'' results from the ''ls'' command and ENTER. Remember GRUB 2 counts the first drive as 0, the first partition as 1. Example: If the Ubuntu system is on sda5, enter: ''set root=(hd0,5)''||
 
||<(^ style="border:none;">2. '''~-linux /vmlinuz root=/dev/sdXY ro-~'''||<style="border:none;">||<style="border:none;">(Example: linux /vmlinux root=/dev/sda3)||
 
||<(^ style="border:none;">3. '''~-initrd /initrd.img-~'''||<style="border:none;">||<(^ style="border:none;">Selects the latest initrd image.||
 
||<(^ style="border:none;">4. '''~-boot-~'''||<style="border:none;">||<(^ style="border:none;">Boot to the latest kernel on the selected partition.||
 
----
 
 
=== Boot to a Specific Kernel Manually ===
 
 
If a GRUB 2 menu is not available for editing during the boot process a user can enter all the necessary information on the GRUB 2 command line necessary to boot a usable kernel. This section will provide a step-by-step guide on how to enter this information. The line will look similar to this graphic when completed:
 
 
Press ''~-ENTER-~'' only after completing each section ("A", "B", "C" and "D").
 
||<( tablewidth="95%" style="border:none;">A. Set the Root Partition (Step 1)||
 
 
||<(^tablewidth="95%" style="border:none;" width="20%">1. '''~-set root=(hd''X,Y'')-~''' ||<style="border:none;">||<(^ style="border:none;">Type with correct ''X,Y'' results from the ''ls'' command and ENTER. Remember GRUB 2 counts the first drive as 0, the first partition as 1. Example: If the Ubuntu system is on sda5, enter: ''set root=(hd0,5)''||
 
 
||<(-5 tablewidth="95%" style="border:none;">B. Enter the "linux" Line Information (Step 2-5) ||
 
 
||<( tablewidth="50%" bgcolor="#fffbdb" style="font-size:small; border:none;">linux ||<bgcolor="#d3fffb" style="font-size:small; border:none;">kernel ||<( bgcolor="#ffdff4" style="font-size:small; border:none;">root ||<( bgcolor="#dffbdb" style="font-size:small; border:none;">ro||
 
 
||<(^tablewidth="95%" style="border:none;" width="20%">2. '''~-linux-~''' ||<style="border:none;"> ||<(^style="border:none;"> Type and continue.||
 
||<(style="border:none;" >3. '''~-/boot/vml-~'''||<style="border:none;"> ||<(^ style="border:none;"> Type, then TAB to show the available kernels. Enter the correct kernel and continue.||
 
||<(^ style="border:none;">4. '''~-root=/dev/sd''XY''-~''' ||<style="border:none;">||<(^ style="border:none;">Type (with the correct device such as "sda1", "sdb5", etc) and continue. ||
 
||<(^ style="border:none;">5. '''~-ro-~''' ||<style="border:none;">||<(^ style="border:none;">Add any options, such as '''~-ro-~''', etc. ||
 
Once all the information on the line is correct it should look similar to the sample below. Press ~-ENTER-~. Look for confirmation.  If successfully entered GRUB 2 will display stored information between '''[ ]''' symbols. (First highlighted section below).
 
 
||<tablewidth="70%" style="border:none;" bgcolor="#fffbdb" style="font-size:small; border:none;">linux ||<bgcolor="#d3fffb" style="font-size:small; border:none;"> /boot/vmlinuz-2.6.31-9-generic ||<bgcolor="#ffdff4" width="50%" style="font-size:small; border:none;"> root=/dev/sda1 ||<bgcolor="#dffbdb" style="font-size:small; border:none;"> ro||
 
 
 
  {{attachment:grub2.cli.boot.png}}
 
 
||<(-5 tablewidth="95%" style="border:none;">C. Enter the "initrd" Line Information (Step 6-8) ||
 
 
||< tablewidth="50%" bgcolor="#fffbdb" style="font-size:small;">initrd ||<bgcolor="#d3fffb" style="font-size:small;">/boot/initrd.img-2.6.31-9-generic||
 
 
||<(^tablewidth="95%" style="border:none;" width="20%">6. '''~-linux-~''' ||<style="border:none;"> ||<(^style="border:none;"> Type and continue.||
 
||<(^tablewidth="95%" style="border:none;" width="20%">7. '''~-initrd-~''' ||<style="border:none;"> ||<(^style="border:none;"> Type, then TAB to show the available kernels. Enter the correct kernel and continue.||
 
||<(^ style="border:none;">8. '''~-/boot/init-~''' ||<^ style="border:none;">||<(^ style="border:none;">Type and TAB to show the available kernels.  Enter the correct initrd image. Look for a line similar to the confirmation line highlighted above.||
 
 
 
||<(-5 tablewidth="95%" style="border:none;">D. Boot (Step 9) ||
 
||<(^tablewidth="95%" style="border:none;" width="20%">9. '''~-boot-~''' ||<style="border:none;">||<(^ style="border:none;">Boot to the entered kernel/OS. '''~-CTRL-x-~''' may also work.||
 
 
 
== Rescue Mode ==
 
 
The ''rescue'' mode is a major GRUB 2 enhancement. If GRUB 2 fails to find a useable ''grub.cfg'' and is unable to transfer control to a kernel it will drop to a ''grub-rescue>'' prompt. From this prompt the user can investigate problems, make changes, and retry the boot.
 
 
The ''rescue'' mode provides fewer commands than the normal GRUB prompt line, but also provides these additional commands:
 
 
 
||<(^ tablewidth="95%" tablestyle="border:none; background-color: #fffbdb; font-size:small" rowstyle="border:none;" width="10%" style="border:none; ">'''Command'''||<style="border:none" width="5%"> ||<(^ style="border:none" >'''Result'''||
 
||<(^ style="border:none;">dump||<style="border:none" width="5%">||<^ style="border:none;">Clears memory||
 
||<style="border:none; ">exit||<style="border:none;"> ||<( style="border:none; ">Exit GRUB 2||
 
||<(^ style="border:none; ">normal||<style="border:none;"> ||<(^ style="border:none;">Return to the standard "grub>" mode if possible.||
 
 
The following commands can be used in the grub rescue mode:
 
 
||<tablewidth="95%" tablestyle="border:none; background-color: #fffbdb; font-size:small" style="width: 15%; border:none;">||<style="width: 15%; border:none;">||<style="width: 15%; border:none;">||<style="width: 15%; border:none;">||<style="width: 15%; border:none;">||<style="width: 15%; border:none;">||
 
||<style="border:none; text-align:left;">boot||<style="border:none; text-align:left;">cat||<style="border:none; text-align:left;">chainloader||<style="border:none; text-align:left;">dump||<style="border:none; text-align:left;">exit||<style="border:none; text-align:left;">freebsd||
 
||<style="border:none;">freebsd_loadenv||<style="border:none; text-align:left;">freebsd_module||<style="border:none; text-align:left;">help||<style="border:none; text-align:left;">initrd||<style="border:none; text-align:left;">insmod||<style="border:none; text-align:left;">linux||
 
||<style="border:none; text-align:left;">lsmod||<style="border:none; text-align:left;">multiboot||<style="border:none;">normal||<style="border:none; text-align:left;">rmmod||<style="border:none; text-align:left;">set||<style="border:none; text-align:left;">unset||
 
 
{{attachment:info.png}} If additional commands are needed, the user might try loading the normal GRUB 2 module with `insmod normal`. If successful, `help` and additional commands will be available.
 
 
At the '''`grub rescue>`''' prompt, accomplish the following actions to attempt to boot to the latest kernel:
 
 
||<(^tablewidth="95%" style="border:none;" width="30%">1. '''~-ls-~'''||<style="border:none;"> ||<(^style="border:none;"> 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.||
 
||<(^ style="border:none;">2. '''~-set root=/dev/sdXY-~''' ||<style="border:none;">||<(^style="border:none;"> ''X'' is the device/drive, starting with 0. ''Y'' is the partition, starting with 1. (Example: (hd0,1) is sda1. (hd3,5) is sdc5. ||
 
||<(^ style="border:none;">3. '''~-ls /boot-~''' ||<^ style="border:none;">||<(^style="border:none;">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.||
 
||<(^ style="border:none;">4. '''~-insmod /boot/grub/_linux.mod-~''' ||<(^ style="border:none;">||||<(^ style="border:none;">Load the ''linux'' module. Without this module loaded, the user will receive an "''Unknown command linux''" message when trying to load the kernel.||
 
||<(^ style="border:none;">5. '''~-linux /vmlinuz root=/dev/sdXY ro-~'''||<style="border:none;"> ||<(^style="border:none;">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)||
 
||<(^ style="border:none;">6. '''~-initrd /initrd.img-~''' ||<style="border:none;">||<(^style="border:none;">Load the ''initrd'' image. When pressing enter, the user may or may not see a message in the terminal. (See highlighted graphic above) ||
 
||<(^ style="border:none;">7. '''~-boot-~''' ||<style="border:none;">||<(^style="border:none;">Load the ''initrd'' image. When pressing enter, the user may or may not see a message in the terminal. (See highlighted graphic above) ||
 
 
 
==== Resolving an "Unrecognized Device String" (Error 11) ====
 
 
 
This error message is usually the result of a bad or malformed line within the ''menuentry''. The most common cause is a GRUB 2 upgrade from Jaunty when the user attempts to use the ''Chainload'' feature.
 
 
 
  1. During a boot GRUB 2 displays the following message:
 
 
 
    {{attachment:grub2.unrecognized.device.string.error.png}}
 
 
 
  1. Remembering there was a problem with the Jaunty chainload entries, the user presses a key to return to the main menu, then "e" until seeing "grub edit>". Edit the highlighted "Chainload into GRUB 2" entry or whichever entry the user attempted to boot.
 
 
    {{attachment:grub2.error.root.png}}
 
 
  1. The user, who has a keen memory, remembers that "root" needs to be changed to "uuid". Using the arrow keys to position the cursor, the "root" entry is replaced with "uuid". When finished editing, the user presses ENTER, then "b" to boot the revised selection. Note these are different commands than used in GRUB 2.
 
 
    {{attachment:grub2.error.uuid.png}}
 
 
 
= Booting an ISO =
 
 
Under Construction
 
 
= Splash Images & Theming =
 
 
== GRUB 2 Splash Images ==
 
 
GRUB 2's Splash Image capability is greatly enhanced over its predecessor. Configuring a boot splash image is a two step process: selecting the image to use and choosing the text colors to be displayed.
 
 
||<|5 tablewidth="95%" align=center style="border:none">{{attachment:grub2.lake.splash.png}}||<style="border:none" width="5%" > ||<style=" vertical-align: center; border:none; ">Install the default GRUB 2 splash image package, [[apt:grub2-splashimages|install the ''grub2-splashimages'' package]]||
 
||<style="border:none"> ||<style="border:none"> `sudo apt-get install grub2-splashimages`  ||
 
||<style="border:none"> ||<style="border:none"> Do not mistake this with the ''grub-splashimages'' package, which is not compatible with GRUB 2.  ||
 
||<style="border:none"> ||<style=" vertical-align: top; border:none; ">The default location for these downloaded images is ''/usr/share/images/grub''. This location must be added to ''05_debian_theme'' or the files copied elsewhere. (See below) ||
 
||<style="border:none"> ||<style="border:none"> Users can create and use their own splash images.  ||
 
 
=== Set the splash image ===
 
 
The GRUB 2's splash images are controlled by '''''/etc/grub.d/05_debian_theme'''''. Open this file for editing as root.
 
 
Find the following line and edit the highlighted area, replacing it with the path and name of the GRUB 2 splash image you wish to use:
 
  ||<bgcolor="#fffbdb" style="font-size:small;">for i in {'''/boot/grub,/usr/share/images/desktop-base'''}/moreblue-orbit-grub.{png,tga} ; do||
 
 
There are several things to note about this entry:
 
* GRUB 2 by default will look for splash images in ''/boot/grub'' and ''/usr/share/images/desktop-base''
 
* The ''grub2-splashimages'' package is '''not''' extracted to either of the above folders, but to ''/usr/share/images/grub''
 
* The user must either:
 
  * Change the folder location in the above line to point to the correct address, or
 
  * Move the splash images to one of the folders referenced above.
 
  * To add the ''grub'' folder, make the entry look like this, and change the filename to the desired splash image in ''/usr/share/images/grub'' folder.
 
  ||<bgcolor="#fffbdb" style="font-size:small;">for i in {'''/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub'''}/moreblue-orbit-grub.{png,tga} ; do||
 
 
* The filename ends with a period (.) ( /moreblue-orbit-grub~+'''.'''+~ )
 
* Splash image selection:
 
  * If the same filename exists in more than one folder, the filename in the earliest-designated folder will be used.
 
  * If the filename exists as more than one type (multiple extensions), the file with the earliest-designated extension will be selected.
 
The user can make several changes to the above line to expand splash image flexibility:
 
* Add a user-owned folder in which GRUB 2 will search for available splash images.
 
* Add the ability use JPEG files as splash images. At this time, only 8-bit JPEG images will display correctly.
 
 
 
The following shows the addition of a user's own splash folder and added JPEG support:
 
  ||<bgcolor="#fffbdb" style="font-size:small;">for i in {/boot/grub,/usr/share/images/grub,'''/home/drs/mysplash'''}/moreblue-orbit-grub.{png,tga,'''jpg,jpeg'''} ; do||
 
 
Once you have entered the path and filename into ''05_debian_theme'' you can run `sudo update-grub` to add the information into ''grub.cfg''. If adding the splash image was successful, the user will see ''"Found Debian image..."'' in the terminal as the command is executed. If this phrase is not seen, the image information was probably not entered.
 
 
 
=== Set menu font & highlight colors ===
 
 
These lines are contained in '''''/etc/grub.d/05_debian_theme'''''. The instructions do not apply to the "mono" theme settings near the top of the file.
 
 
 
  * The color of non-selected menu entries is set by the line below. The first color is the text color; the second is the background color.
 
 
  ||<bgcolor="#fffbdb" style="font-size:small;">  set color_normal='''black'''/black||
 
 
  * The code below sets the color of selected entries. The first color is the highlighted text color; the second is the background color of the selected line. If '''/black''' is the second entry, the highlighted line will be transparent and only the text will change color.
 
 
  ||<bgcolor="#fffbdb" style="font-size:small;">  set color_highlight=magenta/black||
 
 
{{attachment:important.png}} '''/black''' is the GRUB 2 default transparency color when listed second. Change only the first color (i.e. '''xxxxx'''/black) if using a splash image. If the second value in this line is changed to a color other than black the splash image will be hidden behind a solid color background.
 
 
* In the following graphic, the color_normal setting is ''white/black''. The color_highlight setting is ''cyan/blue''
 
 
  {{attachment:grub2.splash.bar.png}}
 
 
 
* These colors are available in GRUB 2. "black" as a second entry is considered "transparent".
 
  ||<-8 tablewidth="85%" width="13%" #000000 bgcolor="white" align="center" style="border:none;" tablestyle="font-size:small;"> ||
 
  ||< width="13%" #000000 style="color:white;" >black||<width="13%" #0000ff style="color:white;">blue||<width="13%" #804000 style="color:white;">brown||<width="13%" #00ffff>cyan||<width="13%" #333333 style="color:white;">dark-gray||<width="13%" #008000 style="color:white;">green||<width="13%" #E0FFFF>light-cyan||<#5454fe style="color:white;">light-blue||
 
  ||<#00FF00>light-green||<#999999>light-gray||<#FF00FF>light-magenta||<#fe5454>light-red||<#ff00ff>magenta||<#ff0000>red||<#ffffff>white||<#ffff00>yellow||
 
 
 
=== Testing Fonts & Splash Images ===
 
 
{{attachment:info.png}} Rather than rebooting to test the color combinations, the user can see the changes by using GRUB 2's command line during the boot process.
 
* Select the splash image and initial font colors as described above, update GRUB 2's files with `sudo update-grub`, and reboot.
 
* When the GRUB 2 splash image/menu appears, press any key to stop the countdown timer.
 
* Press ''c'' to enter the GRUB 2 command line.
 
* Experiment with various color/highlight modes. Make changes by typing:
 
  * `set color_normal=first-color/black`  and/or `set color_highlight=first-color/second-color`
 
  * Text colors are viewable immediately after the command is entered. You can use the "up" arrow to recall the last command and edit it to quicky test different color combinations.
 
  * Once you are finished, press ''ESC'' to return to the menu.
 
  * Repeat as desired.
 
  * Remember the desired color combinations, boot normally and edit ''/etc/grub.d/05_debian_theme'' and make the changes permanent.
 
  {{attachment:grub2.splash.color.edit.1.png}}
 
 
  * Save the file, then update GRUB 2: `sudo update-grub`
 
 
=== Changing Resolutions w/ Splash Images ===
 
 
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.
 
1. 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).
 
1. Run ''update-grub'' as root to add the new settings to ''/boot/grub/grub.cfg''
 
 
 
== Creating User Splash Images ==
 
 
GRUB 2's splash image management makes it easy to use a wide variety of splash images.
 
 
=== Resolution Settings ===
 
 
The images in the ''grub2-splashimages'' package are primarily 640x480 images.
 
 
GRUB 2 looks for a resolution setting in ''/etc/default/grub''. '''''If uncommented''''', the resolution is determined by this line:
 
 
 
  ||<bgcolor="#fffbdb" style="font-size:small;">GRUB_GFXMODE=640x480||
 
  * If no setting is found in ''/etc/default/grub'', GRUB 2 uses the resolution established in ''/etc/grub.d/00_header'', which is set at 640x480.
 
 
 
=== Image Creation & Setup ===
 
{{attachment:info.png}} In Ubuntu, refer to the ''System, Preferences, Display'' menu for available monitor resolutions, or run `vbeinfo` in the GRUB 2 command line to display available resolutions.
 
 
 
1. Determine the resolution you will use for the GRUB 2 splash image.
 
1. Create or resize any image to to the appropriate size.
 
  * GRUB 2 currently supports ''.png'', ''.tga'', and 8-bit ''.jpg/.jpeg'' images.
 
  * If using GIMP, naming the file with the applicable extension will save the file in the given format.
 
1. Make the applicable changes in the GRUB 2 configuration files:
 
  * ''/etc/default/grub'': Uncomment the ''GRUB_GFXMODE=640x480'' line and change the value if the resolution will be other than 640x480.
 
  * ''/etc/grub.d/05_debian_theme'': Enter the correct path and filename in the following line. Refer to the previous section for more information on how to edit this line.
 
  ||<bgcolor="#fffbdb" style="font-size:small;">for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do||
 
1. Run `sudo update-grub` to incorporate the changes into GRUB 2.
 
 
== Themes ==
 
 
GRUB 2 Theming is still under development, as is integration with ''gfxmenu''. Theme elements will include colors, fonts, progress indicators, menus, and labels. Both of these hold great promise but are not ready for release with Ubuntu 9.10. Check the ''Links'' section at the bottom of this page for references.
 
 
  ||<tablewidth="95%" align=center style="border:none;">{{attachment:grub2.theme.dinxter.png}}||<style="border:none;" width="15%" > ||<style="border:none;" align=center>{{attachment:grub2.theme.bennett.png}}||
 
 
 
 
= Reinstalling GRUB 2 =
 
 
There may be times when a user needs to either move or reinstall a GRUB 2 installation. The former may occur when the user wants to move the installation to another device or reconfigure some of the installation instructions. If a user cannot boot into an operating system at all, even using the ''[[https://help.ubuntu.com/community/Grub2#Rescue%20Mode|rescue mode]]'' mode, a complete reinstallation of GRUB 2 may be necessary.
 
 
== Changing or Moving GRUB 2 ==
 
 
The command to change the GRUB 2 installation device or boot files is `grub-install`  run as root. This command allows the user to modify the installation by setting the ROOT directory, preload modules, run specific setup files and more. When executed, `grub-install` may run one or more other commands, such as `grub-probe`, `grub-mkimage`, and `grub-setup`. Here are some considerations when running `grub-install`:
 
* The `grub-install` command should be used rather than `grub-setup` under normal circumstances. `grub-setup` will be called by `grub-install` when needed.
 
* The command should specify a device and when executed will install the required GRUB files to the location called for in the options. (example: `sudo grub-install /dev/sda` )
 
* If the user attempts to run the command with a specific partition (example: `sudo grub-install /dev/sda6` ) a warning will be issued. Specifying a partition is not recommended due to the use of blocklists, which the developers consider unreliable. An option is provided on how to override this recommendation if the user still wishes to do so.
 
* The list of options available for `grub-install` can be displayed in a terminal with '''~-grub-install --help-~'''.
 
* The man page for `grub-install` currently does not display the all the available options.
 
 
 
== Reinstalling from LiveCD ==
 
 
If you cannot boot from GRUB 2 review the section ''Boot Problems & Rescue Mode''. If a reinstall becomes necessary follow these instructions:
 
 
 
  1. Boot to the 9.10 Karmic LiveCD Desktop.
 
  1. Open a terminal - ''Applications, Accessories, Terminal''.
 
  1. Determine your normal system partition - (the switch is a lowercase "L")
 
  '''`sudo fdisk -l`''' 
 
  * If you aren't sure, run
 
  '''`df -Th`'''. Look for the correct disk size and ext3 or ext4 format.
 
  1. Mount your normal system partition:
 
  * Substitute the correct partition: sda1, sdb5, etc.
 
  * GRUB 2 counts the first drive as "0", but the first partition as "1"
 
  '''`sudo mount /dev/sdXX /mnt`'''
 
  1. ''Only if you have a separate boot partition'':
 
  * sdYY is the /boot partition designation (examply sdb3)
 
  *'''`sudo mount /dev/sdYY /mnt/boot`'''
 
  1. Mount devices:
 
  '''`sudo mount --bind /dev/ /mnt/dev`'''
 
  1. Chroot into your normal system device:
 
  '''`sudo chroot /mnt`'''
 
  1. Reinstall GRUB 2:
 
  * Substitute the correct device - sda, sdb, etc. Do ''not'' specify a partition number.
 
  '''`sudo grub-install /dev/sdX`'''
 
  1. Verify the install (use the correct device, for example ''sda''. Do ''not'' specify a partition):
 
  '''`sudo grub-install --recheck /dev/sdX`'''
 
  1. Exit ''chroot'':
 
  '''~-CTRL-D-~''' on keyboard
 
  1. Unmount devices: 
 
  '''`sudo umount /mnt/dev`'''
 
  * If you mounted a separate /boot partition:
 
  '''`sudo umount /mnt/boot`'''
 
  1. Unmount last device:
 
  '''`sudo umount /mnt`'''
 
  1. Reboot.
 
  '''`reboot`'''
 
 
 
Once the user can boot to a working system, try to determine why the system failed to boot. The following commands may prove useful in locating and/or fixing the problem.
 
To refresh the available devices and settings in ''/boot/grub/grub.cfg''
 
  * '''`sudo update-grub`'''
 
To look for the bootloader location.
 
  * '''`grub-probe -t device /boot/grub`'''
 
To install GRUB 2 to the sd''X'' partition's MBR  (sda, sdb, etc.)
 
  * '''`sudo grub-install /dev/sdX`'''
 
To recheck the installation. (sda, sdb, etc.)
 
  * '''`sudo grub-install --recheck /dev/sd''X''`''' 
 
 
 
 
= Uninstalling GRUB 2 =
 
 
== Reverting to GRUB Legacy ==
 
 
If a user chooses to return to GRUB legacy (0.97), these steps will remove GRUB 2 and install GRUB.
 
 
 
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.
 
1. Open a terminal: Applications, Accessories, Terminal.
 
1. Make backup copies of the main GRUB 2 folders & files. (Optional)
 
  * `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`
 
1. Remove GRUB 2
 
  * `sudo apt-get purge grub2 grub-pc`
 
  *{{attachment:important.png}} The system will be unbootable until another bootloader is installed.
 
  * Once the packages are removed, many files will still remain in '/boot/grub'
 
 
1. Install GRUB 0.97
 
  * `sudo apt-get install grub`
 
1. With ''grub'' installed, the user must still create the ''menu.lst'' and ''stage1/stage2'' files by running the following two commands.
 
  A. `sudo update-grub`
 
  * Generates ''menu.lst''
 
    * Tab to "Yes" when prompted.
 
  A. `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.
 
1. Reboot
 
{{attachment:important.png}}If the user receives an "Unrecognized device string Error 11" message on rebooting see the [[https://help.ubuntu.com/community/Grub2#Resolving%20an%20%22Unrecognized%20Device%20String%22%20(Error%2011)|Resolving an "Unrecognized Device String" (Error 11)]] section for instructions on how to edit the menu and make the system bootable.
 
 
 
   
 
= Links =
 
[[GrubHowTo]]
 
 
== External Links ==
 
[[http://www.gnu.org/software/grub|GNU GRUB]]
 
 
[[http://grub.enbug.org/Manual|GNU GRUB 2 Manual]]
 
 
[[http://members.iinet.net/~herman546/p20.html|Illustrated Dual Boot HomePage]]
 
 
[[http://grub.gibibit.com/Theme_format|http://grub.gibibit.com/Theme_format]] (Themes)
 
----
 
CategoryBootAndPartition
 

Trenutačna izmjena od 14:04, 1. studenoga 2009.