Настройка загрузчика GRUB
Первый сектор диска (MBR, загрузочный сектор) и первый сектор каждого раздела (boot-сектор) содержат загрузочную информацию. При запуске компьютера BIOS загружает в память программу-загрузчик из MBR, которая считывает таблицу разделов диска, определяет активный раздел диска и загружает программу-загрузчик из первого сектора этого раздела. Загрузчик считывает в память ядро операционной системы и начинается процесс загрузки.Настройки загрузчика GRUB (GRand Unified Bootloader) находятся в файле
/boot/grub/grub.conf
и содержат
набор директив.Директива | Описание |
default=номер_пункта | номер пункта меню загрузчика, выполняющийся по умолчанию. Пункты меню нумеруются начиная с нуля |
timeout=число_секунд | число секунд перед началом автоматической загрузки |
splashimage=(hd0,0)/grub/имя_файла.xpm.gz | файл с фоном загрузчика |
password незашифрованный_пароль | незашифрованный пароль |
password --md5 зашифрованный_пароль | зашифрованный пароль длинной 30 символов |
title название пункта меню | название пункта меню загрузчика |
lock | использовать пароль при выборе пункта меню |
root (hd0,0) | активный раздел диска, где находится образ ядра системы |
| файл с образом ядра системы |
| содержит необходимые модули ядра |
Директива
password
, указанная в начале файла (до первой директивы title
) задает пароль для
перехода GRUB в режим ввода команд.Если сразу после директивы
title
указана директива lock
, то при выборе пользователем данного
пункта меню появится сообщение с запросом пароля, указанного директивой password
в начале конфигурационного файла.
Если необходимо установить отдельный пароль к данному пункту меню необходимо вместо директивы lock
использовать
директиву password
.Для задания фона загрузчика GRUB необходимо указать следующую дериктиву в файле настроек:
splashimage=(hd0,0)/grub/имя_файла.xpm.gzЗдесь предполагается, что каталог
/boot/
является точкой монтирования первого раздела первого диска.В каталоге
/boot/grub/
нужно поместить файл с изображением имя_файла.xpm.gz
Образцы файлов
с фоном можно найти в сети Интернет (см. ссылки ниже) или создать свое собственное изображение. Для этого необходимо
с помощью какого-либо графического редактора создать изображение размером 640x480 в формате xpm
, то есть
имя_файла.xpm
. Затем необходимо сжать изображение архиватором gzip
с помощью команды:gzip имя_файла.xpmВ результате, получится файл
имя_файла.xpm.gz
Если средства графического редактора не позволяют создавать изображения в формате
xpm
, то можно
преобразовать изображение из исходного формата в формат xpm
с помощью команды:convert имя_файла.png -colors 14 -resize 640x480 имя_файла.xpmКоманда
convert
входит в пакет imagemagick
, наличие которого можно проверить командой:yum info imagemagick
и при отсутствии установить командой:
yum install imagemagick
Восстановление загрузочной записи в MBR
Для восстановления загрузочной записи необходимо загрузить систему с Live-CD. Затем запустить консоль GRUB командой:grub
В строке консоли GRUB выполнить команды:
grub> root (hd0,0) grub> setup (hd0) grub> quitПервая команда указывает на boot-раздел, где находится образ ядра системы, в данном примере это первый раздел первого диска. Вторая команда устанавливает GRUB в MBR, в данном примере первого диска. Третья команда осуществляет выход из консоли GRUB.
Перезагрузить систему.
Основные параметры ядра
Параметры ядра указаны в файле/lib/modules/`uname -r`/build/.config
. Файл представляет собой список
параметров ядра с указанием способа их включения в ядро: встроенные (y
) или подключаемый модуль (m
).
Для того, чтобы пересобрать ядро необходимо сначало отредактировать этот файл либо в текстовом редакторе, либо с
помощью команды make menuconfig
(текстовое меню) или make config
(вопрос-ответ).
Управление драйверами (модулями ядра)
Управление аппаратными устройствами компьютера осуществляет ядро операционной системы Linux. Часть ядра, управляющая конкретным устройством называется драйвером устройства. Выделяют два типа драйверов:- 1) Драйверы являются частью программного кода ядра (встроены в ядро). Для добавления нового драйвера необходимо перекомпилировать ядро.
- 2) Драйверы являются модулями ядра. Модули ядра хранятся в подкаталогах каталога
в файлах с расширением/lib/modules/`uname -r`/
*.ko
.
/etc/modprobe.conf
.
Этот файл создается с помощью программы kudzu
, которая проверяет все подключенное оборудование, создает
базу данных всех устройств в файле /etc/sysconfig/hwconf
и указывает список необходимых модулей в файле
/etc/modprobe.conf
.Список всех загруженных в ядро модулей можно получить командой:
lsmod
Информацию о конкретном модуле:
modinfo имя_модуля
Загрузить модуль:
insmod имя_модуля
Выгрузить модуль:
rmmod имя_модуля
Для загрузки модуля и всех зависимых модулей:
modprobe имя_модуля
Для удаления модуля и всех неиспользуемых зависимых модулей:
modprobe -r имя_модуля
Для доступа к драйверам служат файлы устройств (
/dev/hda
, /dev/eth0
и т.д.). Таким образом,
общую схему взаимодействия пользователей с аппаратными устройствами можно представить в виде:Устройство <- Ядро <- Файл устройства <- Программа пользователя
Управление режимами работы ОС
При загрузке операционной системы запускается процессinit
, который читает данные из файла
/etc/inittab
и запускает указанные в нем процессы. Формат файла /etc/inittab
следующий.Первая строка файла имеет вид:
id:уровень_исполнения_по_умолчанию:initdefault:Остальные строки файла:
идентификатор:уровни_исполнения:действие:запускаемый_процесс
Предусмотрены семь уровней выполнения:
Уровень | Описание |
0 | выключение системы |
1 | однопользовательский режим (уровень S) |
2 | многопользовательский режим без поддержки сети |
3 | многопользовательский режим |
4 | не используется |
5 | графический режим |
6 | перезагрузка |
Возможные действия над процессами:
Действие | Описание |
respawn | при завершении процесс будет перезапущен |
wait | процесс будет запущен при переключении на любой из указанных уровней и процесс загрузки остальных процессов продолжится только после завершения данного процесса |
once | процесс будет запущен только один раз |
boot | процесс будет запущен во время начальной загрузки независимо от указанных уровней исполнения |
bootwait | процесс будет запущен во время начальной загрузки и процесс загрузки продолжится только когда завершится данный процесс |
off | не выполняется никаких действий |
ondemand | запускается при переходе на уровни A, B, C |
initdefault | уровень выполнения по умолчанию |
sysinit | процесс запускается во время загрузки до процессов boot и bootwait |
powerwait | процесс будет запущен при исчезновении электропитания |
powerfail | процесс будет запущен при исчезновении электропитания |
powerokwait | процесс будет запущен при появлении электропитания |
powerfailnow | процесс будет запущен при низком заряде батарей источника бесперебойного питания |
ctrlaltdel | процесс будет запущен при нажатии комбинации клавиш <Ctrl+Alt+Del> |
kbrequest | процесс будет запущен при нажатии "специальной" комбинации клавиш |
Независимо от выбранного уровня выполнения сначало запускаются процессы отмеченнные как
sysinit
, затем
boot
и bootwait
.По-этому первым запускается сценарий
/etc/rc.sysinit
, который выполняется только один раз при загрузке
системы.А затем, запускается процесс
/etc/rc
, который запускает все процессы в соответствии с выбранным уровнем
выполнения. При переходе на заданный уровень исполнения выполняются все скрипты из специального каталога, соответствующего
данному уровню исполнения:Каталог | Описание |
/etc/rc0.d/ | выключение системы |
/etc/rc1.d/ | однопользовательский режим |
/etc/rc2.d/ | многопользовательский режим без поддержки сети |
/etc/rc3.d/ | многопользовательский режим |
/etc/rc4.d/ | не используется |
/etc/rc5.d/ | графический режим |
/etc/rc6.d/ | перезагрузка системы |
В этих каталогах находятся ссылки на скрипты сервисов из каталога
/etc/init.d/
. Имена ссылок имеют вид:Sxxимя_скрипта
Kxxимя_скрипта
Здесь
S
означает запустить (start) сервис, а K
означает остановить (stop) сервис.
Символы xx
- это двузначный порядковый номер скрипта. Запускаются и останавливаютя сервисы от малых
номеров к большим.После загрузки всех сервисов процесс
init
продолжает запуск оставшихся процессов.Для перехода на другой уровень испольнения непосредственно из консоли служит команда:
telinit уровень_исполнения
Управление службами (сервисами)
В каталоге/etc/init.d/
расположены скрипты запуска и остановки сервисов. Стандартный вид такого скрипта
следующий:#!/bin/sh # # chkconfig: 345 85 15 # description: Start and stop myservice # processname: myservice start() { daemon /путь_к_файлу/myservice touch /var/lock/subsys/myservice } stop() { killproc myservice rm -f /var/lock/subsys/myservice rm -f /var/run/myservice.pid } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo $"Usage: myservice {start|stop|restart}" exit 1 esac exit 0Сервисы могут быть запущены "вручную" командой:
/etc/init.d/имя_сервиса start
Также могут быть остановлены командой:
/etc/init.d/имя_сервиса stop
И перезапущены командой:
/etc/init.d/имя_сервиса restart
Получить информацию о том, на каких уровнях выполнения автоматически запускается данный сервис можно воспользоваться командой:
chkconfig --list имя_сервиса
Для добавления автоматического запуска сервиса используется команда:
chkconfig --level 345 имя_сервиса on
Для запрещения автоматического запуска сервиса используется команда:
chkconfig --level 345 имя_сервиса off
При добавлении автоматического запуска сервиса создаются ссылки в соответствующих каталогах (например,
/etc/rc3.d/
, /etc/rc4.d/
, /etc/rc5.d/
) на скрипт запуска сервиса
из каталога /etc/init.d/
. При отключенни автоматического запуска эти ссылки удаляются.Ссылки по теме
GNU GRUB Manual 0.97Инсталляция и конфигурация загрузчика GRUB
Образцы фоновых рисунков для загрузчика GRUB
Образцы фоновых рисунков для загрузчика GRUB
Образцы фоновых рисунков для загрузчика GRUB