Vous êtes sur la page 1sur 19

9/4/2010 Grub 2 - Ubuntu Wiki

Grub 2

Contents

1. GRUB 2 Testing
2. Installing / Upgrading
1. Installing (Ubuntu 9.10 and newer)
2. Installing (Ubuntu 9.04+)
3. Grub 2 Files & Folders
1. grub.cfg (/boot/grub/grub.cfg)
2. grub (/etc/default/grub)
3. /etc/grub.d/ (folder)
4. Automatic Entries
5. User-defined Entries
6. Removing Entries from Grub 2
4. Theming
1. Splash Images
2. Background Colors/Image
1. Copy/Edit Default Colors
2. Create a new theme file
5. Commands
6. Recover Grub 2 via LiveCD
1. Restore GRUB2 - Recovering from a Windows XP / Vista / 7
Reinstallation
7. Errors
1. Where did my Grub2 boot menu go!?!?!
2. Dual-booting
3. --no-floppy
4. unknown command 'initrd'
5. sleep 'invalid number 0.1'
6. Error 11
1. After upgrading from GRUB Legacy
7. Error 15 - File not found
8. Links

NOTE: A more recent version of the information on this page can be found on
https://help.ubuntu.com/community/Grub2 .

GRand Unified Bootloader, version 2 (Grub 2) is the second version of GNU GRUB. It is
the software responsible for loading and transferring control to the operating system kernel
during the initial boot. Grub 2 is compatible with standard POSIX (GNU/Linux, *BSD, Mac
OS, etc) and can also connect to systems incompatible with standard POSIX (Portable

https://wiki.ubuntu.com/Grub2#Dual-b… 1/18
9/4/2010 Grub 2 - Ubuntu Wiki
Operating System Interface for Unix).

GRUB 2 is a complete rewriting of the Grub interface. Based on the research project PUPA,
GRUB 2 is more modular and portable than its predecessor. Some of the GRUB 2
scheduled improvements include:

a graphical interface, including theming;


modular loading;
cross-platform compatibility;
scripting support;
user-customized boot entries;
revised partition naming.

GRUB 2 Testing
Grub 2 is currently at version 1.96 so users still have time to contribute to its development.
Follow this link and please help out with GRUB 2 Testing.

Installing / Upgrading

Installing (Ubuntu 9.10 and newer)


GRUB 2 will be installed by default on NEW installations of Karmic. If you have upgraded
from Jaunty 9.04 to Karmic 9.10 you can follow the install instructions for Jaunty 9.04
below.

Installing (Ubuntu 9.04+)


If you have any problems with upgrading Grub Legacy to Grub 2 from Jaunty to Karmic,
follow this bug post... https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/386789

Open a Terminal

$ sudo apt-get install grub2

Select OK from grub-pc configuration


Select Chainload from menu.lst YES
At the linux command line, press ENTER. (It's OK if the line is blank.)

NOTE: This is only temporary, you must make the changes permanent by doing this...

Type, in a terminal

$ sudo upgrade-from-grub-legacy

https://wiki.ubuntu.com/Grub2#Dual-b… 2/18
9/4/2010 Grub 2 - Ubuntu Wiki

GRUB 2 will then show you where it's booting from.

NB! You have to use the spacebar to mark the choice here. DO NOT go on without doing
this. It WILL result in your system showing error 15 and being unable to even show a boot
menu. If you are running a dual boot system with WindowsXP or Vista, you might have to do
additional fixes after upgrading to get it to work.

If this has already happened to you you can fix this by following the directions in the Error 15
section on this page.

On my test system it displayed (hd0) /dev/sda but this might differ on your system. If this is
incorrect, you must edit /boot/grub/device.map to match your system and then run

$ sudo grub-install /dev/sda

where /dev/sda was the device specified in the /boot/grub/device.map file.

GRUB 2 should be fully installed, with GRUB legacy removed, and it's configuration files
backed up. GRUB legacy configuration files are located in /boot/grub and are named
menu.lst*

You can confirm the version you are installing at any time with:

grub-install -v

Grub 2 Files & Folders


While the main grub bootloader file continues to reside in the /boot/grub folder, it is no longer
Grub's familiar menu.lst. The main Grub 2 instruction file is now grub.cfg. This file is
produced by various scripts run when either the "update-grub" or "update-
grub2" command is executed. The files primarily responsible for the content of grub.cfg
are /etc/default/grub and individual script files located in /etc/grub.d/

The program name "update-grub2" is provided for compatibility with older versions
of the grub2 packaging, but from now on this document will only use the name "update-
grub".

Many of the files in /boot/grub will not be familiar to users of Grub Legacy. Especially
noticeable are the multitude of *.mod files in the /boot/grub folder. Grub 2 is modular and the
*.mod files are loaded as necessary by grub. Despite the addition of these files, the total size
of the /boot/grub contents is fairly close to that of Grub Legacy and should not require a
larger /boot partition.

grub.cfg (/boot/grub/grub.cfg)
DO NOT EDIT THIS FILE This is the main Grub 2 file. It "replaces" Grub Legacy's

https://wiki.ubuntu.com/Grub2#Dual-b… 3/18
9/4/2010 Grub 2 - Ubuntu Wiki
/boot/grub/menu.lst. This file contains the Grub menu instructions. Unlike Grub Legacy's
menu.lst file, grub.cfg is NOT MEANT TO BE EDITED!!!

grub.cfg is automatically generated or updated whenever "update-grub" is


executed. The command must be run as root.
The scripts used to generate grub.cfg include the files contained in /etc/grub.d and
information gathered from /etc/default/grub
The file is divided into sections. Each section of the file is clearly delineated and is
recognizable by the section header ### BEGIN. The information on this line references
the file in the /etc/grub.d folder which is used to incorporate the information into
grub.cfg
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. If you must edit this file, instructions are provided later on this page.
Sample grub.cfg including two Ubuntu kernels, memtest86+, Windows and a custom
entry (41_srcd) imported from an /etc/grub.d/ script:

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

### BEGIN /etc/grub.d/00_header ###


set default=0
set timeout=5
set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a
if font /usr/share/grub/ascii.pff ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
terminal gfxterm
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###


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

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


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

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


set root=(hd0,5)
search --fs-uuid --set b02e1934-12dd-418a-be3a-9ff7d3e7e7ea

https://wiki.ubuntu.com/Grub2#Dual-b… 4/18
9/4/2010 Grub 2 - Ubuntu Wiki
menuentry "Ubuntu, linux 2.6.28-13-generic" {
linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-
418a ro quiet splash vga800
initrd /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-
418a ro single
initrd /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic" {
linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-
418a ro quiet splash vga800
initrd /boot/initrd.img-2.6.28-11-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-
418a ro single
initrd /boot/initrd.img-2.6.28-11-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###


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

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


menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
set root=(hd0,1)
chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###


# This file is an example on how to add custom entries

### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_srcd ###


menuentry "SystemRescue CD on hard drive" {
set root=(hd0,10)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz
}

https://wiki.ubuntu.com/Grub2#Dual-b… 5/18
9/4/2010 Grub 2 - Ubuntu Wiki
### END /etc/grub.d/41_srcd ###

grub (/etc/default/grub)
This file contains information previously found in the upper section of /boot/grub/menu.lst. It
contains settings primarily affecting Grub's menu display. This file can be edited by root to
make changes to these settings; they will be imported into grub.cfg when "update-
grub" is executed.

# If you change this file, run 'update-grub' afterwards to update


# /boot/grub/grub.cfg.

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

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


#GRUB_TERMINAL=console

# The resolution used on graphical terminal


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

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


Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys


#GRUB_DISABLE_LINUX_RECOVERY="true"

This file contains information formerly contained in the upper section


of Grub Legacy's ''menu.lst'' and items contained on the end of the
kernel line. The items in this file can be edited by a user with
administrator (root) privileges. Grub developers have have placed
explanatory comments within the file itself.

GRUB_DEFAULT=0
Sets the default and pre-selected menu entry. Entries may be numeric or saved
GRUB_DEFAULT=0
https://wiki.ubuntu.com/Grub2#Dual-b… 6/18
9/4/2010 Grub 2 - Ubuntu Wiki
Sets the default menu entry by menu position. As with Grub Legacy, the
first "menuentry" in grub.cfg is 0, the second is 1, etc.
GRUB_DEFAULT="Windows XP Professional (on /dev/sda1)"
Sets the default menu entry by name.
GRUB_DEFAULT=saved
Sets the default menu entry with either whatever was selected on the last
boot (if GRUB_SAVEDEFAULT=true is set and the entry itself contains
savedefault), whatever the last grub-set-default command saved or the
first entry if nothing has ever been saved or the saved entry can't be
found. If the menu is displayed during boot, the previously selected
option will be highlighted. If no action is taken, this is selection which will
be booted at the end of the timeout, or if the menu is hidden.
GRUB_TIMEOUT=10
No change from Grub Legacy. This is the number of seconds before the default
entry is automatically booted.
Setting a value of -1 will display the menu until the user makes a selection (no
timeout).
GRUB_HIDDEN_TIMEOUT=0
The hidden timeout option is available to single-OS computers - if
multiple OS's are known to Grub 2, this option is bypassed.
On single-OS systems, the menu will be hidden unless a # symbol is present at
the beginning of this line. ( # GRUB_HIDDEN_TIMEOUT=0 )
The default setting initially depends on the presence of other operating systems.
Another OS Detected: The menu will be displayed. ( The line will begin
with a # symbol. )
No other OS Detected: This setting is not used, as determined by the
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 (single-OS computers only).
During boot, the system will check the SHIFT key status. If it
cannot determine the key status, a short delay will enable the user
to display the menu by pressing the ESC key.
If enabled, the splash screen designated in 05_debian_theme will
be displayed even if the hidden menu feature is selected.
GRUB_HIDDEN_TIMEOUT_QUIET=true
true - No countdown is displayed. The screen will be blank.
false - A counter will display on a blank screen for the duration of the
GRUB_HIDDEN_TIMEOUT value.
GRUB_DISTRIBUTOR=lsb_release -i -
s 2> /dev/null || echo Debian
Determines the descriptive name in the menu entry. (Ubuntu, Xubuntu, Debian,
etc.)
https://wiki.ubuntu.com/Grub2#Dual-b… 7/18
9/4/2010 Grub 2 - Ubuntu Wiki
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. If you want a black screen with
scrolling boot messages, remove "quiet splash". If you want a grub splash screen
with limited messages underneath the Ubuntu logo, use only "splash". < This
[only "splash"]will not work in Karmic during boot as the xsplash does
not display the messages , but the messages at shutdown will be displayed.
#GRUB_TERMINAL=console
Uncomment to disable graphical terminal (grub-pc only).
#GRUB_GFXMODE=640x480
Uncomment (remove '#' from beginning of the line) to change (increase)
resolution of your boot loader. Use one of classic (4:3 rate):
GRUB_GFXMODE=640x480 (is used if isn't here a proper value)
GRUB_GFXMODE=800x600
GRUB_GFXMODE=1024x768
GRUB_GFXMODE=1600×1200
or make experiments with some others nonstandards like widescreen (16:10
ratio in my case), here is list of most of commonly use Display resolution:
GRUB_GFXMODE=640x400
GRUB_GFXMODE=800x500
GRUB_GFXMODE=1024x640
GRUB_GFXMODE=1280x800
GRUB_GFXMODE=1680x1050
If you don't know what modes are supported by your graphics card, go to the
grub command line and run 'vbeinfo'. It will list all available modes. (You might
need to run 'insmod vbe' first if the vbe module isn't loaded yet)
GRUB_GFXPAYLOAD_LINUX=640x480x8 [grub2 >= 1.98-1 (Lucid)]
Use this setting to set the framebuffer resolution (replaces the vga= kernel
option). It uses the GFXMODE values with additional color depth. Use
'vbeinfo' from the grub command line to list what modes are available to you.
#GRUB_DISABLE_LINUX_UUID=true
Uncomment this line if you don't want GRUB to pass "root=UUID=xxx"
parameter to Linux.
GRUB_DISABLE_LINUX_RECOVERY=true
Add or uncomment this line to prevent "Recovery" mode kernel options from
appearing in the menu.
GRUB_DISABLE_OS_PROBER=true
Enables/disables the os-prober check of other partitions for operating systems,
including Windows, Linux, OSX and Hurd.
https://wiki.ubuntu.com/Grub2#Dual-b… 8/18
9/4/2010 Grub 2 - Ubuntu Wiki

/etc/grub.d/ (folder)
The files in this folder are read during execution of '"update-grub"'command. The
scripts in these files write the information they gather into /boot/grub/grub.cfg.

The files are run in sequential order - numbered files are run in numerical order, followed by
files whose name begins with a letter. The order in which the files are executed determines the
location of items in the grub menu.

Any file created must be executable in order to be included in the grub.cfg file during the
"update-grub" command. This can be accomplished from the terminal with
"sudo chmod u+x /etc/grub.d/filename". The following is a very brief
look at what the files do. Examples given indicate output from the scripts.

00_header
Loads settings from /etc/default/grub, including visual presentations, timeout,
and terminal options.
05_debian_theme
Sets background, text colors, and themes.
If you wish to change text colors, print:

set color_normal=$foreground/$background
set
color_highlight=$foreground_color/$background_color

To change the background change the background_image:

background_image
`make_system_path_relative_to_its_root ${bg}`

file must be with .png or .tga extension !!


If you use an image whose size does not match GRUB's graphics mode,
it will not be scaled to match
10_hurd
Locates hurd kernels.
10_linux
Locates kernels based on the distributor determined by the
"lsb_release -i -s" results ("Ubuntu").
20_memtest86+
If the file /boot/memtest86+.bin exists, it is included as a menu item.
30_os-prober
Searches for other operating systems and includes them in the menu.
40_custom
A template for adding custom menu entries.
https://wiki.ubuntu.com/Grub2#Dual-b… 9/18
9/4/2010 Grub 2 - Ubuntu Wiki

Automatic Entries
When "update-grub" is executed, Grub 2 will read /etc/default/grub and the
files in contained in the /etc/grub.d folder. This combination will set the visual
parameters of the grub menu (/etc/default/grub) and search for linux kernels, other
operating systems, and items designated in user-created scripts in /etc/grub.d. The
script files in /etc/grub.d perform the following tasks:
10_linux searches for installed linux kernels.
30_os-prober searches for other operating systems.
40_custom and any other user-created files in the /etc/grub.d folder add menu
items designated in the script files created by users.
The name of the file determines the order in the menu. 30_os-prober entries will be
placed before 40_custom entries, which will be placed before any higher-numbered
entries.
Any user-created file must be made executable. This can be done as root by running

sudo chmod u+x /etc/grub.d/filename

User-defined Entries
Users with "root" privileges can create scripts in the /etc/grub.d/ folder which will be
incorporated into the grub.cfg file when update-grub is run.

The filename should normally take the format XX_name, with XX being a number
followed by an underscore and name.
The order the entry appears on the grub menu is based on numerical ordering of the
files in /etc/grub.d. Executable files in the /etc/grub.d folder beginning with an
alphabetic character are placed in order following numerical entries.
The file must be made executable by typing in a terminal

sudo chmod +x /etc/grub.d/'''filename'''

A sample custom entry. This file creates menu items for running a SystemRescueCD
installation on sdb10 and a custom kernel on sda1.

NOTE: The new partition naming convention. Devices start counting from 0 as done
previously. sda is designated as "hd0", sdb is "hd1", etc. However the first partition is now
designated as sda1. Counting partitions does not start with "0". The fifth partition on sda is
sda5).

echo "Adding Custom Kernel & SystemRescue" >&2


cat << EOF
menuentry "Ubuntu, linux 2.6.31-11-custom" {
set root=(hd0,9)
linux /boot/vmlinuz-2.6.31-11-custom root=UUID=c6829e27-2350-

https://wiki.ubuntu.com/Grub2#Dual-b… 10/18
9/4/2010 Grub 2 - Ubuntu Wiki
4e84-bdbb-91b83f018f98 ro
initrd /boot/initrd.img-2.6.28-11-generic
}

menuentry "Boot SystemRescue CD from hard drive" {


set root=(hd1,10)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz
}
EOF

The line "echo "Adding SystemRescueCD" >&2" is not required. Including it in the
file allows this line to be seen in the terminal when "update-grub" is executed. It
provides visual feedback that the entry has been found and entered. The entry, if in the
correct format, will be inserted in grub.cfg whether or not this line is included in the
file.

Manual Editing of grub.cfg


If you must edit this file:

sudo chmod +w /boot/grub/grub.cfg # Remove 'read-only',


necessary even for "root"
sudo nano /boot/grub/grub.cfg # Edit as "root"

Note: This file is returned to 'read-only' status and user inputs are overwritten
anytime the "update-grub" command is run.

Removing Entries from Grub 2


Entries should be removed by editing or removing files in the /etc/grub.d folder. The
/boot/grub/grub.cfg file is read-only and should not normally be edited directly.

Automatically.
Kernels removed by Synaptic will automatically update grub.cfg and no user
action is required.
Other operating systems which have been removed from the computer will also
be removed from the menu once "update-grub" is run as root.
Manually.
To prevent a file in /etc/grub.d from adding items to the menu, remove the
executable bit or remove the applicable file.
memtest86+: If you don't want to have memtest86+ displayed in your menu,
run sudo chmod -x /etc/grub.d/20_memtest86+. The file
will remain but will not be acted upon by update-grub.
Recovery mode: If you don't want Recovery mode entries for your linux
kernels, edit /etc/default/grub and add this line:

GRUB_DISABLE_LINUX_RECOVERY=true
https://wiki.ubuntu.com/Grub2#Dual-b… 11/18
9/4/2010 Grub 2 - Ubuntu Wiki

If a custom script in the /etc/grub.d/ folder contains multiple menu entries,


individual items may be removed and others retained.
Tip: If the user wants his custom entries to appear at the top of the menu, the file
can be named a value less than "10_linux", such as "07_custom". Check that
the "DEFAULT" value in /etc/default/grub points to the correct menuentry
after making this change.
Changes will not take effect on the Grub 2 menu until "update-grub" is
run to update grub.cfg

Theming
As of version 1.96 of GRUB 2, theme support is not enabled

The GRUB graphical menu supports themes that can customize the layout and appearance of
the GRUB boot menu. The theme is configured through a plain text file that specifies the
layout of the various GUI components (including the boot menu, timeout progress bar, and
text messages) as well as the appearance using colors, fonts, and images.

This is Colin Bennett's Google Summer of Code project. The GRUB 2 graphical menu
project aims to create a highly customizable graphical menu system for the GNU GRUB
bootloader.

Splash Images
Take a look at this thread on Grub 2 Splash Images

Great link here.

Background Colors/Image
Background colors and images are configured in a script located in /etc/grub.d/ if you look in
there you will find a file called 05_debian_theme which is the default color scheme for
GRUB 2. Now to create your own color scheme you have a few options, you can copy and
edit the default 05_debian_theme or create your own script.

All the files in /etc/grub.d/ are run in order, so if you have 2 theme files, 05_debian_theme
and 06_mytheme, the latter (06_mytheme) will be run last, which will be the background you
see.

Copy/Edit Default Colors

Copy the default color theme

$ sudo cp /etc/grub.d/05_debian_theme
/etc/grub.d/05_debian_theme.BACKUP
https://wiki.ubuntu.com/Grub2#Dual-b… 12/18
9/4/2010 Grub 2 - Ubuntu Wiki
$ sudo nano /etc/grub.d/05_debian_theme

Now you can edit the file to your hearts content.

Create a new theme file

Create the new theme file

$ sudo nano /etc/grub.d/06_mytheme

Now you can put whatever you want in here

Commands
As GRUB 2 has been totally re-written, there are now some commands you might be used to
in GRUB legacy that don't exist in GRUB 2. Take a look at the Grub 2 Command's List.

SHIFT now allows you to interrupt 'sleep --interruptible', for consistency with the quick-
boot scheme.

Recover Grub 2 via LiveCD


First, grab a copy of the latest Ubuntu LiveCD and boot it.
Open a terminal and type

$ sudo fdisk -l

Now, you need to remember which device listed is your linux distribution, for
reference, /dev/sda1 will be used. Now we need to mount the filesystem to /mnt

$ sudo mount /dev/sda1 /mnt

If you have /boot on a separate partition, that need's to be mounted aswell. For
reference, /dev/sda2 will be used.

$ sudo mount /dev/sda2 /mnt/boot

If you have /var on a separate partition, that need's to be mounted aswell. For
reference, /dev/sda3 will be used.

$ sudo mount /dev/sda3 /mnt/var Make sure you don't mix these up, pay
attention to the output of FDISK

Now mount the rest of your devices and some other things needed in the chroot

$ sudo mount --bind /dev /mnt/dev


$ sudo mount --bind /proc /mnt/proc

https://wiki.ubuntu.com/Grub2#Dual-b… 13/18
9/4/2010 Grub 2 - Ubuntu Wiki
$ sudo mount --bind /sys /mnt/sys

Now chroot into your system

$ sudo chroot /mnt

You should be chroot'd into your system as root, you can now run commands as root,
without the need for sudo.

Now you need to edit the /etc/default/grub file to fit your system

$ nano /etc/default/grub

When that is done you need to run update-grub to create the configuration file. If you
have a separate /boot partition you need to mount it first!

$ update-grub

To install GRUB 2 to the MBR, next you need to run grub-install /dev/sda

$ grub-install /dev/sda

If you encounter any errors, try grub-install --recheck /dev/sda

$ grub-install --recheck /dev/sda

Press Ctrl+D to exit out of the chroot.


Once you exit back to your regular console, undo all the mounting, first the /dev and
others

$ sudo umount /mnt/dev


$ sudo umount /mnt/sys
$ sudo umount /mnt/proc

Now you can unmount the root system. (But if you have a separate boot partition
which you mounted earlier, you have to unmount this first, or you will get a "device
busy" error message.)

$ sudo umount /mnt

And you should be free to restart your system right into GRUB 2 and then into your
system installation.

If you had alternate OS entries, update-grub might say "Cannot find list of partitions!".
Ignore it and continue - once you can boot into your linux installation, do so and then rerun
update-grub and grub-install /dev/sda as root.

Restore GRUB2 - Recovering from a Windows XP / Vista / 7


Reinstallation
Fire up a terminal from the Live CD for Ubuntu 10.04.
https://wiki.ubuntu.com/Grub2#Dual-b… 14/18
9/4/2010 Grub 2 - Ubuntu Wiki
$ sudo fdisk -l (Note the partition number on which Linux resides)
$ sudo mount /dev/sdaX /mnt (Replace X with the partition number housing
Linux)
$ sudo grub-install --root-directory=/mnt/ /dev/sda
$ sudo update-grub
$ sudo reboot

Credits to
http://mundogeek.net/archivos/2009/12/08/recuperar-grub-2/ for the enlightening post &
http://www.webupd8.org/2009/12/how-to-recover-grub2-linux.html for the awesome
translation.

Errors

Where did my Grub2 boot menu go!?!?!


According to an email that was sent out today Monday, August 10, 2009 with the newest
Grub2 update, the boot menu is hidden by default now. It's easy to get it back, just edit
/etc/default/grub and comment out GRUB_HIDDEN_TIMEOUT

$ sudo nano /etc/default/grub

Make your timeout line look like this...

#GRUB_HIDDEN_TIMEOUT=3
GRUB_TIMEOUT=XXX <---Make sure you put in a timeout value
here.

Save the file and exit, then run...

$ sudo update-grub

Dual-booting
Following this thread on the forums, users have seemed to come up with a Karmic work
around for fixing your dual-boot problems...

$ sudo apt-get install --reinstall libdebian-installer4


$ sudo os-prober
$ sudo update-grub

--no-floppy

https://wiki.ubuntu.com/Grub2#Dual-b… 15/18
9/4/2010 Grub 2 - Ubuntu Wiki
It seems after an update yesterday Monday June 22, 2009 that some users are experiencing
a --no-floppy error. There is a simple workaround to this. Check out this thread

Edit your boot command with E


Remove all entries of --no-floppy
Boot into Ubuntu and backup your GRUB 2 configuration

$ sudo cp /etc/grub/grub.cfg /etc/grub/grub.cfg.backup

Then edit your configuration

$ sudo nano /etc/grub/grub.cfg

Delete all entries of --no-floppy

unknown command 'initrd'


This error came after upgrading from Jaunty 9.04 to Karmic 9.10 on June 23, 2009. The
work around was to remove the search line from the boot line. Take a look here and notice
the search --fs-uuid line and remove it.

Press E to edit your boot line


Remove the search --fs-uuid line completely
Press Ctrl-C to enter the GRUB command line
Type in insmod linux and press ENTER
Press ESC to go back
CTRL-X to boot

Once you get into your system you need to re-install grub to your device, mine was sda

sudo grub-install /dev/sda

This fixed the problem and now booting is back to normal.

sleep 'invalid number 0.1'


***Fix released June 24, 2009***

Floating sleeps was built in, but not configured in the newest version of busybox, here's the
fix.

Add dupondje's PPA

deb http://ppa.launchpad.net/dupondje/ppa/ubuntu karmic main


deb-src http://ppa.launchpad.net/dupondje/ppa/ubuntu karmic main

Update & Upgrade

https://wiki.ubuntu.com/Grub2#Dual-b… 16/18
9/4/2010 Grub 2 - Ubuntu Wiki
$ sudo apt-get update && sudo apt-get upgrade

Update initramfs

$ sudo update-initramfs -uk all

Error 11

After upgrading from GRUB Legacy

Error 11: Unrecognized device string...

press any key to continue


highlight "Chainload into GRUB 2"
press e
highlight "root xxxxxxxxxxxxxxxxxxxx"
press e
change "root xxxxxxxxxxxxxxxx" to "uuid xxxxxxxxxxxxxxxxxx"
press b to boot "uuid xxxxxxxxxxxxxxxxxxx"
load your kernel and press enter

Error 15 - File not found


This error means that while grub2 is installed to /boot your Master Boot Record ( mbr ) still
contains grub legacy. This can happen if you don't select your drive when running "sudo
update-from-grub-legacy".

First, obtain a copy of the latest Ubuntu LiveCD and boot it. Please note that the
Live CD must be the same as the system you are fixing - either 32-bit or 64-bit
(if not then the chroot will fail).
Open a terminal and type

$ sudo fdisk -l

Now, you need to remember which device listed is your linux distribution, for
reference, /dev/sda1 will be used. Now we need to mount the filesystem to /mnt

$ sudo mount /dev/sda1 /mnt

If you have /boot on a separate partition, that need's to be mounted aswell. For
reference, /dev/sda2 will be used.

$ sudo mount /dev/sda2 /mnt/boot

If you have /var on a separate partition, that need's to be mounted aswell. For
reference, /dev/sda3 will be used.

https://wiki.ubuntu.com/Grub2#Dual-b… 17/18
9/4/2010 Grub 2 - Ubuntu Wiki
$ sudo mount /dev/sda3 /mnt/var

Make sure you don't mix these up, pay attention to the output of FDISK
Now mount the rest of your devices and some other things needed in the chroot

$ sudo mount --bind /dev /mnt/dev


$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys

Now chroot into your system

$ sudo chroot /mnt

You should be chroot'd into your system as root, you can now run commands as root,
without the need for sudo.
Tell grub what drive it should install itself to (press space bar to select a drive and don't
continue without selecting one)

$ dpkg-reconfigure grub-pc

Press Ctrl+D to exit out of the chroot.


Once you exit back to your regular console, undo all the mounting

$ sudo umount /mnt/dev


$ sudo umount /mnt/proc
$ sudo umount /mnt/sys
$ sudo umount /mnt

And you should be free to restart your system right into GRUB 2 and then into your
system installation.

Links
Grub2 (Community Documentation)
HomePage of GRUB project
Wiki list of test suitable hardware

CategoryBootAndPartition CategoryDocumentation

Grub2 (last edited 2010-08-18 16:32:35 by https://login.launchpad.net/+id/PftN3wL @ 24-176-21-


160.dhcp.klmz.mi.charter.com[24.176.21.160]:Michael Lueck)

https://wiki.ubuntu.com/Grub2#Dual-b… 18/18
9/4/2010 Grub 2 - Ubuntu Wiki
$ sudo umount /mnt/sys
$ sudo umount /mnt

And you should be free to restart your system right into GRUB 2 and then into your
system installation.

Links
Grub2 (Community Documentation)
HomePage of GRUB project
Wiki list of test suitable hardware

CategoryBootAndPartition CategoryDocumentation

Grub2 (last edited 2010-08-18 16:32:35 by https://login.launchpad.net/+id/PftN3wL @ 24-176-21-


160.dhcp.klmz.mi.charter.com[24.176.21.160]:Michael Lueck)

https://wiki.ubuntu.com/Grub2#Dual-b… 19/18

Vous aimerez peut-être aussi