Модифицируем процесс загрузки с помощью утилиты make-initrd

Дистрибутивы Linux с Legacy GRUB

Amazon Linux 1 аналогично RHEL6.X, RHEL5.X и CentOS использует в качестве загрузчика GRUB (также известный как Legacy RUB). Узнать версию в подобных дистрибутивах вы можете так:

# grub-install -v grub-install (GNU GRUB 0.97)

Файл конфигурации GRUB располагается в /boot/grub/grub.conf и содержит две символические ссылки на себя: /etc/grub.conf и /boot/grub/menu.lst. Нам нужно изменить эту конфигурацию grub, добавив дополнительные параметры загрузки ядра. Однако, чтобы сделать это эффективно, давайте сначала разберём основы конфигурации grub. Ниже приведён её пример из инстанса EC2 Amazon Linux 1.

Операционная система (ОС)

И так друзья что же такое операционная система в компьютере?

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

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

После нажатия кнопки старт на ПК сразу начинается процесс загрузки ОС и во время него происходит следующие:

  • Проверка BIOS и оборудования
  • Проверяются и загружаются драйверы устройств
  • На последнем этапе запускается сама ОС

ОС выполняет следующие основные функции

  1.  Прием и выполнение команд пользователей
  2.  Запуск, остановка и работа программ
  3.  Управление оперативной памятью
  4.  Доступ к подключаемым к компьютеру устройствам (мышь, клавиатура, принтер…)
  5.  Сбор и сохранение данных об ошибках в работе системы

Системная оптимизация

Настройка Swappiness

Изменим поведение Ubuntu в отношении использования ОЗУ и подкачки. Есть такой параметр vm.swappiness, который по умолчанию имеет значение 60, и контролирует, каким образом система будет работать с файлом подкачки (swap). Этот параметр может иметь следующие значения:

Значение параметра Описание
vm.swappiness = 0 Ядро будет использовать файл подкачки только в том случае, если значение свободной оперативной памяти будет меньше указанного в параметре vm.min_free_kbytes.
vm.swappiness = 1 Для ядер версии 3.5 и выше, минимальное использование файла подкачки без его полного отключения.
vm.swappiness = 10 Это значение часто рекомендуют для увеличения производительности при наличии достаточного объема оперативной памяти на компьютере
vm.swappiness = 60 Значение по умолчанию
vm.swappiness = 100 Система будет использовать файл подкачки очень интенсивно (НЕ РЕКОМЕНДУЕТСЯ, т.к. вызовет сильное замедление работы системы)

При большом количестве ОЗУ в компьютере, лучше изменить параметр vm.swappiness до 10 либо до 1. В консоли введите следующую команду:

gksu gedit etcsysctl.conf

Добавьте строку в конец файла:

vm.swappiness=10

либо

vm.swappiness=1

При этом «агрессивность» swap опредиляется несколькими праметрами

swap_tendency = mapped_ratio2 + distress + swappiness

Где

swapiness — определенный парамет (или системой или переопределен пользователем vm.swappiness)

distress — сколько раз ядро пыталось освободить память (каждый раз повышается на 1, изначальное число 0)

mapped_ratio — процент занятой оперативной памяти

swap_tendency — если число 100 и более, то система будет свопить (второе ограничение — остаток свободной памяти менее 64МиБ)

Пример

Система еще не свопила перед этим, swappiness установлен по дефолту 60. То есть система первый раз засвопит при достижении значения свободной памяти в 80%

100 = x2 +  + 60

Соответственно, с этим параметром стоит быть предельно осторожным, так как и увеличение и уменьшение параметра может привести к значительному замедлению системы.

vm.swappiness = 100 замедление может быть заметно сразу

vm.swappiness ~ 0 проявятся «жуткие» тормоза в процессе использования системы, особенно под нагрузкой

IPv6

В Linux большинство программ используют протокол IPv4 для подключения к интернету. В Ubuntu IPv6 включен по умолчанию, отключим его, если он вызывает проблемы в сети:

gksu gedit etcdefaultgrub

Найдите параметр GRUB_CMDLINE_LINUX_DEFAULT и аккуратно дополните значением ipv6.disable=1 Сохраните изменения. Вызовите

sudo update-grub

для применений изменений, перезагрузите компьютер.

В старых версиях Ubuntu протокол IPv6 отключается по-другому

Ускорение запуска программ, с помощью preload

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

sudo apt-get install preload

или запустить Центр приложений Ubuntu, найти в нем preload и установить его.
После установки preload перезагрузите компьютер и выполните в консоли команды

sudo touch varlibpreloadpreload.state
sudo chmod 600 varlibpreloadpreload.state
sudo etcinit.dpreload restart

Проверить работу Preload можно посмотрев содержимое preload.state

sudo cat /var/lib/preload/preload.state

Если файл не пуст, значит демон работает.

Настройки preload по умолчанию подходят большинству, поэтому изменять что-либо в файле /etc/preload.conf не обязательно.

Кеширование символьных таблиц

Создайте пустой каталог

mkdir ~/.compose-cache

Ваши Qt/GTK программы будут чуток быстрее стартовать и потреблять меньше памяти, благодаря тому, что libX11 будет создавать в ~/.compose-cache кеши распарсенной информации и использовать ее повторно.

Ускорение загрузки Linux отключением сервисов

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

Первым отключим rsyslog. В systemd используется свой механизм записи логов journald, поэтому вести еще один не нужно. Для отключения выполните:

Опция mask позволяет спрятать юнит, система будет думать что его не существует и не сможет загрузить. Восстановить такой юнит можно командой systemctl unmask.

В systemd реализована своя служба настройки сети — networkd, поэтому необязательно использовать NetworkManager. Работа со встроенной службой будет намного быстрее. Здесь нужно заметить, что если вы используете wifi и не хотите настраивать его вручную, через консоль, то отключать NetworkManager не стоит.

Отключаем NetworkManager и включаем networkd:

Службу networking тоже можно отключить, если не используете:

Включаем resolved, который отвечает за настройку DNS серверов:

Даем символическую ссылку на файл /etc/resolv.conf

Осталось настроить динамическое получение ip адреса при загрузке:

enp0* значит, что сеть нужно подымать только для устройств, имена которых начинаются на enp0. Готово, сеть настроена.

В systemd есть свое решение для выполнения задач по расписанию, поэтому cron можно не использовать:

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

Отключаем apport (служба отчетов об ошибках):

Я не использую ppp и мобильные соединения, поэтому и эти сервисы можно отключить.

Если вы не используете Avahi, его тоже можно отключить:

Систему AppArmor тоже можно отключить:

Также если у вас загружаются такие программы, как postfix (почтовый сервер), apache (веб-сервер), mysql (сервер баз данных) лучше их тоже убрать из автозагрузки и запускать потом вручную.

Перезагружаемся и проверяем скорость загрузки:

У меня скорость загрузки linux выросла на пять секунд. Но это нормально, учитывая, что используется VirtualBox, на реальной машине можно получить и больше. А самая лучшая оптимизация — купить SSD, там можно достичь даже скорости загрузки до двух-трех секунд.

Загрузка Linux на персональном компьютере

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

Загрузка системы на персональном компьютере — это многоступенчатый процесс. Когда включается компьютер, начинает выполняться код, записанный в ПЗУ. Точное его местонахождение и структура зависят от типа оборудования. В компьютерах, соз­данных специально для UNIX или другой коммерческой операционной системы, код “прошивается” разработчиком, который заранее задает алгоритм подключения уст­ройств, базовой инициализации сети и распознавания локальных файловых систем. Это очень удобно для системного администратора. Ему достаточно ввести лишь имя нового файла ядра, а код ПЗУ автоматически обнаружит и прочитает этот файл.

На персональных компьютерах код начальной загрузки представлен в виде базовой подсистемы ввода-вывода — BIOS (Basic Input/Output System), которая чрезвычайно уп­рощена в сравнении с фирменным кодом UNIX-станций. В действительности в BIOS есть несколько уровней кода: для самого компьютера, для видеоплаты, для SCSI-адаптера, если таковой имеется, и, иногда, для других периферийных устройств вроде сетевых плат.

Встроенному коду BIOS известно об устройствах, расположенных на материнской плате, в частности контроллере IDE (и жестких дисках), плате сетевого адаптера, кон­троллере клавиатуры, последовательных и параллельных портах. SCSI-адаптеры знают только об устройствах, подключенных непосредственно к ним. К счастью, за последние несколько лет сложные взаимодействия, необходимые для обеспечения совместной ра­боты этих устройств, были стандартизованы и теперь почти не требуют вмешательства оператора.

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

В режиме конфигурирования можно выбрать, с какого устройства требуется загру­жаться, хотя выбор не так уж велик. Обычно последовательность загрузки задается в виде правила, например: “сначала — дисковод для гибких дисков, затем — дисковод CD-ROM, в последнюю очередь — жесткий диск”. К сожалению, в некоторых BIOS за­грузка ограничена возможностью загрузки с первого IDE-дисковода CD-ROM или пер­вого жесткого диска IDE. Могут также распознаваться SCSI-адаптеры.

Когда компьютер определил, с какого устройства следует загружаться, считываются первые 512 байтов с диска. Этот сегмент диска называется главной загрузочной записью (ГЗЗ). В ней хранится программа, которая сообщает компьютеру о том, в каком разделе диска расположена программа вторичной загрузки (загрузчик операционной системы). 

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

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

Как пользоваться Grub Customizer

Запустить программу можно через терминал или из главного меню системы введя слово grub:

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

1. Настройка пунктов меню

На первой вкладке программа позволяет настроить пункты меню. Можно переименовать, переместить вверх или вниз, удалить или изменить код каждого из пунктов. Для этого воспользуйтесь контекстным меню. Для его вызова необходимо нажать правкой кнопкой мыши по необходимому разделу:

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

2. Создание нового пункта

С помощью кнопки со значком плюса можно создать новый пункт. Существует несколько типов пунктов. Например, Linux ISO позволяет создать загрузочную запись для iso-образа Linux. Для этого достаточно выбрать нужный образ:

С помощью варианта Chainloader можно запустить загрузчик с другого раздела, например загрузчик Windows. Для этого достаточно выбрать раздел:

Или вы можете ввести текст конфигурации сами, выбрав вариант Прочее:

3. Таймаут и пункт по умолчанию

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

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

4. Параметры ядра Grub

Чуть ниже на этой же вкладке вы можете указать параметры ядра, которые будут передаваться для всех пунктов меню по умолчанию, например, у меня прописано verbose, чтобы видеть как можно больше информации о системе во время загрузки. Также, нажав кнопку Дополнительные параметры, можно более тонко настроить, как будут передаваться параметры ядру и как будет создаваться конфигурационный файл:

5. Внешний вид Grub

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

После этого откроется редактор файлов темы, где вы можете удалить или добавить новые файлы.

6. Сохранение настроек

Чтобы сохранить любые изменения, нажмите кнопку Сохранить. Только после этого внесенные изменения запишутся в конфигурационный файл Grub.

1. Инициализация системы: UEFI или BIOS

Инициализация системы под UEFI

  1. Система включена, выполняется самотестирование при включении (POST).
  2. После POST UEFI инициализирует оборудование, необходимое для загрузки (диск, контроллеры клавиатуры и т. д.).
  3. Прошивка считывает загрузочные записи в NVRAM, чтобы определить, какое приложение EFI запускать и откуда (например, с какого диска и раздела).

Загрузочной записью может быть просто диск. В этом случае микропрограмма ищет системный раздел EFI на этом диске и пытается найти приложение EFI в резервном загрузочном пути \EFI\BOOT\BOOTX64.EFI (BOOTIA32.EFI в системах с IA32 (32-разрядным) UEFI). Так работают загрузочные съёмные носители UEFI.

  1. Прошивка запускает приложение EFI.
  • Это может быть загрузчик или само ядро Arch, использующее EFISTUB.
  • Это может быть какое-то другое приложение EFI, такое как оболочка UEFI, или менеджер загрузки, например systemd-boot или rEFInd.

Если включена безопасная загрузка, процесс загрузки будет проверять подлинность двоичного файла EFI по подписи.

Инициализация системы под BIOS

  1. Система включена, выполняется самотестирование при включении (POST).
  2. После POST BIOS инициализирует оборудование, необходимое для загрузки (диск, контроллеры клавиатуры и т. д.).
  3. BIOS запускает первые 440 байтов (область кода начальной загрузки основной загрузочной записи) первого диска в порядке дисков BIOS.
  4. Затем первый этап загрузчика в загрузочном коде MBR запускает свой второй этап (если есть) из одного из следующих источников:
  • следующие секторы диска после MBR, то есть так называемый промежуток после MBR (только в таблице разделов MBR).
  • загрузочная запись тома раздела или диска без разделов (VBR).
  • загрузочный раздел BIOS (только GRUB в BIOS/GPT).
  1. Запускается фактический загрузчик.
  2. Затем загрузчик загружает операционную систему путём последовательной или прямой загрузки ядра операционной системы.

Проверка целостности BIOS (POST)

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

Когда система Linux включается, включается BIOS (базовая система ввода-вывода) и выполняет самотестирование при включении (POST). Это проверка целостности, которая выполняет множество диагностических проверок.

POST проверяет работоспособность оборудования таких компонентов, как жёсткий или твердотельный накопитель, клавиатура, оперативная память, порты USB и любое другое оборудование. Если какое-либо аппаратное устройство не обнаружено или если есть неисправность в каком-либо из устройств, например, повреждённый жёсткий диск или твердотельный накопитель, на экране появляется сообщение об ошибке, предлагающее вам вмешаться.

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

Как узнать операционную систему компьютера с помощью команды Winver

Как ввести команду winver? Быстрый способ (о другом способе речь пойдет ):

1) нажать одновременно на две клавиши: с логотипом Windows + R,

Рис. 1. Красным выделены две клавиши: нижняя — с логотипом Windows и верхняя — с буквой R

2) появится окно «Выполнить», в котором без ошибок и без кавычек следует ввести команду «winver»:

Рис. 2. Окно «Выполнить» в Windows 10 (окно так же выглядит в Win 7, 8.1, XP), где в строке «Открыть» вводим «winver»

3) затем выбрать ОК (рис. 2).

У Вас на клавиатуре нет клавиши с логотипом Windows? Можно обойтись и без нее, рассмотрим это отдельно для четырех разных версий.

1.1.Windows 10 и команда winver

Если приведенный выше вариант на рисунках 1 и 2 не подходит, например, по причине отсутствия клавиши с логотипом Windows, воспользуемся системой поиска, которая есть во всех системах Windows.

Рис. 3. Поиск в Windows 10 команды winver

  • 1 на рис. 3 – жмем значок лупы, который открывает Поиск на компьютере,
  • 2 – печатаем в появившееся строке поиска: winver,
  • 3 на рис. 3 – клик по «winver Выполнить команду».

В итоге появится окно с описанием операционной системы на вашем устройстве:

Рис. 4. Результат выполнения команды Winver: сведения об операционной системе

Информации, предоставленной на рис. 4, бывает недостаточно. Как узнать больше о системе 10-ке, смотрите

1.2. winver для Windows 8 (8.1)

Чтобы воспользоваться этой командой, можно воспользоваться кнопкой с логотипом Windows + R, подробнее .

Другой вариант, который без команд – это использовать поиск Windows 8 (8.1):

Рис. 5. Поиск в Windows 8 команды winver

  • 1 на рис. 5 – открываем Поиск,
  • 2 – вводим winver,
  • 3 на рис. 5 – клик по winver.exe.

В итоге получим примерно следующее:

Рис. 6. Итог выполнения winver – сведения о Windows 8

В свое время я обновила Win 8 до 8.1 и все было хорошо, пока в один не самый удачный день после обновления планшет с 8.1 вдруг перестал работать. Диагноз сервисного центра Самсунга был неутешителен: только родной Win 8, который был изначально установлен производителем планшетного компьютера, и никаких обновлений до 8.1. Поэтому на рис. 6 надпись именно с 8-кой, а не 8.1.

Как узнать больше о своей 8-ке, читайте

1.3. Windows 7 и команда winver

Если есть кнопка «Пуск» такая, как обозначена цифрой 1 на рис. 7, то у Вас, вероятно, Windows 7 или Windows Vista. Чтобы убедиться в этом, кликаем по кнопке «Пуск».

В появившемся окне в нижней строке с надписью «Найти программы и файлы» вводим «winver» без кавычек (цифра 2 на рис. 7) и нажимаем клавишу Enter.

Рис. 7. Команда Winver для Windows 7

Вверху появляется программа Winver (цифра 3 на рис. 7).

Кликаем по ней, после чего выскакивает окно «О программе Windows» (рис. 8). Изучаем информацию в этом окне и после этого уверенно называем операционную систему своего компьютера. На рис. 8 представлена операционная система Windows 7 Профессиональная.

Рис. 8. Результат выполнения команды для Windows 7

Есть шесть различных версий Windows 7, которые отличаются набором возможностей (от минимального до максимального), которые предоставляются пользователю.

Если хотите узнать больше про 7-ку, смотрите

1.4. Windows XP и команда winver

Если кнопка Пуск имеет такой вид, как на рис. 9, то у Вас, вероятно, операционная система Windows XP.

Рис. 9. Где находится команда Выполнить для Windows XP

  • Щелкаем по кнопке Пуск.
  • В появившемся после этого меню щелкаем по команде Выполнить (рис. 9).

Появляется окно «Запуск программы» (рис. 10).

Рис. 10. Ввод команды Winver для Windows XP

Вводим команду winver, как показано на рис. 10, и щелкаем по кнопке “OK”.

Появляется окно «О программе Windows» (рис. 11), где можно узнать информацию об операционной системе на своем компьютере, в том числе, о ее версии:

Рис. 11. Результат выполнения команды Winver для Windows XP

Также о системе Windows XP можно образом.

Есть более простой способ, чтобы узнать больше о своей операционной системе, причем без ввода каких-либо команд.

Что делать если Linux не грузится?

1. Проблема с местом на диске

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

Если доступно 0% места, то вы знаете в чем проблема. Чтобы ее решить просто удалите ненужные файлы из папок /var/log, /var/cache/ и так далее. Для того чтобы вы смогли редактировать и удалять файлы, корневую систему, возможно, придется перемонтировать для чтения и записи:

2. Целостность пакетов и системы

У меня с местом все в порядке, доступно более 5 гигабайт, значит можно предположить, что проблема в пакетах. Чтобы исправить выполните dpkg:

Также можно выполнить:

Но это сработает только в chroot окружении LiveUSB системы, поскольку в режиме восстановления интернета нет. Вы можете попытаться настроить проводной интернет с помощью команды:

3. Проблема с /etc/fstab

Следующая причина проблем с загрузкой может быть неверная запись в /etc/fstab для одного из разделов, если лог сообщает что-то в роде «Dependency failed for /dev/disk/by-uuid/f4d5ddc4-584c-11e7-8a55-970a85f49bc5» то это означает, что система не может примонтировать один из разделов в /etc/fstab.

Если это будет корневой раздел, система не загрузится

Systemd может выдавать много ошибок, но важно найти первую. Все остальные могут оказаться только ее следствием

Поэтому если есть такая ошибка в логе проверьте файл /etc/fstab. Правильно ли там указан адрес корневого раздела? Если не уверены, лучше заменить на привычную запись Linux без UUID.

4. Повреждение файловой системы

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

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

5. Проблема видеодрайвера

Если вы обновляли систему или устанавливали проприетарный драйвер, а потом в логах загрузки увидели ошибку запуска драйвера, то проблема в нем. Такое происходит потому что проприетарные драйвера не всегда совместимы с самыми новыми версиями ядер. Для решения проблемы достаточно удалить драйвер из системы в режиме восстановления. Например, для Nvidia:

Для видеокарт AMD команда будет выглядеть так:

С новым драйвером AMDGPU проблем быть не должно, так как он имеет открытый исходный код и встроен в ядро.

Во всяком случае, после удаления драйвера черный экран Linux должен перестать появляться.

6. Другое

Если у вас все же проблемы с загрузчиком Grub, вы можете использовать инструмент BootRepair для восстановления или просмотрите статью как восстановить Grub2 вручную. Также, возможно, вас заинтересует статья: ускорение загрузки Linux.

Запуск в qemu

Проверку образа будем производить с помощью qemu. Установим необходимые пакеты:

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

Мы хотим пробросить устройство, имеющее класс (флешку). В нашем случае оно находится на первой шине и втором порту.

Перейдем к запуску:

После запуска системы сначала отобразится вывод ядра, а затем вывод самого initrd. Если вы все сделали правильно, в какой-то момент увидите вывод обработчика событий hello-usb:

На этом, увы, ваша система зависнет:) Это связано с тем, что initramfs будет продолжать искать устройство с корнем, но оно не проброшено в qemu. К счастью, есть возможность экстренно перейти в rescue консоль: для этого надо нажать клавиши ** + **.

В ней можно изучить окружение initramfs образа:

* Убедитесь, что файловая структура, описанная ранее, соответствует действительности;

* Изучите список активных процессов;

* Посмотрите логи в ;

* Посмотрите содержимое других файлов.

Вы всегда можете запустить rescue консоль, если имеются какие-либо проблемы при запуске. В ней возможно:

  • Изучить логи сервисов;

  • Примонтировать корень вручную и запуститься с него;

  • Запустить отладчик (если добавлена фича debug-tools).

Как работает загрузчик на ПК

В тот момент, когда мы нажимаем кнопку питания ПК, первое, что появляется на экране, — это данные, относящиеся к аппаратному обеспечению оборудования, например, процессору, памяти или подключенным устройствам хранения. Программное обеспечение, отвечающее за обработку этой информации, — это вышеупомянутая прошивка (BIOS / UEFI на ПК), находящаяся в ПЗУ устройства. материнская плата.

Этот начальный процесс называется POST, что означает Самотестирование при включении и хотя у нас есть отдельная статья об этом, короче говоря, она состоит из серии процессов и системных проверок, которые запускаются на ПК при каждом его включении или перезапуске. И, как вы уже догадались, загрузчик — это то, что загружается сразу после POST; Система проверяет последовательность загрузки, настроенную в BIOS, и начинает поиск первого из выбранных устройств, у которых есть загрузчик для загрузки данных в память.

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

Где именно хранится?

Загрузчик обычно находится в MBR (Master Boot Record) жесткого диска или SSD, где также хранится таблица разделов носителя данных, однако это не всегда так, и, как правило, мы можем найти эти два варианта:

  • В первом блоке загрузочного носителя (также известном как «нулевая дорожка диска»).
  • На определенном разделе загрузочного носителя.

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

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

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

Его обязанности?

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

На следующем этапе загрузчик загружает ядро ​​операционной системы, основной компонент системного программного обеспечения, который контролирует все обращения к памяти и процессору и содержит все необходимые драйверы. Кроме того, он обрабатывает все рутинные заказы и задачи, такие как интеграция памяти данных. Некоторые загрузчики выполняют дополнительные задачи, выходящие за рамки простых загрузчиков, например:

  • Распознавание и загрузка других загрузчиков (многоступенчатая).
  • Выполнение прикладных программ.
  • Исправьте или добавьте функции, которые неправильны в прошивке.
  • Альтернативная загрузка прошивки.

Какие есть загрузчики?

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

Имя Описание
Имя Bootmgr Описание Это загрузчик Microsoft от Vista / Server 2008.
Имя NT-загрузчика (NTLDR) Описание Это загрузчик, который Microsoft использовала до появления Vista (то есть до Windows XP / Server 2003).
Имя Barebox Описание Это менеджер загрузки, встроенный в сканеры, принтеры, камеры и т. Д.
Имя Boot.efi Описание Это загрузчик, используемый устройствами Mac с 2006 года.
Имя BootX Описание Старый загрузчик, используемый Mac до 2006 года.
Имя GRUB (Grand Unified Bootloader) Описание Это загрузчик с открытым исходным кодом, известный как тот, который обычно используется в системах Linux.
Имя загрузчика ядра ARM Описание Загрузчик, используемый в микроконтроллерах (как в смартфонах)
Имя OpenBIOS Описание Это бесплатный и портативный загрузчик под лицензией GNU-GPL.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: