Согласно Википедии , GRUB был выпущен в 1995 году. К этому моменту Linux и xBSD существовали несколько лет. Я знаю, что ранние версии Unix были привязаны к оборудованию в 70-х и 80-х, но Linux и xBSD можно было свободно распространять и устанавливать. Возникает вопрос, как бы вы тогда загружали Linux? Поставлялись ли дистрибутивы с собственными реализациями загрузчиков?
boot-loader
history
Сергей Колодяжный
источник
источник
biosboot(8)
.biosboot
две архитектуры: i386 и amd64. Означает ли это, что OpenBSD должен был нацеливаться на архитектуру, а не на один, объединяющий инструмент?Ответы:
Первый дистрибутив Linux, который я использовал еще в 90-х годах (
Slackware 3.0
IIRC), использовал LILO в качестве загрузчика. И многие дистрибутивы использовалисьLILO
годами, даже когдаGRUB
становились загрузчиком по умолчанию.Более того, в первые годы существования Linux было принято загружать Linux с другой ОС (например, DOS или Windows) вместо того, чтобы полагаться на загрузчик / двойную загрузку. Например был loadlin .
Не забудьте Syslinux , более простой загрузчик, который часто используется для самостоятельной загрузки с USB-диска. Или Isolinux (из того же проекта), используемый многими " живыми " дистрибутивами.
Имейте в виду, что сегодня
GRUB
можно использовать для загрузки многих операционных систем, хотяLILO
был более ограниченным и специально предназначенным для Linux (например, LInux LOader), с некоторой поддержкой двойной загрузки для Windows.GRUB
очень полезен для двойной / множественной загрузки из-за множества настраиваемых параметров, возможностей сценариев и т. д.Если вы просто хотите, чтобы одна ОС на вашем компьютере была «любой» (т. е. какой бы загрузчик не использовался по умолчанию для вашего дистрибутива Linux / BSD), быть достаточным.
источник
other=/dev/hda1
сtable=/dev/hda
кlilo.conf
и LILO просто передать управление на загрузочный сектор на hda1, зная таблицу разделов будет на HDA.LILO был стандартом де-факто для загрузки Linux на ПК до Grub с самого раннего этапа (его использовал MCC, один из первых дистрибутивов Linux). Различные другие загрузчики использовались одновременно. Loadlin был довольно распространенным явлением; он загружал Linux из DOS и даже использовался в некоторых конфигурациях
umsdos
для размещения среды Linux в файловой системе DOS ... Другая распространенная конфигурация вообще не включала загрузчик: ядро могло загружаться с дискеты, и большинство Пользователи Linux сохранили заведомо неплохую пару «загрузочных и корневых» дискет, одна из которых содержит ядро, а другая - базовую корневую файловую систему для целей спасения.Существовал несколько способов использования загрузчиков других операционных систем для загрузки Linux; например, менеджер загрузки OS / 2 или NTLDR в Windows NT.
Другие системы имели свои собственные загрузчики:
Даже в наши дни Grub - не единственный загрузчик, который вы увидите. Хотя загрузка ядра непосредственно с дискеты больше не очень полезна (я не проверял, возможно ли это по-прежнему, предполагая, что вы можете собрать ядро достаточно маленькое, чтобы поместиться на дискету), оно может загружаться непосредственно с EFI (который фактически является его собственная небольшая операционная система, предназначенная для загрузки других операционных систем, таких как Grub). Во многих небольших системах (встроенные системы, одноплатные компьютеры ...) вы найдете U-Boot . (И есть также слой EFI для U-Boot .)
источник
До середины ядра 2.6 ядро x86 можно было загружать напрямую, если оно было скопировано на дискету (как если бы это был образ диска).
Это был, по сути, оригинальный способ загрузки Linux.
Если вы посмотрите на заголовок ядра x86 сегодня, вы увидите сообщение об ошибке, в котором говорится, что загрузка с таких дискет больше не работает.
источник
Я начал с Linux в конце 90-х и, как уже упоминалось,
lilo
был по умолчанию. Если вы хотите выполнить двойную загрузку с системой DOS, вы можете выполнить «чистую» загрузку, не загружая что-либо в HIMEM, не загружая драйверы CD и т. Д., И использоватьloadlin
. Для двойной загрузки Win95 вы можете сначала сделать загрузочный диск с DOS, а затем установить '95, и загрузчик 95 'позволит вам по-прежнему загружать ядро DOS, а затем вы можете использоватьloadlin
.Для двойной загрузки с NT4 хитрость заключалась в том, чтобы записать LILO в
/
раздел, затем удалить первые 512 байт с помощьюdd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
) и поместить полученный файл туда, где егоntldr
можно было увидеть, и вы могли использовать его из загрузчика WinNT. Проблема с этим заключается в том, что при обновлении ядра вы должны были помнить, что перед перезагрузкой нужно повторить все шаги, иначе у вас возникнут проблемы с возвратом в систему Linux. Тот же процесс работал с Win2k.С LILO каждый раз, когда ядро обновлялось, вы должны были помнить об обновлении LILO.
В
loadlin
любое время, когда ядро обновлялось, вы должны были не забывать копировать ядро в раздел DOS.Еще один вариант, на который намекают другие ответы, - записать ядро напрямую на дискету, используя
dd if=/path/to/vmlinuz of=/dev/fd0
НО, чтобы корневое устройство было правильно настроено в ядре, либо во время компиляции, либо с помощьюrdev
утилиты.Когда
GRUB
пришло время, было много радости, потому что вам больше не нужно было вспоминать об обновлении LILO или обновлении LILO и лишении информации о загрузке, и т. Д. Больше не оставалось ничего из вашей системы Linux, потому что вы забыли обновить загрузчик Информация...источник
make install
будет работать/sbin/lilo
, так что вам не нужно ничего обновлять вручную (и это все еще может иметь место, если выlilo
установили). Это может быть вопросом мнения, но я не помню особой радостиgrub
, напротив. Иlilo
(по крайней мере, его версия 1999 года) может отлично работать с двумя загрузочными окнамиloadlin
.А до LILO и GRUB вам приходилось запускать его из командной строки с помощью какой-то специальной утилиты загрузчика.
Как пример, у Amiga был доступный Linux. Вы должны были использовать утилиту командной строки под названием amiboot, чтобы загрузить ядро ELF в память и перейти к нему.
Вот видео, где кто-то использует amiboot из командной строки для запуска linux на Amiga 600 . Его скрипт StartInstall вызывает исполняемый файл amiboot. Вы можете наблюдать за конфигурацией памяти amiboot, определять желаемый адрес загрузки и передавать параметры ядру в 0:55.
источник