Материал просмотрен 507 раз(а)

Наверное, наиболее первичная и типовая задача системного администратора – это обеспечение правильной загрузки операционной системы.

Для того, чтобы это осуществить, администратору совершенно необходимо четко понимать принципы загрузки системы и различные этапы этого процесса.

Надо сказать, что задачи на устранение различных неисправностей при загрузке системы часто встречаются в различных экзаменах на сертификацию по направлениям ОС.

Процесс загрузки Linux

Процесс загрузки Linux

Первым делом после включения компьютера происходит выполнение специального кода запуска, который представлен в виде базовой системы ввода-вывода (BIOS). Системе BIOS известна почти вся конфигурация железа. Есть сведения с какого устройства считывать первые 512 байт (MBR).

Именно в MBR (Master Boot Record) хранится программа первичной загрузки (stage 1), в которой содержится информация о том, в каком месте диска расположена программа вторичной загрузки (stage 2), которая загружает саму операционную систему.

Таким загрузчиком в нашем конкретном примере является GRUB (Grand Unified Boot Loader). Есть и промежуточный этап (так называемый stage 1.5), помогающий загрузчику ОС определить особые параметры файловой системы. Эта подпрограмма используется, если загрузчик GRUB не был установлен прямо в MBR.

После получения управления GRUB отображает список операционных систем (Linux/Windows и различных версий ядра Linux), если они доступны. В ином случае управление переходит на командную строку GRUB.

Предположим, что всё идёт как надо и мы выбрали нужную нам операционную систему (или версию ядра). В этом случае GRUB переходит к своему любимому делу – загружает саму операционную систему.

Вся информация о ходе процесса загрузки выводится на экран (если в опциях загрузки ядра отсутствует параметр quiet), а так же в журнальный файл /var/log/dmesg. Просмотреть который можно непосредственно, либо используя утилиту dmesg.

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

Анализ этой информации в случае невозможности загрузки ОС может пролить свет на возникшую проблему, поэтому этот файл считается достаточно важным для траблшутинга.

Когда ядро системы загружено, производится базовая настройка необходимых устройств, подсистемы LVM и RAID и диск в оперативной памяти initrd, позволяющий загрузить необходимые драйверы.

Далее, ядро монтирует корневой раздел и раздел /usr, и управление передается процессу init. (можно сказать, что он самый первый и самый главный).

Дальнейшие действия по загрузке процессов сильно отличаются в зависимости от версии ОС. В RHEL5 используется традиционный процесс загрузки служб SysV. В RHEL6 уже есть частичное распараллеливание загрузки процессов, причем по необходимости, а не все подряд. В новых версиях RHEL (с версии ядра 3.0) процесс ещё больше оптимизирован за счёт использования программы systemd, так же как в Fedora с 15-ой версии. В этом случае используется асинхронный режим работы, ускоряющий загрузку ОС.

Передав управление процессу init ядро переходит в особый режим и принимает обращения всех процессов через специальный универсальный интерфейс системных вызовов. На этом загрузку Linux можно считать завершенной.