Загрузчик GRUB
В настоящее время загрузчик GRUB (Grand Unified Boot loader) является стандартным в GNU/Linux. Он позволяет загружать не только Linux, но и яд- ра множества других операционных систем. Загрузчик GRUB способен об- ращаться к файловой системе на загрузочном носителе для поиска файла ядра.
Загрузчик GRUB распознает различные типы файловых систем, например, ext2, ext3, ext4, XFS, JFS. GRUB способен работать с дисками, имеющими более 1024 цилиндров. При этом обеспечивается загрузка ядер ОС с разде- лов, расположенных в любом месте диска.
GRUB может загружать ядра разнообразных операционных систем, например, GNU/Linux, GNU/HURD, FreeBSD, SUN Solaris и др. Для операционных сис- тем, загрузка ядер которых не поддерживается, загрузчик GRUB обеспечивает цепную загрузку (chainload), т. е. передачу управления загрузчику другой опе- рационной системы. Также GRUB поддерживает автоматическую декомпрес- сию загружаемых файлов, сжатых в формате ZIP. GRUB обладает встроенной командной оболочкой, позволяющей гибко управлять процессом загрузки, а также автоматизировать его, задавая в конфигурационном файле загрузчика последовательности команд. Загрузчик GRUB поддерживает загрузку через локальную сеть посредством протокола TFTP (Trivial File Transfer Protocol) и выполняет управление загрузкой с удаленного последовательного терминала.
В GRUB используется особая система именования дисковых устройств. Для обращения к дискам используются обозначения вида: (hd1) — второй жест- кий диск в системе (нумерация начинается с нуля), hd — жесткие диски. Имена дисков заключаются в круглые скобки. Раздел жесткого диска указы- вают в виде номера раздела через запятую после номера диска. Нумерация разделов начинается с нуля. Например, второй раздел первого жесткого дис- ка именуется (hd0,1).
Команда grub в командной строке запускает собственную командную обо- лочку GRUB, в которой, например, можно определить структуру жесткого диска с помощью встроенной GRUB-команды geometry, которой необходимо указать в качестве аргумента имя жесткого диска (пример 14.1).
Пример 14.1. Получение геометрии диска |
grub> geometry (hd0)
drive 0x80: C/H/S = 19457/255/63, The number of sectors = 312581808,
/dev/disk/by-id/ata-HITACHI_HTS541616J9SA00_SB2404GJGZV WLS
Partition num: 0, Filesystem type unknown, partition type 0x27 Partition num: 1, Filesystem type unknown, partition type 0x7 Partition num: 4, Filesystem type unknown, partition type 0x82 Partition num: 5, Filesystem type is ext2fs, partition type 0x83 Partition num: 6, Filesystem type is ext2fs, partition type 0x83
grub> quit
Команда help предоставляет помощь в командной оболочке GRUB. Команда root предназначена для указания раздела жесткого диска, на котором разме- щается ядро ОС, т. е. загрузочного раздела. Например, для указания второго раздела первого жесткого диска следует выполнить команду root (hd0,1).
Команда setup позволяет установить загрузчик, т. е. записать исполняемый код загрузчика в требуемый раздел жесткого диска или MBR (Master Boot Record). Аргумент команды setup должен указывать требуемый раздел. Например, для установки GRUB в MBR первого диска следует выполнить команду из примера 14.2.
Пример 14.2. Установка загрузчика GRUB |
setup (hd0)
Для выхода из командной оболочки GRUB следует использовать команду
quit.
В командной оболочке GRUB работает механизм продолжения имен команд, аналогичный такому же механизму в оболочке Bash. Для продолжения имени команды в GRUB следует нажать клавишу <Tab>.
При загрузке с помощью GRUB можно также использовать оболочку GRUB, например, для того, чтобы установить значения некоторых параметров за- грузки ядра. Для перехода в оболочку GRUB при загрузке необходимо во время работы загрузчика нажать клавишу <c>. Для выхода из командной оболочки GRUB и продолжения загрузки следует нажать клавишу <b>.
При работе загрузчик GRUB использует файлы, находящиеся в каталоге
/boot/grub. Основной файл конфигурации загрузчика /boot/grub/menu.lst задает последовательности команд, выполняемых загрузчиком при загрузке ОС. В целях обратной совместимости может присутствовать файл символической ссылки /boot/grub/grub.conf, указывающий на основной файл конфигурации GRUB. В файле menu.lst может быть задано несколько различных вариантов ядер для загрузки и/или несколько вариантов различных параметров загруз- ки. Здесь также могут быть заданы команды передачи управления по цепи загрузчикам других операционных систем.
Команда default указывает образ для загрузки по умолчанию. Все образы ну- меруются с нуля в порядке их появления в файле menu.lst. Задержка в секундах перед загрузкой образа по умолчанию задается командой timeout. При жела- нии использовать графическое меню загрузки можно установить графиче- ское фоновое изображение с помощью команды splashimage (пример 14.3). Описание образа для загрузки должно включать в себя команду title, ото- бражающую в меню строку с именем или описанием загружаемого образа,
возможно, иной загрузочный раздел, нежели раздел по умолчанию, с помо- щью команды root, а также, возможно, имя образа начального электронного диска с первичной файловой системой initrd.
Пример 14.3. Файл конфигурации /boot/grub/menu.lst |
default 2
timeout 8
title openSUSE 11.2 - 2.6.31.8-0.1 (pae) root (hd0,5)
kernel /boot/vmlinuz-2.6.31.8-0.1-pae root=/dev/sda6 initrd /boot/initrd-2.6.31.8-0.1-pae
title Windows
rootnoverify (hd0,1) chainloader +1
В примере 14.3 показан файл конфигурации GRUB, позволяющий загружать ядро Linux и по цепной загрузке MS Windows.
Из собственной оболочки GRUB загрузчик может быть установлен с помо- щью команды оболочки setup. Например, setup (hd0) — установка в MBR.
При необходимости установить GRUB из оболочки Bash (или иной) следует использовать системную команду grub-install, передав ей в качестве пара- метра имя загрузочного раздела.
Если загрузчик GRUB установлен, то для дальнейшего изменения его поведе- ния следует править файл /boot/grub/menu.lst, который при загрузке будет про- читан загрузчиком GRUB без каких-либо других подготовительных действий.
Дата добавления: 2015-06-12; просмотров: 1124;