О загрузчиках |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
О загрузчиках |
Поделиться |
10.1.2010, 13:01
Сообщение
#1
|
|
Профессионал Группа: Глоб. Модератор Сообщений: 10027 Регистрация: 22.6.2009 Вставить ник Цитата Из: Онега Пользователь №: 1352 Страна: Россия Город: Не указан Пол: Муж. Репутация: 30 |
Чтобы пользоваться компьютером, нужно сначала загрузить в оперативную память операционную систему (ОС). Этим занимается программа-загрузчик.
Примечание. Не рассматриваю тут экзотику, как то : загрузка с "живого диска", с флэшки, по сети, наличие нескольких загрузочных винчестеров и т. п. Здесь речь о типичном варианте : на компьютере один загрузочный жёсткий диск, на нём - загрузчик и ОС. Также не касаюсь тонкостей, связанных с Master Boot Sector (MBS) и Master Boot Record (MBR) - они больше запутывают дело, чем проясняют. Просто принимаю, что MBR = первый сектор загрузочного жёсткого диска. Также не углубляюсь в множество иных деталей. Вообще, это краткий обзор, цель которого - дать начинающему общее представление о работе загрузчиков ОС. Что касается подробной информации по ним (кроме GRUB-2 - ввиду его новизны), то её в Интернете очень много. О разметке винчестера сказано здесь. После включения питания компьютера запускается BIOS. Она должна найти первичный загрузчик. Это не так сложно, поскольку он всегда находится в MBR, занимая его первые 446 байт (а последние 2 байта MBR должны быть 0x55AA - знак, по которому BIOS определяет, что винчестер - загрузочный). Итак, первичный загрузчик - тот, который в MBR = тот, который получает управление от BIOS. Он может быть разным - в зависимости от того, кому он, в свою очередь, должен передать управление. Кому именно? Рассмотрим загрузчики, с которыми часто приходится сталкиваться при использовании (чаще - при установке) Линукса. 1. Виндовая цепочка загрузчиков - обычно применяется на компьютерах, где есть только Windows. Первичный загрузчик (стандартный) просматривает таблицу разделов, находит в ней раздел, который помечен как "активный", и передаёт управление находящемуся в его первых секторах внесистемному загрузчику Windows. Он тоже бывает разным, в зависимости от файловой системы активного раздела (впрочем, сейчас это почти всегда NTFS). Он должен найти в корневом каталоге системный загрузчик (NT Loader), который, в отличие от предыдущих, уже является файлом - под названием ntldr, загрузить его в память и передать ему управление. Тот находит в том же корневом каталоге свой конфиг - файл boot.ini примерно такого содержания : Код [boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows-1" /FASTDETECT multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows-2" /FASTDETECT Коротко говоря, это означает, что в первом разделе винчестера (в каталоге WINDOWS) установлена Windows-1 (название произвольное, можно менять), во втором - Windows-2, и у юзера есть 10 секунд на выбор между ними, иначе загрузится та, что по умолчанию - в данном случае Windows-1. Чтобы увидеть boot.ini, надо включить показ скрытых и системных файлов, а чтобы редактировать его - также снять с него атрибут "только чтение". Впрочем, из Линукса с ним можно делать что угодно и без этого. Можно запускать и Линукс, скопировав первый сектор его раздела в файл, положив его в тот же корневой каталог и добавив в boot.ini нечто типа C:\Linux-boot="Linux". Но вообще, если взялись за Линукс, то лучше использовать в качестве основного один из его родных загрузчиков. 2. LILO (LInux LOader). Перезаписывает стандартный первичный загрузчик своим, который умеет (по встроенной в него карте размещения - то есть прямо по номерам секторов, в обход файловой системы) находить основной загрузчик, а тот (также при помощи своей карты размещения) запускает ОС по выбору пользователя. Управление - через конфиг /etc/lilo.conf. Он выглядит примерно так : Код timeout="100" default="Linux" image="/boot/vmlinuz label="Linux" root="/dev/sda1" other="/dev/sda2" table="/dev/sda" label="Windows" Это означает, что у пользователя 10 секунд (таймаут - в десятых долях секунды) на выбор, иначе автоматически загрузится Linux, а именно файл его ядра - /boot/vmlinuz, а корневая файловая система находится в разделе sda1. Выбор пункта "Windows" означает передачу управления внесистемному загрузчику Windows - предполагается, что он в первых секторах раздела sda2. Что делать дальше - он сам знает. После правки файла /etc/lilo.conf необходимо запустить команду lilo, которая переустановит загрузчик, обновив упомянутые карты размещения. 3. GRUB-1 ( GRand Unified Boot loader; ранее именовался - и часто до сих пор именуется - просто GRUB, а сейчас некоторые его называют GRUB Legacy; я использую термин GRUB-1 как единственный, не вносящий неопределённости). Также перезаписывает в MBR стандартный первичный загрузчик своим собственным, который умеет (по своей карте размещения) находить полуторный загрузчик, обычно записываемый прямо в сектора, следующие сразу за MBR. Полуторный умеет работать с файловой системой загрузочного раздела, где и находит вторичный (основной) загрузчик - файл stage2. Тот выводит стартовое меню (обычно с красивой картинкой), глядя на свой конфиг menu.lst (или grub.conf), который приблизительно таков : Код timeout 30 default 0 title Linux kernel (hd0,0)/boot/vmlinuz root=/dev/sda1 title Windows root (hd0,1) makeactive chainloader +1 В данном случае у юзера 30 секунд на выбор, после чего запускается ОС по умолчанию; "default 0" означает первую (в этом списке) ОС, в данном случае Linux (счёт ОСей идёт с нуля). "kernel (hd0,0)" означает, что ядро ОС - в файле /boot/vmlinuz, а тот - в первом разделе первого диска (hd0,0 - в терминологии BIOS, которую использует GRUB; нумерация тоже с нуля); корневая файловая система - в sda1 (то есть в том же разделе - что, кстати, необязательно). При выборе пункта "Windows" управление передаётся первому сектору (директива "chainloader +1") второго раздела (hd0,1), где должен находиться внесистемный загрузчик Windows. Поскольку основной загрузчик GRUB ищет ядра операционных систем по именам файлов, а не по номерам секторов, то он использует свой конфиг напрямую, и после правки последнего изменения вступают в силу автоматически. Установка GRUB-1 в MBR (не путайте с установкой самой программы GRUB-1 в Linux - она производится так же, как инсталляция любой другой программы; тут предполагается, что она уже выполнена) происходит так (из консоли с правами root) : Код grub # запуск консоли GRUB. root (hdO,0) # выбор раздела, в котором уже находится вторичный загрузчик (здесь : sda1 или hda1). setup (hd0) # выбор жёсткого диска, в начало которого надо записать первичный и полуторный загрузчики (здесь : sda или hda). 4. GRUB-2 (некоторые поспешили переименовать его в просто GRUB, чем добились, по-моему, только путаницы : GRUB-1 хоронить рано) - новая программа, а не новая версия GRUB-1, хотя преемственность очевидна. Имеет много дополнительных возможностей (например, поддерживает кириллицу в стартовом меню). Работает примерно так же, как GRUB-1, но его конфиг grub.cfg рекомендуется править не напрямую, а с помощью нескольких скриптов. Не буду тут вдаваться в подробности, об этом новом загрузчике вообще надо говорить отдельно, здесь он упомянут для полноты картины. Когда я создал первую свою мультисистему, состоявшую из Windows 2000 и Windows XP, то схема загрузки была, естественно, виндовая. Как только начал экспериментировать с Линуксом, перешёл на GRUB-1. В последнее время, по причине пристрастия альтовцев к LILO, стал использовать и его, но, в основном, лишь на чужих компьютерах. Недавно начал экспериментировать с GRUB-2; работает хорошо, но почему-то не получается фоновая картинка; научусь её делать - перейду на этот загрузчик. Сейчас у меня установлены все эти загрузчики. GRUB-1 - основной, GRUB-2 - на другом винчестере (то есть задействуется переключением порядка проверки винчестеров в BIOS); LILO - в разделе одного из Альтов (поставлен для ознакомления, можно обойтись без него); внесистемный и системный загрузчики Windows - в разделе, служащем для запуска ещё оставшихся у меня виндух. Все загрузчики работают надёжно. А вообще, учитывая ориентацию нашего форума на Альт, LILO может оказаться для нас наиболее важным загрузчиком. -------------------- Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
|
|
|
7.11.2014, 18:37
Сообщение
#2
|
|
Профессионал Группа: Глоб. Модератор Сообщений: 10027 Регистрация: 22.6.2009 Вставить ник Цитата Из: Онега Пользователь №: 1352 Страна: Россия Город: Не указан Пол: Муж. Репутация: 30 |
-------------------- Не пью, не курю, не смотрю телевизор, не пользуюсь Windows
|
|
|
Текстовая версия | Сейчас: 18.4.2024, 6:46 | |