Загрузочная процедура по второму методу подразумевает наличие другого загрузчика, например LILO или NTLDR, установленного в один из разделов жесткого диска:
1. Указать корневой раздел, но не монтировать его.
2. Активировать раздел
3. Указать первый сектор устройства, которому будет передано управление.
4. Перезагрузить компьютер и испробовать это.
Приведу пример с ОС Windows, проинсталлированной в /dev/hda1 или (hd0,0). процедура загрузки Windows следующая:
1. rootnoverify (hd0,0)
2. makeactive
3. chainloader +1 [+1 указывает первый сектор текущего основного раздела]
4. boot [передает контроль]
menu.conf файл используется для загрузки различных операционных систем и конфигурации меню. Составить menu.conf файл не сложно. Как Вы увидите в этом разделе, в нем используется текст на английском языке.
Все записи меню начитаются с "title TITLENAME" без запятых. Вы можете присвоить TITLENAME что угодно.
Для создания меню загрузки Linux:
1. Установите title.
2. Установите корневой раздел.
3. Установите ядро и параметры.
4. Загрузитесь.
Для создания работающего меню:
title Debian GNU/Linux 2.2 kernel 2.4.1
root (hd0,4)
kernel /boot/bzImage.2.4.1
boot
#----
(Символ (#) в начале строки обозначает комментарий.)
Чтобы создать меню для Windows или DOS:
title Windoze
rootnoverify (hd0,0)
makeactive
chainloader +1
boot
#----
А что если Вы хотите установить на ваш компьютер два экземпляра операционной системы Windows, одну лично для себя, другую для своей семьи, а Windows при установке сообщает, что уже один экземпляр ОС установлен ?
Существует легкий путь инсталляции двух экземпляров ОС на Ваш компьютер путем скрытия одного из разделов жесткого диска в момент загрузки и использования другого. При этом Вы можете защитить раздел паролем, так что никто не сможет использовать его по ошибке. Ниже приведен пример, как создать несколько экземпляров ОС Windows, hda1 и hda2 или (hd0,0) и (hd0,1), используя команды lock, password, hide и unhide.
Для ОС Windows "My Entry":
title My Entry
lock
unhide (hd0,0)
hide (hd0,1)
rootnoverify (hd0,0)
makeactive
chainloader +1
boot
#----
Для эффективного использования команды lock Вы должны указать команду password в начале конфигурационного файла. Синтаксис команды password следующий: password secret ("secret" - это пароль). Вы можете ввести пароль в любое время с помощью нажатия клавиши p.
Для ОС Windows "Family Entry":
title Family Entry
unhide (hd0,1)
hide (hd0,0)
rootnoverify (hd0,1)
makeactive
chainloader +1
boot
----
Любой может загрузиться с этих разделов, если не требуется пароль. Существует ещё один интересный трюк с использованием команды password. Для скрытия элементов в списке конфигурационного файла по умолчанию, Вы можете загрузить собственный список, используя следующую команду:
password secret
/boot/grub/secret-list.conf В этой команде "secret" - это пароль, а /boot/grub/secret-list.conf - это файл паролей. Перед тем, как делать это, Вы должны установить корневой раздел и полный путь. Например:
Ещё одной важной командой является команда "map", которую Вы можете использовать, когда у Вас есть два жестких диска и операционная система, которая не может загружаться со второго диска, например ОС Windows. Вы можете отобразить hd0 как hd1 и hd1 как hd0. Другими словами, можно виртуально переставлять жесткие диски.
Пример:
grub> map (hd0) (hd1)
grub> map (hd1) (hd0)
Для загрузки ОС FreeBSD:
title FreeBSD 4.0
root (hd0,4,a)
kernel /boot/loader
boot
#----
Здесь мы передаем управление загрузчику ОС FreeBSD. Вы видите, что корневой раздел (hd0,4,a) включает три аргумента, это потому, что
FreeBSD виртуально делит существующий раздел жесткого диска. Мы
передаем управление корневому подразделу раздела жесткого диска "a". Если FreeBSD полностью занимает диск вашей системы, тогда корневой подраздел будет называться (hd0,a). Итак, мы передаем управление загрузчику FreeBSD, что намного лучше, чем передать управление непосредственно ядру этой ОС по ряду причин.
(ПРИМЕЧАНИЕ: ОС OpenBSD и GNU/Hurd ещё не тестировались, рекомендую использовать передачу управления загрузчикам этих ОС вместо ядра).
Вы ознакомились с базовой инсталляцией пакета GRUB, непосредственно загрузчика, а так же базовой конфигурацией. Чем больше Вы будете узнавать GRUB, тем больше будете находить его самым мощным средством управления загрузкой.
Различные команды GRUB:
default xx
xx - это метка для загрузки по умолчанию.
timeout yy
yy - это таймаут, после которого GRUB начнет загрузку по умолчанию.
fallback zz
zz - это метка для загрузки, которую GRUB станет загружать, если по истечении таймаута не удастся загрузить метку по умолчанию.
color
Используется для раскраски меню. Синтаксис следующий: color normal current_selection. Оба поля могут иметь два значения, такие как приоритетный и фоновый цвета.
Например:
color green/black or light-gray/blue
Вы также можете использовать соответствующие номера.
ЗАПОМНИТЕ: все значения начинаются с 0, следовательно, 0 - первый элемент.