Определить версию GRUB:

# grub-install --version

# grub2-install --version

GNU GRUB Legacy (GRand Unified Bootloader) — это первая версия программы-загрузчика операционных систем GRUB. В Ubuntu до версии 9.04 использовалась по умолчанию именно эта первая версия GRUB, которая теперь называется GRUB Legacy. В более поздних версиях используется GRUB 2, который теперь подразумевается под просто GRUB.

GRUB Legacy может загрузить практически любую ОС, имеющуюся на вашем компьютере, а также в сети и, при некоторых ухищрениях, на CD/DVD (даже если этого не поддерживает BIOS вашего комьютера в виду его почтенного возраста).

Конфигурационный файл GRUB Legacy /boot/grub/menu.lst

 

++++++++++++++++++++++++++++++++

 

GRUB (GRand Unified Bootloader) — программа-загрузчик операционных систем. Она отвечает за загрузку и передачу управления ядру Linux. Ядро, в свою очередь, запускает остальную часть операционной системы.  GRUB является эталонной реализацией загрузчика, соответствующего спецификации Multiboot и может загрузить любую совместимую с ней операционную систему. Среди них: Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR), MS-DOS, OS/2 и другие системы.

После настройки GRUB пользователь при включении компьютера видит список операционных систем, которые установлены на его компьютер и которые можно загрузить, выбрав подходящую и нажав Enter.

GRUB позволяет пользователю при загрузке задавать произвольные параметры и передавать их в ядро Multiboot-совместимой ОС для дальнейшей обработки.

GRUB — самый популярный загрузчик в мире Linux и является загрузчиком по умолчанию в большинстве известных дистрибутивов.

 

GRUB 2 полностью переписан с нуля и не имеет ничего общего с GRUB Legacy, разработка которого была остановлена в пользу более совершенного и мощного GRUB.

 

Конфигурационные файлы GRUB2:

/boot/grub/grub.cfg  -формируется автоматически, изменять нельзя

/etc/default/grub  -для указания нужных настроек

/etc/grub.d   -Эта папка содержит в себе скрипты, которые используются для создания файла «grub.cfg» При обновлении GRUB они находят все установленные на компьютере системы и ядра и формируют в файле «grub.cfg» меню загрузки, которое мы и видим. Два основных из них:

 

«10_linux» и «30_os-prober» отвечают за поиск Linux ядер и остальных ОС на других разделах соответственно.

Файл «40_custom» позволяет добавлять свои пункты загрузки. Это может быть полезно, если вы, например, хотите добавить какие-то особые варианты загрузки системы.

 

В GRUB имеется еще одно важное отличие от старого GRUB Legacy, а именно изменилась нумерация разделов диска. Нумерация дисков идет с нуля, а нумерация разделов - с единицы!

Если в GRUB Legacy первый раздел первого диска (sda1) именовался «hd0,0». То в GRUB, первый раздел первого диска (sda1) теперь будет «hd0,1».

 

++++++++++++++++++++++++++++++++

 

Установка загрузчика GRUB

 

Имеем 2 диска sda, sdb. Проверим есть ли на дисках активный раздел:

# file -s /dev/sda

/dev/sda: x86 boot sector; partition 1: ID=0xfd, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors

# file -s /dev/sdb

/dev/sdb: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors, code offset 0x63

 

как видно, на диске sda не указан активный раздел и не установлен загрузчик.

Чтобы указать раздел активным, например первый:

# fdisk /dev/sda

...

Command (m for help): m

Command action

  a toggle a bootable flag

...

  w write table to disk and exit

 

Command (m for help): a

Partition number (1-9): 1

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

Установка GRUB2:

В Debian и прочих Ubuntu достаточно ввести:

# dpkg-reconfigure grub-pc

два раза нажать OK и выбрать звездочками оба диска и еще раз ОК

или:

# grub-install /dev/sda

# grub-install /dev/sdb

если еще выполнить:

# update-grub

изменится меню (конфигурационный файл), появится возможность выбора диска для загрузки ОС.

 

 

Установка старого GRUB:

# grub

grub> root (hd0,0)

grub> setup (hd0)

grub> root (hd1,0)

grub> setup (hd1)

Результат работы будет такой:

grub> root (hd1,0)

root (hd1,0)

Filesystem type is ext2fs, partition type 0xfd

grub> setup (hd1)

setup (hd1)

Checking if "/boot/grub/stage1" exists... no

Checking if "/grub/stage1" exists... yes

Checking if "/grub/stage2" exists... yes

Checking if "/grub/e2fs_stage1_5" exists... yes

Running "embed /grub/e2fs_stage1_5 (hd1)"...  15 sectors are embedded.

succeeded

Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded

Done.

grub> quit

quit

Проверим результат:

# file -s /dev/sda

/dev/sda: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors, code offset 0x63

# file -s /dev/sdb

/dev/sdb: x86 boot sector; partition 1: ID=0xfd, active, starthead 32, startsector 2048, 1169408 sectors; partition 2: ID=0x5, starthead 12, startsector 1173502, 76949506 sectors, code offset 0x63

 

 

Материалы:

http://help.ubuntu.ru/wiki/grub_legacy

http://help.ubuntu.ru/wiki/grub

http://www.kochetov.net.ua/?p=310