и чем они отличаются?
Что такое stage1 и stage2 в Grub?
Termo,
stage1 - при установке с него всё качается из инета, ВСЁ компилируется из исходников еще на стадии установки системы, отсюда следует, что достигается максимальная оптимизация под конкретное железо и пожелания пользователя (если потрудиться, и выразить свои пожелания на понятном системе языке), но также сопряжено с большим расходом времени, в зависимости от мощности компьютера, конечно (если компилять всю систему (десктоп на KDE, например), то займет часов 50-60 на современной средней машине); Едем дальше.
stage2 - частично собранная система (сильно частично), если я ничего не путаю, собран только base layot (за орфографию не ручаюсь :-)), остальное собирается из исходников на стадии установки системы, все тянет из инета. Отсюда: меньше затраты времени (незначительная экономия, часов 5), менее оптимизированная система, в общем ни то ни сё;
Полное описание тут: [url= сцилка]http://www.gentoo.ru/content/chem-otlichayutsya-stage1-stage2-i-stage3[/url]
Termo, вопрос по Gentoo Linux? Или по grub? Или по чему-то ещё?
Телепаты в отпуске просто... как бы.
про GRUB
/boot/grub stage1 & stage 2
еще спрошу
однажды я сделал вот так:
dd if=/dev/sda of=~/bootsect.bin bs=512 count=1
и прописал этот файл в boot.ini
расскажите, а где собственно храниться загрузчик GRUB, установленный по дефолту?
в MBR?
получается, что загрузчик и есть первые 446 байт любого винта...
первые 446 байт - это загрузчик, остальные 66 байт - таблица разделов
загрузчик - это груб и он сидит внутри mbr?
я не могу сообразить что из них куда соотносится.
если груб сидит в мбр, то почему там нет boot.ini, когда венда - единственная ось на винте.
или он тоже туда прописывается?
1. Загрузчик 1-й фазы (stage1) считывается BIOS из MBR (главной загрузочной записи).
2. Он загружает оставшуюся часть загрузчика (2-ю фазу, stage2). Если вторая фаза находится на большом диске, иногда загружается промежуточная фаза 1,5, которая содержит дополнительный код, позволяющий считывать цилиндры с номерами более 1024 (диски LBA). Загрузчик фазы 1,5 хранится (если это необходимо) в MBR или в загрузочном разделе.
3. Выполняется вторая фаза загрузчика (stage2) и отображает меню запуска GRUB.
если груб сидит в мбр, то почему там нет boot.ini, когда венда - единственная ось на винте.
Груб не целиком сидит в MBR, см. выше.
Загрузчик винды называется NTLDR (по крайней мере начиная с winNT вплоть до XP, если не ошибаюсь в viste и дальше используется другой загрузчик) и на каком-то этапе читает этот самый файл boot.ini.
подведем итог:
после прохождения процедуры POST, BIOS проверяет наличие MBR на первом жестком диске (SATA1) и передает управление загрузчику,
в данном случае, GRUB'у, инициализация которого условно разделена на две (или три) промежуточные части.
первая фаза (Stage1) проверяет таблицу разделов и ищет тот, который с меткой 80h (активный).
если таковой радел найден, то управление передается второй фазе (Stage2), которая отображает меню GRUB,а для пользователя
и загружает в память ядро операционной системы, расположенное на активном разделе жесткого диска.
так?
ПС а меню и параметры загрузки GRUB,а отображаются из файла menu.lst
аналогично и в венде, где boot.ini - это всего-лишь черный экран с белыми буквами выбора версий форточек для загрузки (если их больше, чем одна)
ППС тогда возникает резонный вопрос, почему загрузчик не уходит в бесконечный цикл, когда обнаруживает активных разделов больше одного?
как он определяет какому разделу винта отдать управление?
или он отдает право выбора раздела пользователю?
В grub.conf пишется.
root(hd0,0) указывает где лежит ядро (/boot)
kernel ... root=/dev/sda5 - корневая файловая система (/)
а это то здесь каким боком?
Опа. Извиняюсь, я тебя не правильно понял.
подведем итог:
... проверяет таблицу разделов и ищет тот, который с меткой 80h (активный)...
...ППС тогда возникает резонный вопрос, почему загрузчик не уходит в бесконечный цикл, когда обнаруживает активных разделов больше одного?...
Именно так и происходит. Выдается сообщение "Invalid partition table" и бесконечный цикл. Но кто же в здравом уме будет помечать два раздела как активные? Это делается в fdisk, например, жмется "буковка а" и номер раздела.
P.S. Ходил курить и пришла такая мысль в голову. Тот же fdisk скорее всего не даст пометить два раздела как "активные". Как минимум это было бы логично с его стороны. И я думаю, что создатели этой программы включили такую возможность в код.
fdisk
Получите wink
[console]$ sudo fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Команда (m для справки): p
Диск /dev/sda: 32.0 ГБ, 32017047552 байт
255 heads, 63 sectors/track, 3892 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x94f41c96
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 1946 15631213+ 7 HPFS/NTFS
/dev/sda2 1947 3892 15631245 83 Linux
Команда (m для справки): a
Номер раздела (1-4): 2
Команда (m для справки): p
Диск /dev/sda: 32.0 ГБ, 32017047552 байт
255 heads, 63 sectors/track, 3892 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x94f41c96
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 1946 15631213+ 7 HPFS/NTFS
/dev/sda2 * 1947 3892 15631245 83 Linux
[/console]
:O ! А почему бы не запретить это делать в коде fdisk? Или такой прием где-то используется? Я бы и сам проверил, но я знаю как поставить метку, а как снять, к сожалению, нет, wink разве что "убиванием" раздела. А этого очень бы не хотелось.
Ну я изменения-то на диск не писал, так что может и нельзя это сделать.
Ну я изменения-то на диск не писал, так что может и нельзя это сделать.
:D :D :D Чувствовал же что, где-то подвох. А такой простой мысли в голову не пришло. Сейчас попробую, отпишусь.
Попробовал. Можно! :D Зачем интересно так?
Зато теперь знаю как отменить "назначение" диска "активным/загрузочным". Точно так же - "а".
что происходит после передачи управления от БИОСа ГРУБу и до момента загрузки я дра операционной системы?
нет, там пробелы. хотелось бы ясности...
итак, БИОС передал управление загрузчику, который занимает первые 446 байт дискового пространства.
загрузчик просмотрел таблицу разделов, нашел активный и...?
дальше что?
Загрузчик stage1 ищет активный раздел и просматривает остальные разделы, убеждаясь, что больше активных нет (что происходит, когда он находит их больше одного мы уже обсудили выше :cool: ). Как выяснилось позже - это нифига не так, см. дальше.
Потом он загружает stage1.5. Этот загрузчик "понимает" определенную файловую систему. Находится он также в цилиндре 0, но уже не в MBR. Посмотри в /boot/grub/ лежат e2fs_stage1_5, fat_stage1_5, reiserfs_stage1_5. А дальше уже из файловой системы загружается stage2.
stage2 расположен в загрузочном секторе активного раздела
или также лежит в MBR?