Что такое загрузчик в линукс

Загрузчики Linux

img

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

как разбиваются жесткие диски и систему их разбиения

MBR Master Boot Record это первые 512 Байт диска, это не раздел, не партиция это участок места в начале жесткого диска, зарезервированный для загрузчика Операционной системы и таблицы разделов.

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

В настоящее время большинство машин не использует BIOS, а использует UEFI это современная замена BIOS, которая более функциональнее и имеет больше плюсов. Нужно понимать, что UEFI это более защищенная загрузка и более скоростная, потому что позволяет инициализировать параллельно различные интерфейсы и различную последовательность команд. Так вот если у нас не BIOS, а UEFI, то HDD будет разбит не по принципу MBR, а по принципу GPT — GUID Partition table. Это другой формат размещения таблицы разделов. Это UEFI, а UEFI использует GPT там, где BIOS использует MBR. GPT для сохранения преемственности и работы старых операционных систем оставила в самом начали диска блок для MBR. Разница изначально между MBR и GPT, в том, что MBR использует адресацию типа цилиндр, головка, сектор, а GPT использует логические блоки, LBA0, LBA1, LBA2. А также для GPT необходимо понимать, что есть логическое дублирование оглавление таблицы разделов записано, как в начале, так и в конце диска. И в принципе для организации резервного копирования Linux в принципе ничего не предлагает. Но в случае если у нас MBR это необходимо делать.

Для начала надо нам понять, что и куда у нас смонтировано какой раздел у нас является загрузочным и его скопировать. Вводим команду fdisk l и видим следующее:

fdisk l

Устройство /dev/sda1 является загрузочным и, следовательно, на нем находится MBR. Команда, которая осуществляет резервное копирование она простая — это dd. Это утилита, которая позволяет копировать и конвертировать файлы. Главное отличие данной утилиты в том, что она позволяет это делать по секторно, т.е. она учитывает геометрию диска. Использование: dd if=/dev/sda of=/root/backup.mbr bs=512 count=1 . if что мы копируем, of — куда мы это копируем, bs что мы копируем 1 блок размера 512, count — количество блоков.

где на жестком диске находится MBR

Только, что мы скопировали первый блок жесткого диска, это то самое место, где на жестком диске находится MBR.

Читайте также:  Linux python import error

Загрузчики

Первый загрузчик Lilo Linux Loader

Первый загрузчик Lilo Linux Loader

Это был самый популярный загрузчик для Linux и для Unix систем в целом, он не зависел от файловой системы, мог загружать ОС с жесткого диска или с дискеты. Из этого выходила его особенность, загрузчик Lilo хранил в своем теле положение ядер и пункты меню и требовал обновления себя с помощью специальной утилиты, можно было поместить до 16 пунктов меню при загрузке. Данного загрузчика уже нету во многих дистрибутивах ОС Linux.

В настоящее время повсеместно используется загрузчик GRUB2, но мы можем поставить загрузчик Lilo, чтобы с ним разобраться.

Установка довольно-таки банальная apt-get install lilo .

apt-get install lilo

В процессе установки выскакивает предупреждение, что это первая установка lilo, после установки необходимо будет исполнить команду, а затем запустить непосредственно загрузчик, который применит непосредственно все изменения. Нажимаем ОК. Далее запускаем liloconfig. Ничего не произошло, просто утилита создала файл и этот файл является файлом конфигурации. С помощью команды cat /etc/lilo.conf мы можем посмотреть файл конфигурации загрузчика.

В заголовке файла написано сразу, что после внесения изменений необходимо выполнить команду lilo, чтобы он сразу применил их. Далее идут основные параметры конфигурационного файла. Первый параметр lba32. Вот он как раз и меняет ту самую традиционную конфигурацию цилинд-головка-сектор, на logical block адреса, что позволяет работать с большими дисками.

logical block адреса

В разделе boot мы должны указать на каком диске у нас находится MBR. Если внимательно посмотреть, то можно увидеть подсказку, где посмотреть /dev/disks/by-id/ata* uuid дисков. После, чего можно скопировать имя диска и вставить его и тогда его сможет загружать. Lilo узнает, где MBR и будет оттуда загружать систему.

  • Verbose = 1 Verbose level — это параметр, который показывает сколько выводить информации при загрузке.
  • Install = menu — Данный параметр отвечает, как будет выглядеть меню загрузки. Lilo предлагает 3 варианта. И для каждого варианта, есть внизу дополнительные закомментированные параметры.
  • Prompt это параметр отвечает за ожидание пользователя, его реакции. По умолчанию 10сек. Значение параметра в децасекундах.

Далее мы можем посмотреть, где находятся ядра нашей операционной системы. Когда мы запустили liloconfig загрузчик нашел наши ядра операционной системы. Как видно на скриншоте определил версию ядра, определил где будет корневая файловая система. Смонтировал в режиме read-only. В данных параметрах мы может отредактировать строчку lable, чтобы переименовать отображение при загрузке. Если есть желание можно отредактировать данный файл и добавить еще ядро, если установлена вторая OS.

где находятся ядра нашей операционной системы

Загрузчик GRUB

Старый загрузчик GRUB эта та версия загрузчика, который использовался с Lilo. Тогда Lilo был самый распространенный. Теперь данный загрузчик называется Grub legacy. Больше никак не развивается, для него выходят только патчи и обновления и его даже невозможно установить на новые операционные системы. Т.к. команды и инструментарий используется одинаковый, как для старого GRUB, так и для нового.

Читайте также:  Линукс посмотреть свободные порты

Далее мы будем рассматривать современный вариант загрузчика GRUB 2.

современный вариант загрузчика GRUB 2

Вот так он при загрузке примерно выглядит. Загрузчик GRUB 2 был полностью переделал и имеет мало чего общего с предыдущим загрузчиком. Он может загружать любую ОС и передавать загрузку, так же другому загрузчику, альтернативной ОС. Например, MS Windows это NTDLR. Является самым популярным загрузчиком на сегодня и стоит по умолчанию в подавляющем количестве операционных систем типа Linux. Если, что-то случилось, например кто-то переставил на загрузчик lilo, мы можем вернуть загрузчик Grub обратно командой grub-install /dev/sda . Можно узнать версию загрузчика следующим способом grub-install version .

Основной файл конфигурации можно посмотреть cat /boot/grub/grub.cfg .

Файл настройки и конфигурации, достаточно сильно отличается от файла конфигурации lilo или первой версии GRUB. Данный файл не редактируется, т.к он создается скриптами с использованием нескольких настроечных файлов, которые мы можем найти в папке /etc/grub.d с использованием настроек файла /etc/default/grub .

Примерно так выглядит файл настроек для загрузки.

файл настроек для загрузки

И здесь в более или менее в понятном нам виде находятся настройки. И данные настройки определяют поведение. Например, grub_default = 0 устанавливает ядро для запуска по умолчанию, параметр grub_hidden_timeout = 0 обозначает использоваться пустой экран. grub_hidden_timeout_quiet = true — это утверждает, что будет использоваться пустой экран.Т.е загрузка будет происходить в скрытом режим и мы не увидим. Далее обычный таймаут ожидание действий пользователя. Grub_cmdlin_linux_default = quiet тихий режим, splash — это заставка.

Отредактировать данный файл возможно в редакторе.

Второй путь к папке /etc/grub.d в ней лежат исполняемые файлы. Данные файлы сканируют, также ядра при необходимости добавят нужные параметры в загрузчик. Мы всегда можем добавить опцию и написать скрипт. Для применения настроек в загрузчике, надо выполнить update-grub.

Источник

Лучшие загрузчики Linux

После того как вы включаете компьютер, как только будет успешно завершено тестирование всего оборудования POST (Power On Self Test) BIOS попытается обнаружить диск с загрузчиком и прочитать дальнейшие инструкции из таблицы разделов MBR или GPT.

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

Что такое загрузчик?

Загрузчик — это небольшая программа, которая помогает загрузить операционную систему в память. Без загрузчика это сделать намного сложнее.

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

Лучшие загрузчики для Linux

1. Grub

Загрузчик Grub самый популярный на данный момент. Он разработан на основе загрузчика созданного Эриком Стефаном Броленом. Grub может загружать практически все операционные системы, в том числе Linux, Windows и даже MacOS. Загрузчик поддерживает установку пароля, редактирование загрузочных записей во время работы, а синтаксис конфигурационного файла очень похож на Grub. Кроме того Grub поддерживает UEFI системы. Операционные системы в меню можно организовать в подпапки, можно загружаться с iso диска или даже по сети.

Читайте также:  Посмотреть исходный код linux

2. Burg

Загрузчик Burg основан на коде Grub и расшифровывается как Brand-new Unified loadeR from Grub. Ранее он считался самым новым и самым красивым загрузчиком. Он поддерживал различные темы и стили оформления, которые делали меню загрузки очень красивым. Но потом в Grub тоже была добавлена поддержка тем, а разработка Grub свернулась. На данный момент этот загрузчик устарел, он даже не поддерживает установку на раздел с Ext4. А ещё не известно поддерживает ли он UEFI, так как он давно не обновлялся, с этим тоже могут возникнуть проблемы.

2. LILO

Lilo или Linux Loader — это простой, но уже устаревший загрузчик для Linux и других операционных систем. Разработка загрузчика была прекращена в 2015 году. Он не поддерживает такие современные файловые системы, как Btrfs, не поддерживает таблицу разделов GPT, а следовательно и UEFI. Кроме того, в нём нет текстовой консоли для восстановления системы и не поддерживается загрузка по сети. Одно из преимуществ этого загрузчика — это простой файл конфигурации, поэтому он иногда ещё используется для загрузочных ISO образов, хотя там тоже намного популярнее syslinux.

4. Syslinux

Syslinux — это облегченный загрузчик, который используется чаще всего для загрузки с внешних носителей, LiveCD или по сети. Он поддерживает файловые системы FAT, Ext2/3/4 и Btrfs. Его не следует использовать как основной загрузчик для вашей системы, только для ISO образов, поскольку он может загружать только одну операционную систему, которая находится на том же разделе, где расположен загрузчик.

5. Systemd-boot

Это простой загрузчик от systemd, который умеет работать только с образами UEFI. Может использоваться для загрузки системы без Grub. Здесь нет никаких особенных функций, это просто меню, позволяющее выбрать необходимый EFI образ для загрузки. Например, образ ядра Linux или EFI Shell.

6. rEFInd

Это не совсем загрузчик в привычном понимании, а скорее менеджер загрузки, который указывает системе UEFI какую операционную систему стоит запустить, а также может попросить UEFI запустить ядро Linux из папки /boot. Таким образом этот загрузчик не делает никаких действий по загрузке, а просто обращается к UEFI. Зато у него красивый и современный интерфейс. Теперь это самый красивый загрузчик Linux, вместо Burg.

Выводы

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

Если я пропустил здесь какой-нибудь загрузчик Linux, напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector