Какие загрузчики linux систем бывают

Обновлено: 07.07.2024

Нашел старую статью, так как много вопросов думаю лишней не будет.

Чтобы была возможность загрузиться с диска он должен содержать так называемый MBR (Master Boot Record) который располагается всегда в одном и том же месте, потому что BIOS передает управление сюда (не искать же его по всему диску четное слово). Это место находится в первом секторе жесткого диска (а если совсем честно то в нулевом). И занимает этот самый MBR всего то 512 б. Но и это не все, состоит он из трех разделов. Второй по расположению раздел, называется Partition Table занимает 64 б и состоит из четырех записей в каждой из которых описывается геометрия первичных разделов диска (первый и последний цилиндр занимаемый данным разделом), поэтому кстати на диске может быть не более четырех первичных разделов, а также тип файловой системы раздела и один бит занимает признак активности раздела т.е. возможности использования данного раздела для загрузки. Для любителей наглядности привожу описание данной структуры MBR:

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

LILO (LInux LOader)

И так начнем по старшинству. Менеджер загрузки LILO (LInux LOader) поддерживает большинство файловых систем которые могут встретиться на компьютере пользователя.

Хорошим тоном является создание отдельного раздела /boot с файловой системой ext2 с которого и загрузится Linux.

При своей работе LILO считывает исходные данные с конфигурационного файла /etc/lilo.conf. Данный файл как и большинство является обычным текстовым т.е. позволяющим для редактирования использовать простой текстовый редактор. Состоит файл как бы из двух разделов сначала описываются общие параметры работы LILO, а затем идут разделы описывающие операционные системы и содержащие специфическую информацию необходимую для их загрузки (максимум 16 вариантов). Пример файла /etc/lilo.conf:

Теперь когда все операции произведены при очередной загрузке системы вас будет встречать приглашение (LILO:). При нажатии Enter загрузится система прописанная по-умолчанию, для просмотра доступных вариантов нажмите Tab. Часто для решения проблем есть необходимость загрузится в однопользовательском режиме (уровень запуска системы 1), для этого наберите после приглашения lilo single. Но вот незадача, пользователь воспользовавшийся данной командой автоматически получает права root, что на безопасности системы в целом положительно, как вы понимаете, не сказывается. Для того чтобы воспрепятствовать этому необходимо защитить LILO паролем (password=пароль), а для того чтобы самому не набирать его каждый раз при загрузке системы добавьте параметр restricted и теперь пароль будет необходим только при задании параметров загрузки в командной строке т.е. как раз в нашем случае. Интересно, что при приглашение т.е. буквы LILO выводятся после прохождения какого-либо этапа загрузки и поэтому если загрузится не получилось то вместо строки приглашения вы увидите только от одной до трех букв. Поэтому если возникнет какая-либо проблемма, то по числу букв, которые напечатаются на дисплее можно определить причину этой проблемы. Мне наиболее часто приходилось наблюдать две и один раз даже три буквы.

GRUB (GRand Unified Bootloader)

  • Загрузка ядер систем совместимых с Multiboot Specification (FreeBSD, NetBSD, OpenBSD и GNU/Linux), поддержка загрузки по цепочке (Windows 9x/NT/2000/XP)
  • Поддержка большинства файловых систем (DOS FAT и FAT32, Linux ext2fs и ext3fs, Minix fs, BSD ffs, ReiserFS, VSTa fs и XFS)
  • Поддержка большинства форматов исполнимых файлов
  • Поддержка загружаемых модулей
  • Поддержка автоматической распаковки архивов
  • Независимость от геометрии диска т.е. при переходе к другому диску не требуется внесения изменений в конфигурации.
  • Автоматическое определение поддержки LBA (Logical Block Address) режима
  • Определение всей доступной оперативной памяти
  • Поддержка бездисковых станций и удаленных терминалов

Остальные параметры я думаю очевидны. Как уже говорилось с помощью GRUB можно загрузить и FreeBSD (вариант с GRUB мне кажется наиболее симпатичным), для того чтобы это сделать добавьте в файл следующие строки:

title FreeBSD 6.2

С обозначением дисков в данном примере те кому надо разберутся сами, а для остальных чтобы не останавливаться на этом сейчас, вернемся к этому вопросу как-нибудь потом. Для того чтобы загрузить Windows со второго жесткого диска (а она этого делать почему-то не умеет) применяется техника свопирования дисков для этого в нужном пункте просто необходимо прописать что-то вроде этого:

И теперь система будет думать, что она грузится с первого жесткого диска.

Чтобы установить GRUB воспользуйтесь следующей командой

$ sudo /sbin/grub-install /dev/hda

Так загрузить Linux можно примерно с помощью такой команды

Установка загрузчика

И так с загрузчиками мы разобрались. Теперь давайте разберемся с вопросом куда его устанавливать. Все дело в том, что некоторые системы уже имеют свой загрузчик и естественно можно воспользоваться им. Также нельзя обойти вниманием тот факт, что операционные системы семейства Windows вообще не заботятся о сохранении MBR, а при своей инсталяции просто записывают туда то, что нужно им, после этого как вы понимаете до Linux можно будет добраться только с помощью спасательной дискеты. Поэтому возникает вопрос в какой последовательности устанавливать системы, чтобы потом не повторять заново некоторые операции. Разберем два наиболее популярных варианта: Windows 9x + Linux, Windows 9x + Windows NT(2000)+ Linux. Другие как правило являются лишь частными случаями этих двух, главное уловить принцип, а там разберетесь, я думаю уже сами.

Итак, случай первый Windows 9x + Linux. Первой желательно установить Windows 9x причина уже думаю ясна. Впрочем если есть загрузочная дискета, то загрузить Linux и восстановить загрузчик можно будет без проблем. Да, перед началом любых действий затрагивающих MBR желательно сохранить так сказать его оригинальную версию с помощью команды dd:

$ sudo dd if=/dev/hda of=mbr_orig.bak bs=512 count=1

Во время инсталляции Linux программа установки спросит, куда устанавливать LILO. Давайте посмотрим какие у нас варианты. Windows загружается в такой последовательности.

212.PNG

Из рисунка видно, что возможны два варианта установки в MBR

37.PNG

и в boot record раздела куда установлена Windows.

47.PNG

Предпочтительным вариантом является установка в MBR (т.е. выбираем hda). Кстати если вы просто удалили раздел с Linux, то восстановить MBR можно и в DOS, просто наберите fdisk /mbr.

7 комментариев

Извиняюсь, но у вас ошибка:

в каталоге /boot/grub и называется grub.conf.

2ava
Да погорячился 🙂

/boot/grub/menu.lst это ссылка на
/boot/grub/grub.conf

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 является поддержка различных тем. Это загрузчик со множеством четких, хорошо прорисованных тем.


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

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

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

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

1. GNU Grub


GNU Grub - это популярный и наиболее часто используемый загрузчик, который может загружать почти все существующие операционные системы. Он разработан на основе оригинального Grub (GRand Unified Bootlader), который был создан Эриком Стефаном Броленом. Но здесь есть несколько усовершенствований, новых возможностей и исправлений ошибок.

На данный момент уже везде используется версия Grub 2 вместо Grub. А Grub переименован в Grub-legacy и уже не развивается, хотя до сих пор может использоваться для загрузки старых операционных систем. Исправления ошибок все еще выпускаются.

Характерные особенности Grub 2:

  • Поддержка загрузки нескольких операционных систем;
  • Поддержка нескольких аппаратных архитектур;
  • Используется Bash подобный интерфейс командной строки для работы в консоли Grub и такой же синтаксис для конфигурационных файлов;
  • Позволяет редактировать пункты загрузки во время выполнения;
  • Поддерживает установку паролей и шифрования для обеспечения безопасности;
  • Поддерживает загрузку по сети.

2. LILO (Linux Loader)

Lilo или Linux Loader - это простой, стабильный и мощный загрузчик для Linux. С развитием Grub, который получил новые возможности и большую популярность Lilo потерял своих пользователей, но он все еще используется в некоторых дистрибутивах и для загрузки образов.

Во время загрузки на экране появляется слово LILO и каждая буква рисуется при достижении определенного процента готовности. Разработка загрузчика была прекращена в 2015 году и сейчас он имеет такие недостатки по сравнению с Grub:

  • Нет интерфейса командной строки;
  • Поддержка нескольких кодов ошибок;
  • Нет поддержки загрузки по сети;
  • Все файлы загрузчика хранятся на первых 1024 цилиндрах привода;
  • Не поддерживает такие технологии, как Btrfs, GPT, RAID, и другие.

3. BURG


Загрузчик Burg основан на кодовой базе Grub и является относительно новым загрузчиком. Здесь есть все функции Grub и кое-что еще. Загрузчик предлагает новый код для работы с платформами Windows, Linux, MacOS, FreeBSD и других.

Кроме того, здесь поддерживается очень тонкая настройка тем текста и графического меню. Также запланирована реализация поддержки работы с различными устройствами ввода/вывода. Можно сказать, что это самый красивый загрузчик Linux.

4. Syslinux

Syslinux - это облегченный загрузчик, который используется чаще всего для загрузки с внешних носителей, LiveCD или по сети. Он поддерживает файловые системы FAT, ext2, ext3, ext4. Также поддерживаются несжатые тома Btrfs.

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

5. Systemd-boot

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

Выводы

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

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

burg

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

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

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

Есть несколько загрузчиков которые мы можем установить вместе с Linux на наших системах и в этой статье мы будем говорить кратко о нескольких лучших Linux загрузчиках для работы.

1. rEFInd

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

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

rEFInd — это активный форк программы rEFIt, которая больше не поддерживается.

refind

Поддержка тем(посмотреть можно тут)

Также rEFInd сам находит установленные ОС и определяет параметры их загрузки. Так же мне очень понравилось что если вставлена загрузочная флешка или диск они тоже появляются в списке.

2. GNU GRUB

grub

GNU GRUB является популярным и, вероятно, наиболее часто используемых мультизагрузочным загрузчиком Linux, на основе оригинального GRUB (GRand Unified Bootlader) , который был создан Eirch Stefan Broleyn. Он поставляется с несколькими усовершенствованиями, новых возможностей и исправлений ошибок как усовершенствований исходной программы GRUB.

Важно отметить, что GRUB 2 теперь заменил Grub. И в частности, название GRUB было переименовано в GRUB Legacy и не активно развивается, однако, он может быть использован для загрузки старых систем, поскольку исправления ошибок все еще продолжается.

GRUB имеет следующие характерные особенности:

  1. Поддержка Multiboot
  2. Поддержка нескольких аппаратных архитектур и операционных систем, таких как Linux и Windows,
  3. Предлагает Bash-подобный интерактивный интерфейс командной строки для пользователей, для запуска GRUB команд, а также взаимодействовать с файлами конфигурации
  4. Предоставляет доступ к редактору GRUB
  5. Поддерживает установку паролей с помощью шифрования для обеспечения безопасности
  6. Поддерживает загрузку из сети в сочетании с некоторыми другими незначительными особенностями

3. LILO (Linux Loader)

lilo

LILO является простым, но мощным и стабильным загрузчиком Linux. С ростом популярности и использования GRUB, который пришел с многочисленными улучшениями и мощными функциями, LILO стал менее популярным среди пользователей Linux.

  1. Не предлагает интерактивного интерфейса командной строки
  2. Поддерживает несколько кодов ошибок
  3. Не предлагает никакой поддержки загрузки из сети
  4. Все его файлы сохраняются в первых 1024 цилиндров привода

burg

Основан на загрузчике GRUB, BURG является относительно новым загрузчиком Linux. Тем не менее, он также предлагает замечательные возможности, такие как новый формат объекта для поддержки нескольких платформ, включая Linux, Windows, Mac OS, FreeBSD и остальные.

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

5. Syslinux

syslinux

Syslinux происходит из ассортимента облегченных загрузчиков, которые позволяют загрузку с CD-ROM, из сети и так далее. Он поддерживает файловые системы, такие как FAT для MS-DOS и ext2, ext3, ext4 для Linux. А также поддерживает Btrfs.

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

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

А каким Вы пользуетесь загрузчиком?

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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