Professional Documents
Culture Documents
Grub2
Page too long: This article is too long, and should be split into sub-articles. More info... GRUB 2 is the default boot loader and manager for Ubuntu since version 9.10 (Karmic Koala). 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 Free Software. In this guide, GRUB 2 is version 1.98 or later. GRUB legacy (version 0.97) will be referred to as GRUB. To determine your version, use grub-install -v. Grub version 1.99 will be the default on Ubuntu 11.04 (Natty Narwhal) and introduces some major changes in the Grub file contents. The main user interface file, /etc/default/grub will appear relatively unchanged to the user. This guide primarily details the use of Grub 1.98, the Grub release found in Ubuntu 10.04 LTS (Lucid Lynx). Content reflecting other versions of Grub 2 will be noted in the appropriate entry.
Contents 1. Improvements 2. GRUB vs GRUB 2 1. Upgrading to GRUB 2 From GRUB 3. File Structure 1. /boot/grub/grub.cfg 2. /etc/default/grub 3. /etc/grub.d/ (directory) 4. Configuring GRUB 2 1. /etc/default/grub (file) 5. Boot Display Behavior 1. Initial Default 2. Timed Display 3. Hidden 4. Saved 5. Last Boot Failed or Boot into Recovery Mode 6. Custom Menu Entries 1. Creating the Custom Menu 2. Using Only a Custom Menu 7. Fallback mode 8. Command Line and Rescue Mode 1. Editing the GRUB 2 Menu During Boot 2. GRUB 2 Prompt Usage 3. GRUB 2 Troubleshooting Preparation 4. ''grub>'' Prompt Booting 5. Rescue Mode (''grub rescue>'') Booting 6. Boot a Specific Kernel Manually 9. GRUB Errors 1. Resolving an "Unrecognized Device String" (Error 11) 2. File Not Found (Error 15) 3. update-grub complains about missing devices 4. error: no such partition 10. GRUB 2 Splash Images 1. Set the splash image 2. Set menu font and highlight colors 3. Testing Fonts and Splash Images 4. Changing Resolutions w/ Splash Images 5. Creating User Splash Images 6. Resolution Settings 7. Image Creation and Setup 11. Themes 12. Reinstalling GRUB2 1. Methods of Reinstalling 1. Use Boot-Repair Graphical Tool 2. Copy LiveCD Files 3. Copy Partition Files 4. ChRoot 5. Purge & Reinstall 2. Post-Restoration Commands 3. Changing or Moving GRUB 2 13. Uninstalling GRUB 2 1. Reverting to GRUB Legacy 14. Selected Problems and Bugs 1. External Drive Installs and ''grub-pc'' Updates 2. External Drive Installs and MBR Selection 3. Boot Partition is in Logical Volume whose Volume Group contains a snapshot
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)
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 installation of Ubuntu 9.10 or later with no other installed operating systems, GRUB 2 will boot directly to the login prompt or Desktop. No menu will be displayed. Hold down SHIFT to display the menu during boot. In certain cases, pressing the ESC key may also display the menu. 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 Grub 2 configuration file, normally located in the /boot/grub folder, is grub.cfg. It is the product of various scripts
/boot/grub folder, is grub.cfg. It is the product of various scripts and should not normally be edited directly. grub.cfg is overwritten by certain Grub 2 package updates, whenever a kernel is added or removed, or when the user runs update-grub. The menu list of available Linux kernels is automatically generated by running update-grub.
15. 16.
17. 18.
Volume Group contains a snapshot 4. insmod fails with "error: no such disk" Security 1. Preventing booting via Grub command-line Miscellaneous 1. Booting from a serial console 2. Booting FreeBSD, NetBSD, and multiboot OSes Links External Links
The user can create a custom file in which the user can place his own menu entries. This file will not be overwritten. By default, a custom file named 40_custom is available for use in the /etc/grub.d folder. The primary configuration file for changing menu display settings is called grub and by default is located in the /etc/default folder. There are multiple files for configuring the menu - /etc/default/grub mentioned above, and all the files in the /etc/grub.d/ directory. Partition numbering has changed. The first partition is now 1 rather than 0. The first device/drive is still hd0 by default (no change). These designations can be altered if necessary in the device.map file in the /boot/grub folder. Automated searches for other operating systems, such as Windows, are accomplished whenever update-grub is executed. Operating systems found will be placed in the Grub 2 menu. Changes made in the configuration files will not take effect until the update-grub command is executed.
1. At the first prompt, read the message, tab to select "OK", then press ENTER.
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. 3. The next step(s) will import sections from GRUB's menu.lst to the "Linux command line" (shown) and possibly
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.
When installing on a fresh drive, you may need to mark the selected partition as bootable. 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.
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 and Rescue Mode section. 5. Test the new entries and note the Grub 1.9X version number (highlight added).
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
During installation the user will be prompted to provide the device(s) on which to install GRUB 2. Use the UP/DOWN keys to highlight a device (sda, sdb, etc), then the SPACE key to select the device. Once at least one device is selected, use the TAB key to highlight OK and press ENTER. Failure to select a drive will result in a GRUB Error 15 and failure of the installation. 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 directory and file hierarchy. The menu.lst of GRUB legacy is no longer used.
GRUB 2 incorporates a totally revised directory 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: Device: sudo grub-probe -t device /boot/grub UUID: sudo grub-probe -t fs_uuid /boot/grub The main directories and files used by GRUB 2 include:
/boot/grub/grub.cfg
grub.cfg 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 script in the /etc/grub.d directory 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 sudo. grub.cfg is automatically generated with kernel installations/removals, updates to some GRUB 2 packages, when update-grub is executed, or when other operations would affect the boot process. In early versions of GRUB 2, the file is "read-only". Later versions removed the "read-only" attribute although as a system file it is still owned by "root". The user will also see a multitude of *.mod files in the /boot/grub directory. These files reflect the modular nature of GRUB 2 and are loaded during boot by GRUB 2 bootloader as required.
/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 section below.
/etc/grub.d/ (directory)
The scripts in this directory 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 directory 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 menu entries can be added to the 40_custom file or in a newly created file. Based on its 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 its alphanumeric sorting would place it ahead of 10_ through 40_ files. Only executable files generate output to grub.cfg during execution of update-grub. By default the files in the /etc/grub.d folder are executable. The major default files in this directory used by Ubuntu 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 the GRUB 2 background 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. Information on how to set font renderings and splash images are discussed in the Splash Images and Themes section. 10_hurd Locates Hurd kernels. Not currently used. 10_linux Identifies kernels on the root device for the operating system in use and creates menu entries. Note: All kernels residing in the boot folder are included in this section. If you don't want all your old kernels to appear in the menu, remove the kernels from the /boot folder. Grub 1.99RC (Ubuntu 11.04) introduces the submenu concept. The latest installed kernel is displayed on the main menu. Additional kernels are located in a submenu. 20_memtest86+ Searches for /boot/memtest86+.bin and includes it as an option on the GRUB 2 boot menu. There is
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 and running sudo update-grub. 30_os-prober This script uses os-prober to search for Linux and other operating systems and place the results in the GRUB 2 menu. 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. The user can insert an entry into /etc/default/grub which disables this script (see below). By default os-prober ignores any disks that possess dmraid signatures, which can be listed via sudo dmraid -r -c (if installed). 40_custom A template for adding custom menu entries which will be inserted into grub.cfg upon execution of the update-grub 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.
Configuring GRUB 2
Important note: Configuration changes are normally made to /etc/default/grub and to the custom files located in /etc/grub.d. Any changes made directly to the /boot/grub/grub.cfg are overwritten whenever update-grub is executed either by the user or when called automatically by various system functions. After editing /etc/default/grub or the scripts in the /etc/grub.d folder the user should run sudo update-grub to incorporate the changes into the GRUB 2 menu.
Some of the most common changes, such as the default OS/kernel and menu timeout, can be changed from within a GUI applications such as StartUp-Manager or Grub Customizer. See the community doc StartUpManager for information about how to install and use this application.
/etc/default/grub (file)
The main configuration file for changing default settings. The following lines are available for alteration by the user. GRUB_DEFAULT - Sets the default menu entry. Entries may be numeric, a complete menuentry quotation, or "saved" GRUB_DEFAULT=0 Sets the default menu entry by menu position. Counting of entries is the same as in GRUB - the first "menuentry" in grub.cfg is 0, the second is 1, etc. Note: Grub 1.99 introduces a submenu menu structure. For a menu item in a submenu, the entry becomes a twodigit entry. The first entry is the position of the submenu title in the main menu. The second entry is the position within the submenu. If the submenu is the 3rd entry in the main entry, and the user wishes to boot the first entry in the submenu, it would be designated as "2>0" 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" In a Grub 1.99 submenu, the format would first include the submenu number, followed by the title. Example: "2>Ubuntu, Linux 2.6.38-8-generic"
GRUB_DEFAULT=saved
The information in this section applies to GRUB 1.98 and later. Enables the "grub-reboot" and "grub-set-default" commands to set the default OS. The default OS will not be set by an interactive selection of an OS from the menu. grub-set-default Sets the default boot entry until changed. The format is sudo grub-set-default X, with X being the menu entry position (starting with 0 as the first entry) or the exact menu string. Examples: sudo grub-set-default 3 or sudo grub-setdefault "Ubuntu, Linux 2.6.32-15-generic" To obtain the existing menu entry choice number (starting from 0) or the menu entry "string", run grep menuentry /boot/grub/grub.cfg grub-reboot This command sets the default boot entry for the next boot only. The format of the command is the same as for grub-set-default (see above). GRUB_SAVEDEFAULT= If set to true this setting will automatically set the last selected OS from the menu as the default OS
GRUB_SAVEDEFAULT= If set to true this setting will automatically set the last selected OS from the menu as the default OS on the next boot. No commands need be run to set the default OS. Any time a menu entry is manually selected from the GRUB 2 menu, it becomes the default OS. This option currently does not work if your /boot directory resides on an LVM partition or RAID. GRUB_HIDDEN_TIMEOUT=0 This setting determines how long a screen without the GRUB 2 menu will be displayed. While the screen is blank, the user can press any key to display the menu. The default behavior is to hide the menu if only one operating system is present. If a user with only Ubuntu wishes to display the menu, place a # symbol at the start of this line to disable the hidden menu feature. For at least GRUB 1.97~beta - the version found in Karmic - whether or not the menu can include a timeout delay with a blank screen is dependent on whether GRUB 2 finds multiple operating systems. Note to multiple-OS users: If GRUB 2's os-prober identifies additional operating systems while running the /etc/grub.d/30_os-prober script the hidden menu timeout feature is disabled by conditional statements. This also disables the ability to use the SHIFT key to display the menu during boot. Users with multiple operating systems wishing to hide the menu can find script edits on various forums which will allow them to add a hidden timeout feature to the boot sequence (for example: ubuntuforums).
GRUB_HIDDEN_TIMEOUT=0
No menu is displayed. The system is immediately booted to the default OS. This is the default setting with only one identified operating system. To display the menu under this condition, place a # symbol at the start of the line and ensure the GRUB_TIMEOUT setting is a positive integer. If the value is set to 0, a keystatus check is performed to determine if the SHIFT key is depressed. If GRUB 2 determines the SHIFT key is depressed during the boot process, the menu will be displayed. This gives the user a method of interrupting an automatic boot which would normally not display the menu.
GRUB_HIDDEN_TIMEOUT=X
X is a positive integer (e.g. 1, 5, 10, etc) The boot process will pause and display a blank screen or the designated splash image for X seconds. At the end of the time period, the system will boot. No menu will be displayed. While GRUB_HIDDEN_TIMEOUT is active, the menu can be displayed by pressing any key.
GRUB_HIDDEN_TIMEOUT=
No value entered after the = sign The menu will be displayed for the number of seconds designated by GRUB_TIMEOUT. GRUB_HIDDEN_TIMEOUT_QUIET=true
true false
No countdown is displayed. The screen will be blank. A counter will display on a blank screen for the duration of the GRUB_HIDDEN_TIMEOUT value.
GRUB_TIMEOUT=10 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 Entries on this line are added to the end of the 'linux' command line (GRUB legacy's "kernel" line) for both normal and recovery modes. It is used to pass options to the kernel. 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. To view 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". #GRUB_TERMINAL=console
#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 The search line will still use UUIDs. The linux line will use the /dev/sdXY convention when this option is enabled. #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 bit depth 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, the resolution setting and the splash image size should be compatible for best results. 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. In GRUB 1.99 (Natty) the 'optimum' resolution is selected by GRUB if no resolution is specified. For a guide to changing resolutions when using a splash image see the Splash Images and Theming section. GRUB_DISABLE_LINUX_RECOVERY=true Uncomment (remove the # symbol) to prevent the "Recovery" mode kernel options from appearing in the menu. If you want a "Recovery" option for only one kernel, make a special entry in /etc/grub/40_custom. GRUB_INIT_TUNE="480 440 1" When uncommented, plays a single beep just prior to the Grub 2 menu display. The format is tempo [pitch1 duration1] [pitch2 duration2] ... tempo is set once and applies to all duration settings. duration is the result of 60/tempo. A duration of 1 with a tempo of 60 would produce a 1 second beep. A duration of 1 with a tempo of 480 produces a .125 second beep. Caution: The menu is displayed after the tune is complete. Creating a long tune will delay the appearance of the menu. Online documentation is available by typing info grub --index-search play in a terminal. It mentions the ability to play a tune with the command play file if the tune is composed with little-endian numbers. Additional options which may be included: GRUB_BACKGROUND (Maverick or later) - Sets the background image, enter the full path to the image here. See splash image configuration above for further details and other options. GRUB_DISABLE_OS_PROBER=true Enables/disables the os-prober check of other partitions for operating systems, including Windows, Linux, OSX and Hurd, during execution of the update-grub command. For a list of available predesignated entries, run: grep DEVICE -A40 /usr/sbin/grub-mkconfig
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
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 10 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" 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
Saving an OS can be achieved by running sudo grub-set-default if DEFAULT=saved is set in /etc/default/grub. It may also be saved if GRUB_SAVEDEFAULT=true is also set in /etc/default/grub. In this case, the default OS remains until a new OS is manually selected from the GRUB 2 menu or the grub-set-default command is executed.
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:
#!/bin/sh 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 directory 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 ((hd0,4), (hd1,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 ( (hdX,Y) ) The search line's --set has been replaced in GRUB 1.99 (Ubuntu 11.04 and later) with --set=root . 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 *:
menuentry "My Default Karmic" { set root=(hd0,1) search --no-floppy --fs-uuid --set cb201140-52f8-4449-9a95-749b27b58ce8 linux /boot/vmlinuz-2.6.31-11-generic root=UUID=cb201140-52f8-4449-9a95-749b27b58ce8 ro quiet splash initrd /boot/initrd.img-2.6.31-11-generic }
* For GRUB 1.99 (Natty) and later, the search line is modified:
search --no-floppy --fs-uuid --set-root=cb201140-52f8-4449-9a95-749b27b58ce8
A sample entry for a hard drive version of SystemRescueCD installed per the instructions on the web site (on sda8).
menuentry "System Rescue CD" { set root=(hd0,8) linux /sysrcd/rescuecd subdir=sysrcd setkmap=us initrd /sysrcd/initram.igz }
# This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above.
Remove everything above the first menuentry except the existing header lines. Remove all but the following files from the /etc/grub.d folder: 00_header, 05_debian_theme, 40_custom and README. Alternatively, you may keep other files in the /etc/grub.d folder if you make them unexecutable. Edit, add, or remove menuentries as desired, then save the file. Run update-grub as root to apply the changes! Make sure you log-in as root when doing this. We also recommend that you're prepared and stay offline so that you don't expose yourself to Internet hazards while being root!
Fallback mode
It is possible to configure Grub2 to fall back to a known good menu-entry if the default menu-entry for some reason fails to boot. An example script that can be used for this is available at this webpage (in German).
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). 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. Edits made to the menu in this manner are non-persistent. They remain in effect only for the current boot. The changes must be re-entered on the next boot. Once successfully booted, the changes can be made permanent by editing the appropriate file, saving the file, and running update-grub as 'root'.
Here are some useful tips and features for use with the GRUB 2 command line: Turning off the splash image . This 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. Limit terminal output to one screen. 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. Help. 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. TAB completion. This 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:
Command background_image Result Load an existing background image. Use tab completion to help complete filename entries! background_image (hd0,1)/usr/share/images/grub/ then tab to display a list of all images. Useful command when initially testing splash images. Use to display the current file contents. cat /boot/grub/grub.cfg , cat /etc/fstab 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. Used alone, lists all devices known to GRUB 2, such as (hd0) (hd0,1) , etc. View available partitions with ls. View /boot and /grub directory contents with `ls /boot, ls /boot/grub
cat help
ls
Load an initrd . Load a linux kernel. Mount a file as a device. `loopback loop (hd0,2)/iso/my.iso Display loaded modules Reboot the machine Enter the rescue mode 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. Display available monitor resolutions.
vbeinfo
1.* set root=(loop0) 2.* linux /vmlinuz root=/dev/sdXY loop=/ubuntu/disks/root.disk ro Non-Wubi and Wubi users should now both continue with ... 3. initrd /initrd.img Selects the latest initrd image. 4. boot Boot to the latest kernel on the selected partition.
Remember that the commands issued at the grub> prompt are not permanent! After successfully booting into the system the user should run 5. sudo update-grub and inspect the GRUB 2 configuration file, /boot//grub/grub.cfg. For problems with booting the main linux kernel, ensure the search, linux, and initrd lines in the "### BEGIN /etc/grub.d/10_linux ###" section of the file now correctly point to the correct locations. The user may need to reinstall GRUB 2 6. sudo grub-install /dev/sdX If the system fails to boot, proceed to the grub rescue> section to run more targeted boot commands.
Among the commands which can be used in the grub rescue mode if the normal module can be loaded:
boot ls cat multiboot chain normal help search insmod set linux unset
Once the user has confirmed the paths and existence of the proper folders in the previous section, run the following commands: Rescue Prompt Boot Instructions (* Wubi Users See Note): 1. set prefix=(hdX,Y)/boot/grub 2.* set root=(hdX,Y) 3. insmod normal 4. normal Use the values determined earlier. Example: If the Ubuntu system is on sda5, enter: set prefix=(hd0,5)/boot/grub Example: set root=(hd0,5) Attempt to load the normal module. Activate the normal module. If successful, the GRUB 2 menu may
4. normal 5. set 6. ls /boot 7. insmod linux 8.* linux /vmlinuz root=/dev/sdXY ro 9. initrd /initrd.img 10. boot
Activate the normal module. If successful, the GRUB 2 menu may appear. (Optional) Review the current settings. (Optional) Check for a vmlinuz and a initrd.img entry. An error message usually means the path is incorrect. Selects the latest kernel. Example: linux /vmlinuz root=/dev/sda5 ro Selects the latest initrd image.
* For Wubi installs (within Windows) only substitute these commands in Steps 2 and 8: 2. set root=(loop0) 8. linux /vmlinuz root=/dev/sdXY loop=/ubuntu/disks/root.disk ro Some additional considerations: The current prefix and root settings may be checked at any time with the set command. To remove a setting, use the unset command (example: unset prefix ). Modules must be loaded before they can be used. If a module has not been loaded a unknown command error is displayed. If an incorrect path is specified, a file not found error message may be displayed. The linux module must be loaded to be able to load both the kernel and the initrd image unless the normal module is loaded first. If the modules cannot be found in the /boot/grub folder, the user may be able to load them from the /usr/lib/grub/i386-pc folder. The address if Ubuntu was installed on sda1 would be (hd0,1)/usr/lib/grub/i386-pc and the command would be: insmod (hd0,1)/usr/lib/grub/i386-pc/normal.mod For a successful boot from the rescue prompt, the prefix path and root= setting must be correct, the linux module must be loaded, and the kernel (vmlinuz) and initrd image (initrd.img) must be accepted.
The user should attempt to load the normal module to regain more capabilities while in the Grub 2 terminal. Try loading the normal GRUB 2 module with insmod normal, followed by normal on a separate line to activate the module. If successfully loaded and activated, help and additional commands will be available. These changes are not permanent. After successfully booting into the system the user should run sudo updategrub and inspect the GRUB 2 configuration file (/boot//grub/grub.cfg). For problems with booting the main linux kernel, ensure the search, linux , and initrd lines in the [### BEGIN /etc/grub.d/10_linux ###] section of the file now point to the correct locations. The user may need to reinstall GRUB 2 using sudo grub-install /dev/sdX.
linux /boot/vmlinuz-<your version> root=/dev/sdXY ro initrd /boot/initrd-<your version> boot Expanded Instructions *: Press ENTER only after completing each step ("1", "2", "3" and "4"). Step 1*. Set the Root Partition set root=(hdX,Y) Use the correct X,Y results from the ls command and ENTER. Remember GRUB 2 counts the first drive as 0, the first partition as 1. For example, if the Ubuntu system is on sda5, enter: set root=(hd0,5)
first partition as 1. For example, if the Ubuntu system is on sda5, enter: set root=(hd0,5) * For a Wubi install inside Windows, substitute the following command: set root=(loop0) Step 2*. Enter the "linux" line information linux /boot/vmlinuz-<your version> root=/dev/sdXY ro * For a Wubi install inside Windows, substitute the following command: root=/dev/sdXY loop=/ubuntu/disks/root.disk Afer typing linux /boot/, the user can TAB to display the available kernels. There is no space character after "/". If no kernels are visible, the address in the "Set Root" section may be incorrect. Enter the correct kernel by typing or using tab completion. For the root=/dev/ section use the correct device such as "/dev/sda1", "/dev/sdb5", etc Add any options, such as ro (read-only), at the end of the line (normally not required). Once all the information on the line is correct it should look similar to the sample below.
linux /boot/vmlinuz-2.6.31-16-generic root=/dev/sda1 ro
When correctly typed and ENTER, if the linux kernel is found, a line similar to the "Linux-bzImage" confirmation line highlighted below will appear.
If a "file not found" or similar error message occurs, either the device/partition/file does not exist or GRUB 2 is not looking at the correct drive, partition and/or directory. Determine the correct location using the ls command and then run the following command. Repeat Step 2. set prefix=(hdX,Y)/boot/grub Step 3. Enter the "initrd" line information initrd /boot/initrd.img-<your version> Afer typing initrd /boot/, the user can TAB to display the available initrd images. Do not leave a space after the "/". If no images are visible, the address in the "Set Root" section may be incorrect. Enter the correct image by typing or using tab completion. Once all the information on the line is correct it should look similar to the sample below. Press ENTER. Look for confirmation.
initrd /boot/initrd-2.6.31-16-generic
When correctly typed and entered, if the initrd image is found, a line similar to the "Initrd"" confirmation line highlighted in the graphic above should appear. Step 4. Boot boot Type the command and press ENTER.
GRUB Errors
GRUB 2 does not report error numbers. If a number is associated with an error, it is a problem with the transition from GRUB legacy to GRUB 2.
2. 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.
3. 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.
If the user intends to keep the dual GRUB option, to correct the error open /boot/grub/menu.lst as root and change "root " to "uuid" in second line of the "Chainload into Grub 2" menu entry.
If unable to eliminate the BIOS limitation, the user can create a separate /boot partition within the disk area seen by the BIOS. CreateBootPartitionAfterInstall
/usr/share/images/desktop-base/desktop-grub.png (if desktop-base is installed) Default theme (no image): Aubergine background, selected item black on light gray background) All Versions Splash image selection: tga, png and jpeg (8-bit) images may be used. Use images with the RGB color mode. Indexed images will not display. Once you have entered the path and filename 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 background image..." in the terminal as the command is executed. If this phrase is not seen, the image information was probably not incorporated into the grub.cfg file. Troubleshooting Images. If the image is not displayed, check: The path & filename in /etc/default/grub are correct. The image is of the proper size & format (tga, png, 8-bit jpg). The image was saved in the RGB mode, and is not indexed. The console mode is not enabled in /etc/default/grub. The update-grub command must be executed to place the background image information into the /boot/grub/grub.cfg file. Grub 1.97 (Karmic Koala) Only: 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:
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 directories, but to /usr/share/images/grub The user must either: Change the directory location in the above line to point to the correct address, or Move the splash images to one of the directories referenced above. To add the grub directory, make the entry look like this, and change the filename to the desired splash image in /usr/share/images/grub directory.
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 directory, the filename in the earliest-designated directory 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 directory in which GRUB 2 will search for available splash images. The following shows the addition of a user's own splash directory and added JPEG support:
for i in {/boot/grub,/usr/share/images/grub,/home/drs/mysplash}/moreblue-orbit-grub.{png,tga,jpg,jpeg } ; do
Failure to do so would indeed allow the selected background in the GRUB_BACKGROUND option to be displayed when Grub2 loads, but not the color changes (see below) from taking effect on account of the conflict.
loads, but not the color changes (see below) from taking effect on account of the conflict. The color of selected menu entries is set by the color_highlight setting. Note in more recent versions of Grub2 the entry is uppercase. The color of non-selected menu entries is set by the color_normal setting if a background image is also in use. Note in more recent versions of Grub2 the entry is uppercase. If a background image is not in use: Modify the lines in the set_mono_theme section: The color of selected menu entries is set by menu_color_highlight setting. The color of non-selected menu entries is set by menu_color_normal setting. The first color is the text color; the second is the background color.
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.
set color_highlight=magenta/black
/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
These colors are available in GRUB 2. "black" as a second entry is considered "transparent".
black light-green blue light-gray brown cyan dark-gray magenta green red light-cyan white light-blue yellow
light-magenta light-red
Save the file if any changes are made and then update GRUB 2: sudo update-grub
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:
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.
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.
Reinstalling GRUB2
There may be times when a user needs to either move or reinstall a GRUB 2 installation. GRUB 2 needs to be reinstalled when a user is presented with a blank screen with only the word "GRUB", no prompt, and no ability to enter commands. This often happens when the MBR of the booting device is altered and GRUB 2 is removed, such as when Windows is installed after Ubuntu. Additionally, if a user cannot boot into an operating system at all, even using the rescue mode mode, a complete reinstallation of GRUB 2 may be necessary. If you cannot boot from GRUB 2 review the section Rescue Mode ("grub rescue>") Booting.
Methods of Reinstalling
There are various methods; some require booting from a LiveCD. The simplest method is presented first. If the first method does not work, follow the second or subsequent methods, which are more complex and contain more options and instructions. As GRUB 2 has changed with each release, please try to use a LiveCD that has the same version of Grub2 as the installed version. However, since this is a reinstall it 'should' be possible to use older (or newer) versions too.
This is a quick and simple method of restoring a broken system's GRUB 2 files. The terminal is used for entering commands and the user must know the device name/partition of the installed system (sda1, sdb5, etc). The problem partition is located and mounted from the LiveCD. The files are then copied from the LiveCD libraries to the proper locations and MBR. It requires the least steps and fewer command line entries than the following methods. If for example Windows is on sda1 and Ubuntu is on sda5, and Windows has overwritten the MBR, then the target for grub installation will be /dev/sda5, and the MBR in the boot sector of sda will be re written for grub. This operation will write to the MBR and restore the modules and core.img to /boot/grub. It will not replace or restore grub.cfg or fix corrupted files. 1. Boot the LiveCD Desktop. 2. Open a terminal by selecting Applications, Accessories, Terminal from the menu bar. 3. Determine the partition with the Ubuntu installation. The fdisk option "-l" is a lowercase "L". a. sudo fdisk -l If the user isn't sure of the partition, look for one of the appropriate size or formatting. Running sudo blkid may provide more information to help locate the proper partition, especially if the partitions are labeled. The device/drive is designated by sdX, with X being the device designation. sda is the first device, sdb is the second, etc. For most users the MBR will be installed to sda, the first drive on their system. The partition is designated by the Y. The first partition is 1, the second is 2. Note the devices and partitions are counted differently. 4. Mount the partition containing the Ubuntu installation.
sudo mount /dev/sdXY /mnt
Example: sudo mount /dev/sda1 Note: If the user has a separate /boot partition, this must be mounted to /mnt/boot Note: If the user has a separate /home partition, this must be mounted to /mnt/home. Encrypted home partitions should work. 5. Run the grub-install command as described below. This will reinstall the GRUB 2 files on the mounted partition to the proper location and to the MBR of the designated device.
sudo grub-install --root-directory=/mnt /dev/sdX
Example: sudo grub-install --root-directory=/mnt /dev/sda In Grub 1.99, introduced with Ubuntu 11.04, Natty Narwhal, a new switch is available which more clearly defines where the grub folder is placed. The command above will still work with Grub 1.99, but the following command is preferred by the developers. The target directory in the command is the command into which the grub folder will be installed. By default, and without the switch, the location is /boot/grub. In these instructions, since the Ubuntu partition is mounted on /mnt, the target would be /mnt/boot/grub.
sudo grub-install --boot-directory=/mnt/boot /dev/sdX
Example: sudo grub-install --boot-directory=/mnt/boot/ /dev/sda Reboot Refresh the GRUB 2 menu with sudo update-grub If the user wishes to explore why the system failed, refer to Post-Restoration Commands section below.
If the partition isn't recognized, look for one of the appropriate size or label. Once mounted, the user should see Ubuntu system directories such as /boot 3. Open a terminal by selecting Applications, Accessories, Terminal from the menu bar. 4. Run the grub-setup -d command as described below. This will reinstall the GRUB 2 files on the mounted partition to the proper location and to the MBR of the designated device. a. Determine the mount point by referring to the location box in Places. Replace XXXX in the command with the UUID, or replace /media/XXXX with the correct location if the partition is not mounted in /media. The designation may be a UUID, or a label, if the user has created one (see note). b. If the location window is not in the format shown, click on the icon to the left to change the presentation.
c. When ready to copy the UUID/location, by highlighting it with the mouse. Paste it into the terminal by pressing the middle mouse button. If using the keyboard, use CTRL-SHIFT-arrow to select and CTRL-C to copy the location and CTRLSHIFT-V to paste it into the terminal. d. The device/drive is designated by sdX, with X being the device designation. sda is the first device, sdb is the second, etc. For most users the MBR should be installed to sda, the first drive on their system.
sudo grub-setup -d /media/XXXX/boot/grub /dev/sda
Example: sudo grub-setup -d /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub /dev/sda e. If the user gets a "error: Cannot open /boot/grub/device.map" message, add the -m switch and path to the device.map to the command as follows:
sudo grub-setup -d /media/XXXXX/boot/grub -m /media/XXXXX/boot/grub/device.map /dev/sda
Example: sudo grub-setup -d /media/7848138a-41a0-4eba-8aed-d1b625ac8759/boot/grub -m /media/7848138a-41a0-4eba8aed-d1b625ac8759/boot/grub/device.map /dev/sda f. Other switches are available for use with the grub-setup command. In a terminal, type grub-setup --help for a list of available options. g. You may find you get a repeated "error: Cannot open /boot/grub/device.map" message. If this happens try rebooting. The UUID method may actually work but throws an error message falsely. Using the label name does not seem to evoke the same repeated error message. 5. Reboot
6. Refresh the GRUB 2 menu with sudo update-grub 7. If the user wishes to explore why the system failed, refer to Post-Restoration Commands section below. Ubuntu 9.10 introduced a new application which can easily assign labels to existing partitions. Access Disk Utility from the System, Administration menu.
ChRoot
This method of installation uses the chroot command to gain access to the broken system's files. Once the chroot command is issued, the LiveCD treats the broken system's / as its own. Commands run in a chroot environment will affect the broken systems filesystems and not those of the LiveCD. 1. Boot to the LiveCD Desktop. The CD should be the same release and architecture (32/64 bit). 2. Open a terminal - Applications, Accessories, Terminal. 3. 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. 4. Mount your normal system partition: Substitute the correct partition: sda1, sdb5, etc.
sudo mount /dev/sdXX /mnt
Example: sudo mount /dev/sda1 /mnt 5. Only if you have a separate boot partition: sdYY is the /boot partition designation
sudo mount /dev/sdYY /mnt/boot
Example: sudo mount /dev/sdb6 /mnt/boot 6. Mount the critical virtual filesystems. Run the following as a single command:
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
9. Reinstall GRUB 2: Substitute the correct device - sda, sdb, etc. Do not specify a partition number.
grub-install /dev/sdX
10. Verify the install (use the correct device, for example sda. Do not specify a partition):
grub-install --recheck /dev/sdX
11. Exit chroot : CTRL-D on keyboard 12. Unmount virtual filesystems. Run the following as a single command:
for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
15. Reboot.
sudo reboot
If you aren't sure, run df -Th. Look for the correct disk size and ext3 or ext4 format. 4. Mount your normal system partition: Substitute the correct partition: sda1, sdb5, etc.
sudo mount /dev/sdXX /mnt
Example: sudo mount /dev/sda1 /mnt 5. Only if you have a separate boot partition: sdYY is the /boot partition designation
sudo mount /dev/sdYY /mnt/boot
Example: sudo mount /dev/sda6 /mnt/boot 6. Mount the critical virtual filesystems:
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
8. You should now be at a "root" prompt. The use of "sudo" is no longer required. Ensure you have a working Internet connection and access to the repositories. If you do not, STOP!
apt-get update
9. Purge grub-pc and grub-common (and grub-gfxpayload-lists in Grub 1.99/Natty). You will be warned you are removing the bootloader. TAB to OK.
apt-get purge grub-common
10. Reinstall GRUB 2. You will be given the opportunity to add kernel options. TAB to OK. Next you will be given the opportunity to select the devices/drives on which to install GRUB 2. Select the appropriate drive(s) with the SPACEBAR. Normally you do NOT want to select any partitions. TAB to OK after selecting the drive(s), then press ENTER.
You should be back at your normal command prompt. 12. Unmount virtual filesystems*:
for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
14. Reboot.
Post-Restoration Commands
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 sdX partition's MBR (sda, sdb, etc.) sudo grub-install /dev/sdX To recheck the installation. (sda, sdb, etc.) sudo grub-install --recheck /dev/sdX
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.
Synaptic, certain steps must be accomplished in a terminal. 1. Open a terminal: Applications, Accessories, Terminal. 2. Optional: Make backup copies of the main GRUB 2 directories and files. 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 3. Remove GRUB 2 sudo apt-get purge grub-pc The system will be unbootable until another bootloader is installed. Once the packages are removed, many files will still remain in '/boot/grub' 4. Install GRUB 0.97 sudo apt-get install grub 5. With grub installed, the user must still create the menu.lst and stage1/stage2 files by running the following two commands. A. sudo grub-install /dev/sdX Choose the correct device (sda, sdb, etc), normally the one on which Ubuntu is installed. Creates the stage1 and stage2 files in /boot/grub and writes to the MBR. B. sudo update-grub Generates menu.lst Tab to "Yes" when prompted. 6. Reboot If the user receives an "Unrecognized device string Error 11" message on rebooting see the Resolving an "Unrecognized Device String" (Error 11) section for instructions on how to edit the menu and make the system bootable.
repairing the system may be hard. While this will be fixed in the upcoming Maverick Meerkat 10.10 release, the current Lucid Lynx LTS 10.04 is affected. A workaround would be to install ubuntu using a separated non-LVM partition for /boot if you are using LVM snapshots regularly. There's some kind of irony that if you're careful and take a LVM snapshot before upgrading (and possibly rebooting) your system, this will trigger the bug.
Security
Preventing booting via Grub command-line
The ability to manually boot using the Grub command-line constitutes the biggest security risk in Linux. Any OS can be booted in this manner from any USB or CD/DVD drive, circumventing BIOS restrictions. Placing passwords or locking menu items (in the Grub configuration files) does not prevent a user from booting manually using commands entered at the grub command-line. (Once a foreign OS is booted, of course, it can be used to access any part of an unencrypted hard drive). To prevent the command-line usage of Grub and require bootloading from menu options only, there are currently no options.
Miscellaneous
Booting from a serial console
If you want GRUB to operate over a serial line, you will need to uncomment GRUB_TERMINAL in /etc/default/grub and set it to serial (instead of the console default). The default serial console settings are to operate on the first serial port (ttyS0) at a 9600 bit/s transfer rate with 8 data bits, 1 stop bit and no parity. If you want to use another serial port or if your console uses different settings, you must add a GRUB_SERIAL_COMMAND line to specify additional parameters to the serial command. The serial command in GRUB 2 uses the same syntax as its GRUB Legacy counterpart (documented here). For example, for a very common 9600 bit/s (baud) serial line with 8 data bits, 1 stop bit and no parity: GRUB_SERIAL_COMMAND="serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1" An example is a 4800 bit/s (baud) serial line with 7 data bits, 1 stop bit and even parity: GRUB_SERIAL_COMMAND="serial --unit=0 --speed=4800 --word=7 --parity=even --stop=1"
Links
GrubHowTo Grub 2 (Ubuntu Wiki)
External Links
GNU GRUB GNU GRUB2 Manual Illustrated Dual Boot HomePage Mac OS X (XNU) Support Mac OS X Boot Snow Leopard GRUB Manual - Themes
GRUB Manual - Themes The Definitive Guide to Theming GRUB2 by Towheed Mohammed Analysis of problems with grub2 and RAID1 with workarounds CategoryBootAndPartition CategoryRescueAndCloning
Grub2 (thay i ln cui lc 2011-10-20 17:26:27 bi shinyblue @ 31.185.194.211[31.185.194.211]:shinyblue)
Page History