Linux как установить уровень загрузки

Обновлено: 02.07.2024

Приветствую всех посетителей моего родившегося блога!

В своей первой статье опишу свои первые познания в ОС Linux. Недавно поменял место работы и по служебной необходимости пришлось внедрять в свой мозг новую для себя операционную систему Linux. Ранее приходилось сталкиваться с Linux только как на рабочей станции, даже без привязки к локальной сети. Максимум до чего дошли руки - устанавливать rpm пакеты, читая пошаговый HOWTO, изъятый из просторов гугла и с использованием менеджера пакетов synaptic. При этом настройка занимала громадную уйму времени.

До настоящего времени приходилось администрировать только сети на основе просящего много денег мелкософта. Но с последними тенденциями в сфере лицензирования и обращения особого внимания органов на отсутствие заветных наклеечек на компьютерах организации, а так же желании руководства сэкономить на программном обеспечении (а что, программы продаются чтоли? О_о (с) ) пришлось "сесть собаку" на вопросах лицензий и тем самым подтолкнул себя к более глубокому изучению продуктов ОпенСорса. К тому же на новой работе стоит старенький ALT Linux Compact 3 с почтовиком qmail и pptp сервером для удаленного доступа, которых хочется скорей переустановить, ибо клиенты умирают от спама, места для почты практически не осталось + хочется какой-нибудь небольшой корпоративный Жаббер да и еще кучу пожеланий.

В общем начал я изучение с самых основ. В данной статье размещу, как можно более понятную последовательную схему загрузки ОС Linux. Данная схема, скажем так, плод моих умозаключений, буду рад вашим комментариям и дополнениям!

Загрузка Linux, stage one

Описание 1 этапа:

Не углубляясь в кучу терминов и определений, данный этап можно описать следующими словами: BIOS из MBR (первые 512 байт диска, выбранного для загрузки) загружает First Boot Loader. FSB находит вторичный загрузчик, используя таблицу разделов, просматривая ее, обнаруживает активный раздел, после обнаружения этого раздела - загружает SSB в оперативную память и запускает его. Для корректной загрузки, активный раздел должен содержать каталог /boot, который должен находиться в начале диска и содержать Second Stage Boot Loader. В целом, SSB - это программа, которая выводит список вариантов загрузки (меню выбора загрузки операционной системы). Загрузчиком может быть LILO (более старый) или GRUB. Загрузчик берет свои настройки из конфигурационного файла (/etc/lilo.conf - для LILO и /boot/grub/grub.conf или /boot/grub/menu.lst - для GRUB). Существуют и другие версии загрузчиков, такие как syslinux, PXElinux, Isolinux, uBoot, но для наглядности, в статье я затронул только LILO и GRUB. Хочу отметить, что исторически (до появления загрузчиков LILO, GRUB и др. и когда образ ядра занимал объем не боле 1,44 Мб) данного этапа не существовало и загрузка происходила с дискеты без файловой системы, на которую был записан образ ядра Linux, который (образ) содержал в себе MBR, то есть BIOS загружал сразу образ ядра и передавал ему управление.

Вторая стадия загрузки Linux

Описание 2 этапа:

Второй этап можно характеризовать так: подготовка системы для запуска служб демонов. При подготовке, Загрузчик загружает в память образ ядра из каталога /boot. Давайте рассмотрим пример образа ядра на примере ОС Debian 6:

Т.к. ядро Linux является модульным, то при загрузке может возникнуть необходимость подключить модуль ядра, который находится на еще не примонтированной файловой системе. Для решения данной проблемы при загрузке подгружается архив файловой системы (он же инициализационный RAM диск или initrd), содержащий в себе необходимый для загрузки набор модулей ядра. Вот так он выглядит для указанного выше ядра:

Какой архив initrd подгружать при загрузке, так же указывается в FSB GRUB или LILO:

Третья стадия загрузки Linux

Описание 3 этапа:

До текущего момента процесс запуска любой UNIX системы практически не отличался. Третий этап загрузки может отличаться в зависимости от платформы, будь то Linux, BSD, MacOS и др. Я подробно рассмотрю процесс загрузки операционной системы Linux с реализацией процесса запуска с помощью пакета sysvinit (так же именуемого System V - "систем 5"). В Linux в последнее время активно внедряется разработанный "убунтологами" пакет upstart, который приходит на смену SysV, данный процесс я так же кратко опишу и немного расскажу о загрузке BSD-систем.

На третьем этапе загрузки System V происходит следующее:

Далее, процесс init согласно уровню загрузки просматривает каталог /etc/rc.d/rc0.d/ (в данном примере, цифра 0(ноль) в имени rc0.d соответствует уровню загрузки - нулевому), в котором содержатся симлинки (ссылки) на скрипты запуска системных служб, которые, в свою очередь, расположены в /etc/rc.d/init.d/ (для Red Hat) или в /etc/init.d/ (для Debian). Ссылки имеют следующий формат:

< S | K >< число >< имя_службы >, в котором: S - запуск службы (Start), K - остановка службы (Kill), < число > - число, определяющее последовательность запуска служб (00 - самая первая), < имя_службы > -имя запускаемой службы.

Уровни выполнения бывают следующие:

  • 0: полная остановка машины;
  • 1: single-user (однопользовательский) режим; (используется в случае серьезных проблем или для восстановления системы)
  • 2: multi-user (многопользовательский) режим, без поддержки сети;
  • 3: Мulti-user (многопользовательский) режим с поддержкой сети; (используется преимущественно на серверных системах)
  • 4: неиспользуемый;
  • 5: Мulti-user (многопользовательский) режим с поддержкой сети + графический интерфейс для входа в систему (login);
  • 6: перезагрузка.

При этом, в разных дистрибутивах, возможны вариации уровней загрузки. Дистрибутив Slackware использует уровень выполнения 4 вместо 5 для полного запуска системы X Window. Debian использует один уровень выполнения для любого многопользовательского режима, обычно это уровень 2.

После запуска всех демонов, содержащихся в каталоге /etc/rc.d/rc0.d/, процесс Init запускает сценарий /etc/rc.d/rc.local (для RedHat) или /etc/rc.local (для Debian). В данном сценарии можно разместить свои настройки, которые вступят в силу после запуска всех демонов.

Далее, процесс Init запускает процесс mingetty, который запрашивает имя пользователя (о расположении mingetty, также сказано в файл /etc/inittab). После ввода имени пользователя, mingetty передает введенную информацию процессу login. Процесс login просматривает файлы /etc/passwd и /etc/shadow на наличие указанного пользователя и выводит запрос пароля. После ввода пароля пользователя, процесс login сравнивает хеш пароля с данными в файле /etc/shadow и в случае совпадения, запускает шелл.

Указанный процесс актуален для входа в текстовую консоль, при входе в графическую оболочку, вместо mingetty, процесс init запускает процесс gdm (для GNOME) или kdm (для KDE), в зависимости от того, какой оконный менеджер установлен в системе. gdm (или kdm) запускает X-сервер и выводит окно аутентификации.

После успешной аутентификации, просматривается файл конфигурации /etc/group, который определяет принадлежность пользователя к группам. А так же запускается стартовый конфигурационный сценарий /etc/X11/gdm/PreSession (для X-сервера) и конфигурационные стартовые скрипты (/etc/profile и др.) для bash, которые устанавливают настройки окружения пользователя.

Уровнем выполнения можно управлять с помощью команд.

На третьем этапе загрузки Upstart происходит следующее:

Давайте немного затронем вопрос загрузки новой системы Upstart, которая введена в действие с Ubuntu 7.10 и старше, Fedora 9, RHEL 6, планируется в Debian, . (если есть другие дистрибутивы с uppstart, буду рад комментариям об этом). Основное отличие upstart от system V в том, что работа upstart основана на обработке событий. К стати будет сказано, что одной из основных задач внедрения upstart была - уйти от последовательного запуска сервисов в SysV, тем самым ускорить загрузку ОС, сделав процесс запуска служб параллельным. Итак, система upstart при запуске, процессом init генерируется событие startup (запуск - одно из двух основных событий) - старт системы, а событие shutdown - при выключении системы. Другое ключевое событие - это ctrlaltdel, которое указывает, на то, что вы нажали клавиши Ctrl-Alt-Delete. В соответствии с событием генерируемым процессом init, обрабатываются конфигурационные фалы (*.conf) из каталога /etc/init/ (в более старых версиях upstart - каталог /etc/event.d/). В этом, собственно, и заключается вся работа upstart. Для обратной совместимости с System V существует файл /etc/init/rc.conf, который запускает демоны, согласно SysV.

Давайте рассмотрим содержимое файлов /etc/init/*.conf. Каждый из файлов должен содержать start on event (по какому (on) событию (event) осуществлять запуск (start) службы), stop on event (по какому событию останавливать запуск службы), exec либо script (что, собственно, запустить по указанному выше событию). Наиболее часто применяемые события в конфигурационных файлах - это startup, runlevel, stopped и started. startup - это событие запуска операционной системы, runlevel (с указанием уровня или нескольких уровней) - событие при смене уровня запуска, stopped - событие после остановки задания, started - событие после завершения старта задания. Просмотрев конфигурационные файлы в каталоге /etc/init/ можно найти и другие события, о которых можно почитать в man upstart-events (7). В дополнение к стандартным записям exec и script существуют записи pre-start и post-stop, реализующие выполнение подготовительных действия до выполнения exec и завершающие после завершения exec.

Данной системой загрузки также можно управлять командами.

Для отключения автоматического запуска службы в Upstart, необходимо:

На третьем этапе загрузки BSD происходит следующее:

Перед описанием 3 этапа загрузки BSD хочу отметить, что по-умолчанию на 1 этапе используется загрузчик BSD Loader, работа которого аналогична любому другому загрузчику и тоже разбита на подэтапы (загрузка FSB, SSB и т.д.). Файл конфигурации BSD Loader расположен в /boot/loader.conf. Соответственно, после запуска BSD Loader, происходит передача управления ядру и запуск процесса /sbin/init. Дальше запуск несколько отличается от Linux, т.к. в BSD нет понятия runlevel, то есть существует единый уровень исполнения. НО в BSD есть 2 режима загрузки - однопользовательский (режим восстановления) и многопользовательский.

В однопользовательском режиме загрузка происходит:

  1. при выборе соответствующего пункта (Boot in single user mode) в меню начального загрузчика,
  2. при задании команды boot -s в командной строке загрузчика (после выбора пункта его меню Escape to loader prompt),
  3. при обнаружении серьезных (неустранимых автоматически) нарушений целостности файловой системы в ходе ее проверки на первой стадии инициализации.

При загрузке в однопользовательском режиме происходит запуск оболочки без пароля с правами суперпользователя и монтирование корневой ФС только на чтение. Запуска сценариев инициализации не происходит.

При загрузке в многопользовательском режиме, как и в Linux, выполняется 2 этап загрузки. На 3 этапе в BSD задача процесса init аналогична - это вызов и отработка сценариев инициализации, или стартовых скриптов, собранных в каталоге /etc и его подкаталогах и получение терминала (запуск процесса getty), установка его свойств и подготовка к аутентификации и авторизации (ввод логина/пароля) и последующее вытеснение getty процессом login. Отличие BSD в том, что в BSD имеет свои стартовые скрипты, отличные от Linux.

Основной стартовый скрипт -это /erc/rc, настройки применяемые по умолчанию для скрипта /etc/rc процесс init считывает, из файла /etc/defaults/rc.conf, а настройки, специфичные для текущей системы, из /etc/rc.conf, после чего осуществляется монтирование файловых систем, перечисленных в файле /etc/fstab, запуск сетевых служб, различных системных даемонов и, наконец, выполнение скриптов запуска дополнительно установленных пакаджей. Строки /etc/rc.conf имеют вид параметр="значение" (точнее service_name_enable="YES/NO"). Соответственно, service_name_enable - это имя службы, которое должно соответствовать имени скрипта запуска службы из каталога /etc/rc.d/* (/etc/rc.d/service_name_enable, например /etc/rc.d/sshd) или /usr/local/etc/rc.d/* - для ПО установленного из портов, значение yes или no соответственно включает или выключает службу.

Некоторые дополнительные системные сервисы могут быть не учтены в файле /etc/rc.conf. Тогда для их запуска нужно прописать соответствующую команду в /etc/rc.local

Не записывайте свои команды в /etc/rc.conf. Для запуска демонов, или для выполнения вашей команды во время запуска - запишите ваш скрипт в /usr/local/etc/rc.d.

Процесс остановки системы BSD

Во время контролируемого процесса остановки системы через утилиту shutdown программа init будет пытаться запустить скрипт /etc/rc.shutdown, после чего будет посылать всем процессам сигнал TERM, а затем и KILL тем процессам, которые не завершили работу.

Итого, в BSD процесс загрузки до ужоса прост - запуск скрипта /etc/rc согласно настроек /etc/rc.conf, в котором прописано, какие скрипты запуска демонов из /etc/rc.d/* необходимо запустить, а какие - нет и финалом загрузки является скрипт /etc/rc.local.

Маленький итог:

В данной статье я постарался, как можно прозрачней описать процесс запуска операционных систем UNIX, в том виде, в каком я его понял. Некоторые пособия/статьи разделяют загрузку на большее количество этапов. Я постарался изложить так, чтобы прочитав статью, можно было понять процесс загрузки UNIX не вчитываясь в кучу других материалов. Конечно, никто не запрещает углубиться в изучение процесса загрузки ОС, благо в интернете их достаточно. Жду комментариев и дополнений.

Что еще почитать:

upd 2011.01.21: переработано и дополнено описание 3 этапа загрузки
upd 2011.06.10: дополнено описание 1 и 2 этапа загрузки
upd 2011.06.12: переработка и дополнение всех этапов загрузки, добавление процесса загрузки upstart и ОС BSD.
upd 2011.06.27: Дополнение 1 и 2 этапа загрузки.

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

Изменение порядка загрузки ОС в GRUB

Данная процедура будет Вам полезна, если у Вас на компьютере установлено несколько операционных систем Linux и Windows, например, Linux Ubuntu и Windows 10. О том, как установить себе на компьютер Linux Ubuntu второй системой рядом с Windows 10 с учётом особенностей UEFI, я подробно рассказывал в отдельной статье – Установка Linux Ubuntu рядом с Windows 10 на компьютере с UEFI.

Но в такой конфигурации по умолчанию будет загружаться Linux Ubuntu, однако многим хочется изменить данный порядок, например, чтобы по умолчанию загружалась Windows 10 или любая другая система, иными словами, отсортировать порядок так, как им хочется. Как я уже об этом говорил ранее, это можно сделать, и сейчас я подробно расскажу о том, как это делается, т.е. как изменить порядок загрузки операционных систем в загрузчике GRUB.

Введение

Итак, на текущий момент у Вас при включении компьютера появляется меню загрузчика GRUB, в котором первым пунктом идет операционная система Linux Ubuntu (или другой дистрибутив Linux, в моем случае именно Ubuntu). Выглядит это меню следующим образом.

Скриншот 1

  • Ubuntu – это как раз операционная система Linux Ubuntu;
  • Windows Boot Manager (на /dev/sda2) – это Windows 10.

Если ничего не выбрать, то через несколько секунд, по умолчанию, будет загружаться Ubuntu.

У нас стоит задача изменить порядок загрузки операционных систем таким образом, чтобы первым пунктом стояла Windows 10 и, соответственно, загружалась также первой. Дополнительно, для удобства и ясности, мы хотим присвоить пункту Windows Boot Manager более удачное имя, например – Windows 10.

Все этом можно реализовать с помощью одной программы – Grub Customizer, которую можно использовать в Linux Ubuntu.

Таким образом, сейчас я покажу, как установить Grub Customizer в Linux Ubuntu, и изменить порядок загрузки операционных систем в загрузчике Grub, используя эту программу.

На заметку! Начинающим пользователям Linux рекомендую почитать мою книгу « Linux для обычных пользователей » – в ней я максимально подробно рассказываю про Linux и о том, как пользоваться этой операционной системой без командной строки

Обзор программы Grub Customizer

Grub Customizer – это программа с графическим интерфейсом для редактирования настроек загрузчика GRUB.

Основные возможности Grub Customizer:

  • Добавление и удаление операционных систем в меню GRUB, которое появляется во время загрузки компьютера;
  • Изменение порядка загрузки ОС;
  • Изменение времени ожидания перед загрузкой;
  • Изменение оформления загрузчика GRUB (шрифт, цвет шрифта, фон и так далее).

Установка Grub Customizer в Ubuntu

Установить Grub Customizer в Ubuntu не составит труда, в Ubuntu 19.04 это можно сделать с помощью менеджера приложений (в предыдущих версиях Ubuntu возможно потребуется устанавливать PPA репозиторий).

Шаг 1 – Запускаем менеджер приложений

Сначала запускаем менеджер приложений, и для того чтобы найти нужный пакет в поиск, вводим grub сustomizer.

Скриншот 2

Шаг 2 – Запускаем установку Grub Customizer

Затем щелкаем по найденному пункту. После того как откроется окно с описанием программы, нажимаем «Установить».

Скриншот 3

Далее потребуется ввести пароль, так как процесс установки программ в Ubuntu требует дополнительных привилегий.

Скриншот 4

Шаг 3 – Запускаем программу Grub Customizer

Когда появится кнопка «Запустить», установка будет завершена. Мы можем нажать на данную кнопку, чтобы сразу запустить Grub Customizer. Также программу можно запустить и из меню приложений.

Скриншот 5

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

После запуска программы у Вас отобразится интерфейс Grub Customizer.

Скриншот 6

Изменение порядка загрузки операционных систем

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

Я для примера выберу Windows Boot Manager, и перемещу его в самый верх.

Скриншот 7

Скриншот 8

Переименование пунктов загрузочного меню

Теперь давайте переименуем пункт Windows Boot Manager в Windows 10. Для этого достаточно щёлкнуть двойным кликом по пункту и ввести новое имя.

Скриншот 9

Сохранение настроек, загрузка и проверка порядка ОС

После ввода всех настроек необходимо нажать кнопку «Сохранить», для того чтобы все введенные параметры сохранились.

Скриншот 10

В случае необходимости Вы можете перейти на дополнительные вкладки: «Основные настройки» и «Настройки оформления». Например, для того чтобы изменить шрифт меню загрузчика или цвет шрифта.

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

Скриншот 11

В моем случае все настройки были применены и теперь по умолчанию у меня загружается Windows 10.

Видео-инструкция

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

Я предлагаю вам познакомиться со следующими уровнями типичной загрузки Linux:

1. BIOS

  • BIOS отвечает за базовый ввод/вывод данных с устройств/на устройства.
  • Делает некоторые проверки целостности устройств. К тому же, за тестирование работоспособности электроники отвечает POST (Power-on self-test, он же «тест на адекватность себя самого», выполняющийся как этап пре-загрузки), который управляется BIOS
  • Ищет, загружает и выполняет программу-загрузчик ОС
  • Берет загрузчик из флопика, сидюка или жесткого диска. Во время загрузки BIOS'а вы можете нажать на кнопку (обычно это F12 или F2 или Del, зависит от платформы), если вам требуется внести некоторые изменения касательно настройки железа.
  • Как только загрузчик был обнаружен и загружен в память, BIOS передает управление ему.
  • Короче говоря, BIOS загружает и выполняет загрузочную запись (MBR).

2. MBR

  • MBR — это главная загрузочная запись, хранящаяся на жестком диске
  • Она размещена в 1-м секторе загрузочного диска, например /dev/hda или /dev/sda
  • MBR занимает меньше, чем 512 байтов. Она состоит из трех компонентов: 1) главная загрузочная информация, «живущая» в первых 446 байтах; 2) информация о таблице разделов — в следующих 64 байтах; 3) и последние 2 байта нужны для проверки корректности mbr.
  • Она содержит информацию о GRUB'е (или LILO).
  • Простыми словами — MBR загружает и выполняет загрузчик GRUB.

3. GRUB

  • GRUB — Grand Unified Bootloader.
  • Если в вашей системе установлено более, чем одно ядро, у вас есть возможность выбирать, которое из них должен выполняться
  • GRUB отображает красивую анимацию plymouth заставку, и, подождав несколько секунд интерактивного воздействия пользователя, если он не нажал ни одной клавиши, он загружает ядро, установленное по умолчанию в файле конфигурации grub.
  • GRUB понимает, что такое файловая система (древние загрузчики Linux'а, например, LILO этого не понимают).
  • Конфигурационный файл Grub обычно лежит по пути /boot/grub/grub.conf (так же /etc/grub.conf может быть символьной ссылкой на него). Вот пример файла конфигурации для CentOS:

4. Ядро или Kernel

  • Ядро монтирует файловую систему в соответствии с настройкой «root=» в фале grub.conf
  • Выполняет программу /sbin/init
  • Поскольку init — это первый процесс, запущенный ядром Linux, поэтому она имеет идентификатор процесса (PID) №1. Можете выполнить «ps -ef | grep init» и убедиться в этом.
  • initrd — это Initial RAM Disk, он же временный диск в оперативной памяти
  • initrd используется самим ядром в качестве временной корневой файловой системы, пока kernel не загрузится в реальную примонтированную файловую систему. Этот временный диск также содержит необходимые для загрузки драйверы, позволяющие получить доступ к разделам дисков и другому оборудованию

5. Init

  • Смотрит в файл /etc/inittab для того, чтобы определить уровень выполнения (run level).
  • Есть следующие уровни выполнения:
    • 0 – прервать выполнение
    • 1 – Однопользовательский режим, так называемый «Single user mode», или иными словами, консоль восстановления
    • 2 – Многопользовательский режим без поддержки NFS
    • 3 – Полноценный многопользовательский режим
    • 4 – не используется
    • 5 – X11
    • 6 – перезагрузка

    6. Уровень выполнения программ (Runlevel)

    Вот и все. Возможно, некоторым из вас это не ново и особого интереса не было при чтении статью, поскольку она более ориентирована на начально-средний уровень знакомства з Линуксом.
    В таком случае могу лишь сказать, что «повторение — мать учения» (с).

    Дополнения, исправления, уточнения

      : «Ну скажем прямо — так грузятся далеко не все дистры». С ним согласилось большинство, отмечая и bsd-style init, u-boot, и хоть initrd в статье пропущен, стоить заметить, что он нужен ядру не во всех дистрибутивах. Также отмечено, что в slackware поддержка rc.d осуществляется только в качестве совместимости, а встраиваемые системы грузятся иначе. На декстопах иногда бывает EFI, а кроме того Linux популярен в мире embedded и там ещё куча разных платформ. Линукс в телефоне вообще иначе грузится. , ссылая на википедию: Еще хочется сделать замечание по поводу MBR, первого сектора и пр. Все несколько усложнилось за последние годы. Сейчас уместней говорить о EFI.

    Вы когда-нибудь интересовались различными этапами загрузки операционной системы? Что происходит, когда вы включаете свой компьютер?

    Этапы процесса загрузки Linux условно можно разделить на:

    Загрузка BIOS (POST).

    Первый этап загрузки (MBR или GPT).

    Второй этап загрузки (GRUB2).

    Инициализация главного процесса (init или systemd).

    Уровни выполнения (runlevels).

    Сейчас мы их и рассмотрим.

    Загрузка BIOS (POST)

    Вы можете использовать функциональные клавиши (F1-F12) в режиме BIOS, чтобы задать приоритет загрузки устройств, настроить параметры аппаратного обеспечения компьютера или восстановить заданные по умолчанию значения параметров компьютера. В меню BIOS вы найдете номер версии BIOS, наименование поставщика BIOS, тип вашего процессора и другую подробную информацию о системе.


    Меню загрузки в BIOS (Boot Manager) представляет собой список, в котором вы можете выбрать загружаемую операционную систему. Если на вашем компьютере установлено несколько дистрибутивов Linux или других операционных систем, вы можете добавить их в меню загрузки. Последняя установленная ОС будет показана в верхней части Boot Manager.

    На следующем рисунке вы можете видеть, что на моем компьютере установлены Ubuntu и Windows. Я могу выбрать любую операционную систему (из доступных) для загрузки.



    Первый этап загрузки (MBR или GPT)

    Как только MBR обнаруживает загрузчик второго этапа, то передает управление на него.

    Примечание: Стоит отметить, что сейчас все чаще вместо MBR используется более современная технология — GPT.

    Второй этап загрузки (GRUB2)

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


    Конфигурационными файлами загрузчика GRUB обычно являются файлы /boot/grub/grub.conf или /etc/grub.conf. Как только загрузчик находит ядро, то загружает его в оперативную память и передает ему дальнейшее управление.

    Инициализация ядра

    Большинство новых пользователей Linux считают, что Linux — это операционная система. Но на самом деле Linux — это ядро. Ядро часто называют сердцем операционной системы. Оно играет очень важную роль в процессе загрузки Linux. Ядро Linux находится в каталоге /boot и отвечает за взаимодействие между основными компонентами компьютера и операционной системой.


    Файлы ядра Linux

    Инициализации главного процесса (init или systemd)


    Примечание: В системе инициализации SysV главным процессом является процесс init, а в системе инициализации systemd — (одноименный) процесс systemd.

    Уровни выполнения (runlevels)

    Runlevel 0 — завершает работу системы.

    Runlevel 3 — многопользовательский режим с поддержкой сети, но без графического интерфейса. Чаще всего серверные версии Linux работают именно на этом уровне выполнения.

    Runlevel 4 — не используется. Пользователь может настраивать этот уровень исходя из его целей.

    Runlevel 5 — схож с режимом 3, но здесь запускается графический интерфейс. В этом режиме работают десктопные версии Linux.

    Runlevel 6 — перезагружает систему.

    Примечание: В системах семейства Debian уровни выполнения выстроены немного иначе. Например, Ubuntu в режиме командой строки запускается с уровнем выполнения 5.

    В процессе загрузки Linux состояние уровня выполнения представлено буквенно-цифровым кодом. Если вы посмотрите на скриншот, приведенный ниже, вы увидите, что мой текущий уровень выполнения равен N 5 ; это означает, что мой компьютер уже завершил процесс загрузки, и работает в многопользовательском режиме с графическим интерфейсом.

    Узнать текущий режим уровня выполнения можно с помощью следующей команды:


    Если вам по какой-либо причине потребуется изменить уровень выполнения, то это можно сделать с помощью следующей команды:

    sudo telinit [номер_уровня]

    Заключение

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

    Свободные драйвера, которые по умолчанию есть в Linux Mint, не очень хорошо работают с некоторыми видеокартами и материнскими платами.

    Режим совместимости¶

    Самый лёгкий способ — выбрать compatibility mode в меню загрузки с USB-носителя (или DVD).

    _images/efi-compatibility.jpg

    Меню Grub (режим EFI)

    _images/isolinux-compatibility.jpg

    Меню Isolinux (режим BIOS)

    Если это не работает, попробуйте использовать параметр загрузки nomodeset .

    Параметр загрузки Nomodeset¶

    В режиме EFI выберите Start Linux Mint и нажмите e для изменения параметров загрузки.

    _images/efi-nomodeset.jpg

    Измените quiet splash на nomodeset и нажмите F10 для загрузки.

    В режиме BIOS выберите Start Linux Mint и нажмите Tab для изменения параметров загрузки.

    _images/isolinux-nomodeset.jpg

    Измените quiet splash на nomodeset и нажмите Enter для загрузки.

    Повторите эту операцию в загрузочном меню grub после установки и ознакомьтесь с драйверы для установки дополнительных драйверов.

    Другие параметры загрузки¶

    Если система так и не загрузилась, попробуйте одно из следующих решений:

    • Попробуйте nouveau.noaccel=1 вместо nomodeset .
    • После установки выберите «Дополнительные параметры –> Режим восстановления» в меню загрузки и выберите «восстановить».

    Установить старый выпуск¶

    Если ваш компьютер имеет проблемы с совместимостью с последним выпуском Linux Mint, установите предыдущий выпуск из той же серии Linux Mint.

    Например, если вы не можете установить Linux Mint 18.3 (который поставляется с ядром 4.10), установите Linux Mint 18 (который поставляется с ядром 4.4) и обновите до 18.3.

    Первый выпуск в каждой серии использует ядро LTS (долгосрочная поддержка). Обновление до последней версии не изменяет ядро.

    Читайте также: