> man operating_systems
Менеджер загрузки GNU GRUB
Рассмотрение менеджера загрузки GRUB
на Воскресенье, 18 Июль 2004, 22:36
добавил: Ясвиндер Синх Кохли (Jaswinder Singh Kohli) список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи
комментарии: 0
просмотров: 1817


Установка на дискету:

Чтобы установить GRUB на дискету, вы должны знать команду 'dd' и как она работает. Для создания загрузочной дискеты с GRUB, вы должны разместить файлы stage1 и stage2 в начальных секторах дискеты.

Установка stage1 на дискету
Вставьте форматированую дискету в дисковод и введите:

[root@heaven /boot/grub ]# dd if=stage1 of=/dev/fd0 bs=512 count=1


И опять, рассмотрим команду в деталях:

if=входной файл
т.е., stage1
of=выходной файл
т.е., привод для гибких дисков (эта строка может отличаться для вашего компьютера)
bs=количество байт для чтения и записи
В нашем случае 512 байт.
count=сколько раз произвести эту операцию
Каждая новая итерация копирует следующие bs байт в место назначения.
Установка stage2 на дискету
[root@heaven /boot/grub ]# dd if=stage2 of=/dev/fd0 bs=512 seek=1


Всё аналогично команде для установки stage1, исключая новый ключ seek. Seek пропускает 1 блок из "bs" байт. Например в приведённой выше команде bs = 512, поэтому seek=1 пропустит первые 512 байт дискового пространства и продолжит с 513го байта. Это сохранит результат выполнения первой операции, т.е. первые 512 байт занятые stage1 не будут перезаписаны.

Всё, вы завершили основную установку на дискету.

ШАГ ТРЕТИЙ: настройка GRUB
Вы этой секции мы увидим, как загружать различные операционные системы и создать файл menu.conf.

Давайте начнём с процедур загрузки, поддерживаемых GRUB. Загрузку можно производить двумя способами.

A. Обычная загрузка путём вызова ядра.
B. Загрузка по цепочке или передача контроля другому менеджеру загрузки.

Процедура загрузки используя метод A:

Установите корневое устройство или укажите GRUB вашу корневую файловую систему.
Укажите GRUB, где находится образ вашего ядра и передайте ядру параметры.
Перезагрузитесьи проверьте его.
Для загрузки Линукс, я храню своё ядро в /boot/ под именем bzImage, а моя корневая файловая система расположена на /dev/hda5, или (hd0,4) в GRUB. Поэтому моя процедура загрузки выглядит следующим образом:

root (hd0,4)   [Это устанавливает корневой раздел] 
kernel /boot/bzImage root=/dev/hda5   [Это устанавливает ядро] 
boot   [Это запускает загрузку Линукс] 

Процедура загрузки используя метод B (этот метод подразумевает, что у вас есть другой менеджер загрузки, например LILO или NTLDR, установленный в разделе.)

Установите корневой раздел, но не монтируйте его.
Активируйте этот раздел.
Установите первый сектор устройства, которому будет передано контроль в случае загрузки по цепочке.
Перезагрузитесьи проверьте его.
Давайте рассмотрим другую ситуацию, с Windows, установленным на /dev/hda1 или (hd0,0). Процедура загрузки Windows будет выглядеть следующим образом:

rootnoverify (hd0,0) 
makeactive 
chainloader +1   [+1 устанавливает первый сектор текущего корневого раздела] 
boot   [передаёт управление и покидает GRUB] 


Файл menu.conf, используется для загрузки нескольких операционных систем и построения меню. Написание menu.conf не представляет из себя особой сложности. Как вы сможете убедиться в этой секции, он использует чистый английский язык .

Все пункты меню начинаются с "title TITLENAME" (название ИМЯ) без запятых. Вы можете заменить TITLENAME на то что вам хочется.

Чтобы сделать меню для загрузки Линукс:

Установите название (title).
Установите корневой раздел.
Установите ядро с правильными параметрами.

Команда загрузки (boot).
Чтобы создать работающее меню:

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 это файл соответвующий паролю. Перед тем как сделать это, вам нужно указать корневой раздел или задать полный путь. Например:

password secret (hd0,4)/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.

Некоторые дополнительные команды GRUB:

default xx
где xx это пункт для загрузки по умолчанию.
timeout yy
где yy это время (в секундах) после которого будет загружен пункт по умолчанию.
fallback zz
где zz это пункт, который будет загружен после таймаута, если первый пункт не может быть загружен.
color
Эта команда используется для раскрашивания меню. Синтаксис таков: color обычный текущий_выбор. Оба поля могут иметь два значения в формате цвет_переднего_плана/цвет_фона. Например:
color green/black или light-gray/blue

Вы также можете использовать соответвующие номера.
ПОМНИТЕ: все значения начинаются с 0, поэтому 0 это первый вход.

В моей следующей статье, я планирую протестировать GNU/Hurd, OpenBSD и, возможно, некий вариант сетевой загрузки. Вам придется подождать как минимум 3 месяца, или даже больше, так как я буду сдавать в это время экзамены. Ждите.

Любые комментарии и сообщения об ошибках можно направлять мне jskohli@fig.org.

индекс статьи
страница 1 : страница без заголовка
страница 2 - текущая : страница без заголовка


Комментарии доступны только авторизованным пользователям, авторизуйтесь или зарегистрируйтесь на сайте здесь

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.