Может кто копался в его исходниках...
GRUB загружается примерно так:
запускается stage1, находящийся в MBR (или в загрузочном секторе партиции),
stage1 запускает stage1.5 (если тот был установлен), находящийся в секторах следующих за загрузочным,
stage1.5 (или stage1, если 1.5 не установлен) загружает stage2, находящийся где-угодно в boot-партиции.
точка в коде (и бинарнике) stage1, где размещается адрес stage2 на диске, найти было не сложно, всего 512байт.
Но остались некоторые непонятки с stage1.5 и stage2:
- в stage2 вроде бы тоже есть точки, в которые прописывается немного измененный адрес stage2 на диске, какие там должны быть значения? не нашел ответа.
- если установлен stage1.5, адрес stage2 должен быть где-то прописан?
- как вообще узнать, есть ли stage1.5 не запуская системы с этого диска?
непонятные моменты в исходниках GRUB
Модератор: Bizdelnick
-
fatboy
- Сообщения: 156
- ОС: Zenwalk Linux, Windows XP
Re: непонятные моменты в исходниках GRUB
Amouse писал(а): ↑28.07.2006 20:171- в stage2 вроде бы тоже есть точки, в которые прописывается немного измененный адрес stage2 на диске, какие там должны быть значения? не нашел ответа.
2- если установлен stage1.5, адрес stage2 должен быть где-то прописан?
3- как вообще узнать, есть ли stage1.5 не запуская системы с этого диска?
Вопросы для ясности пронумеровал сам.
Скажу сразу - в исходниках именно GRUB я никогда не рылся.
Все что будет написано будет лтшь предположениями.
Теперь по сути:
1. Если адрес "немного изменен" то может это и не stage2 адрес вообще?
2. Возможно. А если 1.5 не установлен? Тогда адрес stage2 будет, скорее всего в stage1. Возможно stage1.5 берет его именно оттуда.
3. Наверное посмотреть те самые байты "находящиеся в секторах, следующих за загрузочным".
Zenwalk 4.0
TOSHIBA Satellite A100
TOSHIBA Satellite A100
-
Amouse
- Сообщения: 59
Re: непонятные моменты в исходниках GRUB
fatboy писал(а): ↑01.08.2006 03:281. Если адрес "немного изменен" то может это и не stage2 адрес вообще?
2. Возможно. А если 1.5 не установлен? Тогда адрес stage2 будет, скорее всего в stage1. Возможно stage1.5 берет его именно оттуда.
3. Наверное посмотреть те самые байты "находящиеся в секторах, следующих за загрузочным".
1. Там отличие в 10-20 байт, и похоже постоянное (относительно адреса stage2).
3. Далеко не факт, что если там записан stage1.5, то он обязательно используется при загрузке.