Загрузчики Linux
Linux работает с несколькими загрузчиками. Обычно администраторы Linux оставляют тот загрузчик, который по умолчанию включен в устанавливаемый дистрибутив. Иногда им требуется по каким-либо причинам использовать другой, или инсталлятор дистрибутива позволяет выбирать из нескольких загрузчиков. Поэтому данная заметка поможет вам узнать немного больше о различных загрузчиках Linux.
Загрузчик — это программа, которая запускается непосредственно после окончания стартовых тестов BIOS. Она загружает операционную систему или другой загрузчик (это называется загрузкой по цепочке). Операционная система нуждается в программе определенного типа, чтобы инициировать загрузку своего ядра. Загрузка по цепочке используется обычно в том случае, когда на компьютере установлено несколько операционных систем (мультизагрузка), а первичный загрузчик не может инициировать одну или несколько операционных систем. Например, некоторые из загрузчиков Linux не могут загружать Windows. Вместо этого такие загрузчики запускают другой загрузчик, который может работать с Windows.
LILO (LInux LOader) был стандартным загрузчиком для многих дистрибутивов Linux до тех пор, пока не стал более популярным GRUB. LILO разрабатывался и поддерживался Вернером Альмесбергером (Werner Almesberger) с 1992 по 1998 год, Джоном Коффманом (John Coffman) с 1999 по 2007 год, и Иоахимом Вьедорном (Joachim Wiedorn) с 2010 года. Проект до сих пор активен. Преимуществом LILO над многими другими загрузчиками является отсутствие требований к типу файловой системы. Это значит, что операционная система может использовать любую файловую систему (NTFS, EXT4, BTRFS, FAT32, HFS+, UFS, JFS и т.д.), и она все равно будет загружена. LILO также может загружать ядро Linux с гибких дисков и внешних жестких дисков, и способен работать с шестнадцатью установленными на компьютер операционными системами. Их количество можно увеличить, используя загрузку по цепочке. LILO может быть установлен в загрузочный сектор раздела или в Master Boot Record (MBR).
ELILO
Форк LILO, созданный для работы на компьютерах с EFI. Этот загрузчик по имени ELILO (Efi-based LInux Loader) был разработан в Hewlett Packard. Он предназначался для систем Intel Macintosh. ELILO также поддерживает сетевую загрузку по протоколам TFTP/DHCP.
GNU GRUB
Наиболее широко используемый и популярный загрузчик в мире Unix — это GNU GRUB (GNU GRand Unified Bootloader), который создан и поддерживается сообществом GNU. Он написан на ассемблере и C.
SYSLINUX
SYSLINUX — это легковесный загрузчик, созданный Питером Энвином (H. Peter Anvin). Он породил множество форков. SYSLINUX используется с файловыми системами FAT и NTFS, может работать с жесткими дисками, дискетами и USB-устройствами. Для файловой системы ISO 9660 дисков CD-ROM используется ISOLINUX. Для сетевых серверов, использующих Preboot Execution Environment (PXE), предназначен PXELINUX. Операционные системы на файловых системах EXT и BTRFS требуют EXTLINUX (он встроен в SYSLINUX 4). Для старых систем типа DOS используется MEMDISK.
PXELINUX
PXELINUX — это форк SYSLINUX. Для его использования компьютер должен иметь ROM сетевой карты, совместимый с PXE. Для активации сети TCP/IP используется BOOTP или DHCP. Затем PXELINUX скачивает загрузочный образ с помощью TFTP. Далее загружается и настраивается ядро. PXELINUX используется на бездисковых рабочих станциях или для установки Linux с сервера.
Системы Linux для SPARC загружаются с помощью SPARC Improved bootLOader (SILO), который также используется в Solaris. SILO во многом похож на LILO. Если пользователь знает и понимает, как работает LILO, то он без труда справится и с SILO. Однако есть несколько отличий. Например, SILO, в отличие от LILO, просматривает свой конфигурационный файл во время загрузки. SILO может получить доступ к файловым системам ext2/3, UFS, romfs и ISO 9660. SILO поддерживает распаковку сжатых образов vmlinux.
Системы Linux для HPPA используют PALO (PA-RISC bootLOader).
Yaboot
Системы Linux для PowerPC могут использовать Yaboot (Yet Another BOOT loader).
Das U-Boot
Некоторые встроенные системы используют Das U-Boot (Universal Bootloader) — загрузчик с окрытым исходным кодом, написанный на C. Das U-Boot работает с процессорами различной архитектуры, включая PPC, ARM, MIPS, AVR32, x86, 68k, Nios и MicroBlaze.
Barebox
Этот загрузчик с открытым исходным кодом может работать с процессорами ARM, Blackfin, MIPS, Nios и x86.
BURG (Brand-new Universal loadeR from GRUB) — это недавнее ответвление GRUB. Разработчики загрузчика планируют заменить GRUB на BURG. Он поддерживает большее количество операционных систем. Ключевой особенностью BURG является поддержка различных тем. Это загрузчик со множеством четких, хорошо прорисованных тем.
Источник
Загрузчики
Burg (Brand-new Universal loadeR from GRUB) — это новый загрузчик, созданный на основе GRUB. Burg на данный момент работает только совместно с установленным загрузчиком GRUB версии 2.
Coreboot
Проект по созданию свободного программного обеспечения, предназначенного для замены проприетарных и закрытых BIOS, используемых большинством персональных компьютеров, на легковесный BIOS, предназначенный исключительно для загрузки и запуска современных 32 и 64 разрядных операционных систем.
Epoch Init System
Cистема инициализации для Linux, созданная с целью облегчения конфигурирования и не вмешательства в процессы.
etherboot
Пакет для создания загрузочных ROM (boot ROMS) для загрузки Linux и других ОС, работающих на x86 PC, через сеть, используя Internet протоколы, такие как bootp, DHCP и tftp.
Etherboot/gPXE
Загрузчик операционной системы по сети.
GRUB2
Широко распространенный загрузчик GRUB был полностью переписан с самого основания, причем его структура была также полностью перепроектирована.
GRUB2 Editor
Модуль для KDE, который позволяет настраивать загрузчик GRUB2.
Gujin
Gujin — это загрузчик (boot loader) для PC, который может самостоятельно анализировать разделы и файловые системы на диске. Он находит образы ядра Linux, загрузочные разделы (с *BSD, MS-DOS, Windows и т.п), отдельные файлы (*.kgz) а также образы загрузочных дисков (*.bdi), после чего отображает графическое меню с выбором системы для загрузки.
kexec-loader
kexec-loader — это основанный на Linux загрузчик (bootloader), который позволяет запускать различные ядра по вашему выбору. Он помещается на дискете 1.44MB, поддерживает большинство блочных устройств, поддерживаемых Linux, и прост в использовании.
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Загрузчики Linux
Master Boot Record
Для того, чтобы начать разговор про загрузчиков, для начала необходимо понимать, как разбиваются жесткие диски и систему их разбиения.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
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 и видим следующее:
Устройство /dev/sda1 является загрузочным и, следовательно, на нем находится MBR. Команда, которая осуществляет резервное копирование она простая — это dd. Это утилита, которая позволяет копировать и конвертировать файлы. Главное отличие данной утилиты в том, что она позволяет это делать по секторно, т.е. она учитывает геометрию диска. Использование: dd if=/dev/sda of=/root/backup.mbr bs=512 count=1 . if что мы копируем, of — куда мы это копируем, bs что мы копируем 1 блок размера 512, count — количество блоков.
Только, что мы скопировали первый блок жесткого диска, это то самое место, где на жестком диске находится MBR.
Загрузчики
Первый загрузчик Lilo Linux Loader
Это был самый популярный загрузчик для Linux и для Unix систем в целом, он не зависел от файловой системы, мог загружать ОС с жесткого диска или с дискеты. Из этого выходила его особенность, загрузчик Lilo хранил в своем теле положение ядер и пункты меню и требовал обновления себя с помощью специальной утилиты, можно было поместить до 16 пунктов меню при загрузке. Данного загрузчика уже нету во многих дистрибутивах ОС Linux.
В настоящее время повсеместно используется загрузчик GRUB2, но мы можем поставить загрузчик Lilo, чтобы с ним разобраться.
Установка довольно-таки банальная apt-get install lilo .
В процессе установки выскакивает предупреждение, что это первая установка lilo, после установки необходимо будет исполнить команду, а затем запустить непосредственно загрузчик, который применит непосредственно все изменения. Нажимаем ОК. Далее запускаем liloconfig. Ничего не произошло, просто утилита создала файл и этот файл является файлом конфигурации. С помощью команды cat /etc/lilo.conf мы можем посмотреть файл конфигурации загрузчика.
В заголовке файла написано сразу, что после внесения изменений необходимо выполнить команду lilo, чтобы он сразу применил их. Далее идут основные параметры конфигурационного файла. Первый параметр lba32. Вот он как раз и меняет ту самую традиционную конфигурацию цилинд-головка-сектор, на 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 был полностью переделал и имеет мало чего общего с предыдущим загрузчиком. Он может загружать любую ОС и передавать загрузку, так же другому загрузчику, альтернативной ОС. Например, 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
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник