Студопедия — Установка GRUB
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Установка GRUB






 

Скорее всего, что GRUB будет установлен в MBR во время установки Linux, но иногда приходится его восстанавливать или перемещать на другое место. Для этого необходимо иметь установленным пакет grub (/boot/grub: stage1, *stage1_5, stage2). stage1 - это 512 байт, помещаемые обычно в MBR. Кроме программы загрузки stage1_5 или stage2 в них помещается таблица разделов и прочая информация. Адрес загрузчика следующего этапа "впечатывается" в тело stage1 в виде адресов блоков, так что о файловых системах он ничего не знает и после смены адреса stage1_5 и stage2 его надо модифицировать и записывать заново.

Установка GRUB на флоппи:

dd if=stage1 of=/dev/fd0 bs=512 count=1

dd if=stage2 of=/dev/fd0 bs=512 seek=1

Установка GRUB на диск после загрузки GRUB с флоппи (этот метод гарантирует правильную нумерацию дисков):

# сделать корневым раздел, содержащий каталог boot

grub > root (hd0,0)

# запись stage1 в MBR

grub > setup (hd0)

Можно установить GRUB на диск без изготовления флоппи непосредственно из текущей ОС с помощью скрипта grub-install, но при этом есть риск ошибиться с номером устройства (файл device.map):

grub-install /dev/hda

Восстановление загрузчика (загрузка с CD-ROM в режиме rescue, корневая файловая система вместе с /boot на /dev/hda1):

mkdir /mnt/hard

mount -t ext3 /dev/hda1 /mnt/hard

chroot /mnt/hard

/sbin/grub --no-floppy

device (hd0) /dev/hda

root (hd0,0)

setup (hd0)

quit

exit

Установка GRUB на CD (создание и запись ISO9660 в Linux, формат El Torito без эмуляции):

mkdir grubiso

mkdir -p grubiso/boot/grub

cp stage2_eltorito grubiso/boot/grub

mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \

-boot-load-size 4 -boot-info-table -o /tmp/grub.iso grubiso

запись /tmp/grub.iso на CD

После загрузки с этого CD мы попадаем в командный режим GRUB. Файлы, записанные на CD дополнительно доступны с указанием устройства (cd). Этим можно воспользоваться для записи на CD конфигурационного файла, ядра Linux и initrd. Например, создадим конфигурационный файл grubiso/boot/grub/grub.conf:

#boot=/dev/hda

default=4

timeout=5

title chainloader hd0

rootnoverify (hd0)

chainloader +1

title chainloader hd0,0

rootnoverify (hd0,0)

chainloader +1

title CD CentOS 4.0 (2.6.9-5.0.3.EL)

root (cd)

kernel /boot/vmlinuz-2.6.9-5.0.3.EL ro root=/dev/hda3

initrd /boot/initrd-2.6.9-5.0.3.EL.img

title CD Fedora Core 3 original (2.6.9-1.667)

root (cd)

kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet

initrd /boot/initrd-2.6.9-1.667.img

title CD Fedora Core 3 upgrade (2.6.10-1.770_FC3)

root (cd)

kernel /boot/vmlinuz-2.6.10-1.770_FC3 ro root=LABEL=/ rhgb quiet

initrd /boot/initrd-2.6.10-1.770_FC3.img

Все упомянутые файлы необходимо скопировать в grubiso/boot/, создать образ ISO9660 и записать на CD. Получившийся CD (его необходимо дополнить строчками меню для всех вариантов Linux в сети предприятия) можно использовать как "универсальный" аварийный загрузчик. Например, если глючный BIOS компьютера не умеет работать с большими дисками, его приходится загружать с CD.

 

 

Приложение.

 

Последовательность загрузки (x86)

1. инициализация контроллера RAM

2. декомпрессия BIOS из флеш в RAM

3. защита от записи захваченного куска и передача туда управления

4. обход периферии и установка дополнительных модулей BIOS в ROM (VGA, SCSI)

5. POST и инициализация поддерживаемых BIOS устройств

6. проверка устройств, указанных как пригодных для загрузки, на наличие "магического" слова (про загрузку с CD-ROM см. описание спецификации El Torito)

7. загрузка загрузочного сектора (< 512 байт) в память и передача ему управления; если загрузка с жёсткого диска, то загрузочный сектор лежит в MBR (первом секторе, Master Boot Record) главного (master) жёсткого диска на первой шине ATA

8. первоначальный загрузчик находит и загружает программу загрузки 2 этапа (stage 2) и передаёт ей управление (GRUB, LILO, SYSLINUX); используется BIOS API; обычное место загрузчика 2 этапа - /boot/

9. загрузчик 2 этапа выбирает, находит и загружает ядро и RAM диск (initrd) в память; GRUB читает конфигурацию из /boot/grub/grub.conf; конфигурация для LILO хранится в MBR; GRUB и LILO позволяют вывести список возможных загружаемых систем на экран и выбрать нужную с помощью клавиатуры; GRUB позволяет изменить параметры загрузки (корневая файловая система, ядро, RAM диск, параметры ядра) с помощью текстового редактора; используется BIOS API; RAM диск содержит образ файловой системы с модулями (драйверами) устройств, необходимыми для монтирования корневой файловой системы; в случае со встроенным Linux RAM диск содержит всю систему

10. ядро повторно обходит и инициализирует периферийные устройства, для которых есть встроенные драйвера

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

12. если необходимо, то ядро инициализирует LVM и программный RAID

13. ядро размонтирует RAM диск и освобождает занимаемую им память

14. ядро монтирует корневую файловую систему в режиме "только чтение"; в процессе дальнейшей работы ядро загружает дополнительные модули с корневой файловой системы

15. запускается процесс /sbin/init (далее описывается загрузка в стиле System V)

16. init разбирает конфигурационный файл /etc/inittab для определения дальнейших действий; если при загрузке указан уровень s (или S), то inittab не читается, а система переходит в однопользовательский режим (shell на /dev/console с правами root); строка с действием initdefault определяет "уровень выполнения" (run level) по умолчанию, т.е. режим работы системы (однопользовательская, многопользовательская, с доступом в сеть, с графическим окружением и т.д.); строка с действием sysinit (/etc/rc.d/rc.sysinit) определяет скрипт инициализации;

17. init выполняет скрипт /etc/rc.d/rc.sysinit (проверка и монтирование остальных файловых систем, swap и т.д.)

18. в "нормальном" /etc/inittab при переходе на любой уровень запускается скрипт /etc/rc.d/rc с указанием уровня в качестве параметра; данный скрипт запускает скрипты /etc/rcуровень.d/K* (в алфавитном порядке) с параметром stop и скрипты /etc/rcуровень.d/S* с параметром start; в конце запускается /etc/rc.d/rc.local; по традиции скрипты являются символьными ссылками на скрипты в директории /etc/init.d/; вместо /etc/init.d/ может использоваться /etc/rc.d/init.d/; вместо /etc/rcуровень.d/ может использоваться /etc/rc.d/rcуровень.d; реальность несколько сложнее

 

Загрузчики

 

В различных дистрибутивах и различных ситуациях могут использоваться следующие загрузчики:

7. GRUB

8. LILO

9. ISOLINUX

LILO и GRUB работают через BIOS, а большинство BIOS позволяют доступ только к первым двум IDE-дискам (считая ATAPI CD-ROM) в пределах первых 1023 цилиндров. Так что каталог (или раздел) /boot, в котором хранятся как файлы самого загрузчика, так и загружаемые файлы (ядро, initrd) должен удовлетворять данным ограничениям.

 

Уровни выполнения и /etc/inittab

 

Формат файла /etc/inittab (комментарии начинаются с символа '#'):

идентификатор:перечень-уровней-выполнения:действие:процесс

где

8 идентификатор - уникальная последовательность от 1 до 4 символов (в старых версиях до 2); для getty и ему подобных идентификатор д.б. номером линии tty

9 перечень-уровней-выполнения - перечисление (без пробела) уровней выполнения, для которых выполняется указанное действие (от 0 до 6 и от A до C, s, S); для sysinit, boot и bootwait игнорируется; при смене уровня всем процессам, не специфицированным для этого уровня, посылается сигнал SIGTERM, а через 5 секунд (интервал задаётся при вызове telinit -t) сигнал SIGKILL (init предполагает, что процесс не сменил группу процессов, в которой он его запустил); пустой список означает "для всех"

10 действие (по-моему, тут перемешанны условия и действия)

11 respawn (процесс по завершении запускается вновь и вновь; после 10 перезапусков за 2 минуты делается пауза 5 минут)

12 wait (процесс запускается один раз при переходе на уровень, init ждёт его завершения)

13 once (процесс запускается один раз при переходе на уровень)

14 boot (процесс запускается при загрузке системы)

15 bootwait (процесс запускается при загрузке системы, init ждёт его завершения)

16 off (ничего не делать)

17 ondemand (процесс запускается при вызове данного уровня выполнения (от A до C), но смены уровня не происходит)

18 initdefault (на какой уровень выполнения переходить после загрузки; если не указан, то будет спрашивать на консоли)

19 sysinit (процесс запускается при загрузке до boot и bootwait)

20 powerwait (вызывается при пропадании питания, например, программой слежения за UPS, SIGPWR (подробности в /etc/powerstatus: FAIL), init ждёт его завершения)

21 powerfail (вызывается при пропадании питания, например, программой слежения за UPS, SIGPWR (подробности в /etc/powerstatus: FAIL), init не ждёт его завершения)

22 powerokwait (вызывается при возобновлении питания, SIGPWR (подробности в /etc/powerstatus: OK), init ждёт его завершения)

23 powerfailnow (вызывается непосредственно перед исчерпанием аккумуляторов UPS, SIGPWR (подробности в /etc/powerstatus: LOW))

24 ctrlaltdel (вызывается при получении сигнала SIGINT от ядра)

25 kbrequest (ядро посылает SIGWINCH при нажатии определённой комбинации клавиш)

26 процесс - имя файла ('+' перед символом отменяет запись utmp и wtmp), программа или скрипт

При запуске процесса устанавливаются переменные окружения: PATH, INIT_VERSION, RUNLEVEL, PREVLEVEL, CONSOLE.

Уровни выполнения для Red Hat Linux:

4. 0: halt (неинтереактивный уровень)

5. 1: single user (одна виртуальная консоль)

6. 2: multiuser (6 виртуальных консолей)

7. 3: multiuser + NFS (6 виртуальных консолей)

8. 4: не используется

9. 5: X11 (6 виртуальных консолей и xdm, gdm или kdm в зависимости от /etc/X11/prefdm)

10. 6: reboot (неинтереактивный уровень)

Переход на другой уровень можно сделать с помощью программы telinit или прямо через /dev/initctl. telinit с указанием уровня q (Q) заставляет init перечитать /etc/inittab. Использование SIGPWR и /etc/powerstatus признано устаревшим.

Загрузчик может передать процессу init параметры

7. -s, S, single (загрузка в однопользовательском режиме)

8. от 1 до 5 (явное задание уровня выполнения)

9. -b, emergency (однопользовательский режим без выполнения sysinit)

10. -a, auto (устанавливается переменная AUTOBOOT)

 







Дата добавления: 2015-06-29; просмотров: 394. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия