Настройка и работа в Linux
adb5321d

ТРЕТИЙ: настройка GRUB


Вы этой секции мы увидим, как загружать различные операционные системы и создать файл menu.conf.

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

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

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

  1. Установите корневое устройство или укажите GRUB вашу корневую файловую систему.
  2. Укажите GRUB, где находится образ вашего ядра и передайте ядру параметры.
  3. Перезагрузитесь и проверьте его.

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

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

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

  1. Установите корневой раздел, но не монтируйте его.
  2. Активируйте этот раздел.
  3. Установите первый сектор устройства, которому будет передано контроль в случае загрузки по цепочке.
  4. Перезагрузитесь и проверьте его.

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

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

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

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

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


  1. Установите название (title).
  2. Установите корневой раздел.
  3. Установите ядро с правильными параметрами.
  4. Команда загрузки (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.
Copyright ї 2001, Jaswinder Singh Kohli.
Copying license http://www.linuxgazette.com/copying.html
Published in Issue 64 of Linux Gazette, March 2001
Содержание раздела