OSDev

для всех
Текущее время: 28 мар 2024, 14:30

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 45 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: GRUB2
СообщениеДобавлено: 12 ноя 2012, 19:32 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Пытаюсь разобраться с установкой и работой второго ГРУБа.

Вопрос 1. Хочу сделать флоппи-имидж.
Сделал файл floppy.img. Подключил его:
% losetup /dev/loop0 floppy.img
Отформатировал на FAT12.
% mount /dev/loop0 /mnt
Успешно смонтировался. Затем пытаюсь установить ГРУБ в соответствии с его же документацией.
% grub-install /dev/loop0
Получаю следующее (опять сил у переводчиков не хватило?) сообщение:
/usr/sbin/grub-setup: warn: Попытка установить GRUB на диск без разделов. Лучше этого НЕ ДЕЛАТЬ..
/usr/sbin/grub-setup: error: embedding is not possible, but this is required for cross-disk install.
Опция --force не помогает. На опцию --allow-floppy из документации ГРУБа дебиановский ГРУБ ругается, как на несуществующую.
Каким образом можно сделать образ загрузочной дискеты ГРУБа? У кого есть опыт?

Второй вопрос. В опциях grub-mkimage нету опции, позволяющей в образ груба добавить соответствующие модули. Каким образом их можно прилинковать к образу? В доках ГРУБа пишут, что для загрузки с других ФС он должен быть скомпилирован с вшитой в него поддержкой этих ФС, но его конфигуратор НИЧЕГО не спрашивает.

Третий вопрос. Я скачал и скомпилировал исходники последней версии груба. Однако, ставить его в систему боюсь, прошлый раз я остался [z]с носом[/z] с негрузящейся системой, потому что "не смогла я установиться, ну не смогла..." (с) ГРУБ. Можно ли использовать его бинарники для генерации образов без установки и если можно, то как? Похоже, опять надо снимать посекторный образ диска прежде, чем лезть в серную кислоту.

С четвёртым вопросом пока попытаюсь разобраться сам, но если есть добрый человек (например, phantom-84 :D), который мог бы ткнуть носом в соответствующую доку, было бы здорово. Где описан формат загрузочного образа ГРУБ i386-pc?

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 12 ноя 2012, 22:32 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Ну ё-маё!!! Не успел я сделать образ диска, загрузка убилась неудачными попытками запуска
% grub-install /dev/loop0
Ну как можно делать настолько глючные и легко убиваемый системы?!! :evil: :evil: :evil:

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 13 ноя 2012, 09:21 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Yoda писал(а):
Вопрос 1. ... Каким образом можно сделать образ загрузочной дискеты ГРУБа? У кого есть опыт?
Можно использовать мои исходники GrubOnFloppy-198, доступные достаточно давно (ссылки есть и здесь, и на буржуйском форуме). Если будешь брать за основу другие версии GRUB'а, то можешь нарваться на GRUB'ли, т.к. нек. загрузочные структуры вершн-специфичны (различия до версии 1.98 включительно я описывал в статье GRUB Internals; 1.99 и 2.00 не смотрел, т.к. понемногу начинаю отходить от использования GRUB'а, но в принципе это можно сделать очень быстро).

Цитата:
Второй вопрос. В опциях grub-mkimage нету опции, позволяющей в образ груба добавить соответствующие модули. Каким образом их можно прилинковать к образу?
К образу ядра? Просто перечисляешь имена всех нужных модулей после имени ядра. Еще часть модулей линкуется динамически во время запуска по зависимостям или по командам (можно даже прописать автозапуск).

Цитата:
Третий вопрос. Я скачал и скомпилировал исходники последней версии груба. Однако, ставить его в систему боюсь, прошлый раз я остался [z]с носом[/z] с негрузящейся системой, потому что "не смогла я установиться, ну не смогла..." (с) ГРУБ. Можно ли использовать его бинарники для генерации образов без установки и если можно, то как?
Я тебе уже несколько раз говорил, что можно (исходники GrubOnFloppy как раз это и демонстрируют). Я обычно так и делаю для FAT'ов, хотя сейчас, как ты знаешь, обычно использую более продвинутую технологию загрузки (своими/твоими :D загрузчиками) и динамического пропатчивания.

Цитата:
С четвёртым вопросом пока попытаюсь разобраться сам, но если есть добрый человек (например, phantom-84 :D), который мог бы ткнуть носом в соответствующую доку, было бы здорово. Где описан формат загрузочного образа ГРУБ i386-pc?
Кое-что описано в моей статье GRUB Internals + можно параллельно смотреть исходники актуальной для тебя версии. Также по исходникам можно исследовать структуру, расположенную по смещению 512+ (после jump'а).

Edited. Страница со статьей была перемещена, так что вот актуальная ссылка: GRUB Internals.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 13 ноя 2012, 10:29 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
phantom-84 писал(а):
Можно использовать мои исходники GrubOnFloppy-198, доступные достаточно давно (ссылки есть и здесь, и на буржуйском форуме).

Твои дисковые образы для обоих ГРУБов у меня есть, я работал с ними. Я имел ввиду самостоятельную генерацию загрузочного диска ГРУБ из под Линукса.

phantom-84 писал(а):
Просто перечисляешь имена всех нужных модулей после имени ядра.

Блин, так просто! Пасиб.

phantom-84 писал(а):
Я тебе уже несколько раз говорил, что можно (исходники GrubOnFloppy как раз это и демонстрируют).

Да нет же, про GrubOnFloppy я помню и за них благодарен. Я имею ввиду полную сборку GRUB2 из исходников под линуксом с генерацией образа дискеты.

phantom-84 писал(а):
Кое-что описано в моей статье GRUB Internals ... вот актуальная ссылка: ...

Уже читаю, вникаю, спасибо огромное!

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 13 ноя 2012, 11:19 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Yoda писал(а):
Твои дисковые образы для обоих ГРУБов у меня есть, я работал с ними. Я имел ввиду самостоятельную генерацию загрузочного диска ГРУБ из под Линукса.

Да нет же, про GrubOnFloppy я помню и за них благодарен. Я имею ввиду полную сборку GRUB2 из исходников под линуксом с генерацией образа дискеты.
Вообще сборка из исходников и генерация образа дискеты - это разные вещи. Как собрать GRUB, думаю, понятно. А сделать образ флоппика из моих исходников можно и под линухом. Кстати вот еще пример (твой загрузчик, мои mksys (new) и grubldr2 (с тем же оригинальным ядром 1.98 для флоппика в формате pk)): sys-GrubldrOnFloppy-198.zip (будет доступно в течение 3 дней). Можешь этот же состав файлов (содержимое папки content) и в ISO-образ "воткнуть" (в ядро включена поддержка CDFS), только добавь свой загрузчик iso9660.bin.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 13 ноя 2012, 14:04 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
phantom-84 писал(а):
Вообще сборка из исходников и генерация образа дискеты - это разные вещи. Как собрать GRUB, думаю, понятно.

Так я об этом же. Собрать ГРУБ, я собрал. Вроде бы. Хотя и не уверен в его абсолютной корректности, т.к. груб рекомендует наличие библиотеки libdevmapper 1.02.34 или старше, а в Дебиане эта библиотека старая.

phantom-84 писал(а):
А сделать образ флоппика из моих исходников можно и под линухом.

Вот я и пытаюсь теперь отладить технологию генерации загрузочного диска, но только не из твоего пакета, а из оригинального ГРУБа. Перцу уже наглотался, а флопик так и не сгенерил.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 13 ноя 2012, 21:36 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Посмотрел примеры... Ты не указываешь каталог назначения, что означает использовать каталог /boot, но это ведь не флоппик/образ флоппика, поэтому попробуй --boot-directory=/mnt/boot (каталог естественно нужно предварительно создать).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 14 ноя 2012, 13:18 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Кажется, начинаю въезжать... я и про внутреннюю структуру core.img тоже.
Продолжаю работать. Виден свет в конце тоннеля.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 14 ноя 2012, 14:25 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Моя последняя подсказка помогла установить GRUB в образ флоппика?

Yoda писал(а):
Кажется, начинаю въезжать... я и про внутреннюю структуру core.img тоже.
Продолжаю работать. Виден свет в конце тоннеля.
Про структуру core.img я уже говорил: сначала идет helper размером 512 байт (описание есть в моей статье; именно его я заменяю моим адаптационным кодом; обычно основан на исходнике diskboot.S), потом стартап-код с весьма полезными переменными вначале (именно эти переменные я динамически пропатчиваю моим адаптационным кодом; основан на исходнике startup(_raw).S). Как получается сырой бинарник из эльфа, я не смотрел, но понятно, что либо эльф обрезается, либо нет, после чего в начало доставляется стартовая часть. Какова структура элементов, отвечающих за связывание, я точно не знаю. Возможно, все это взято из эльфов, т.к. исходный вариант ядра (kernel.img) имеет ELF-формат, равно как и модули.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: GRUB2
СообщениеДобавлено: 14 ноя 2012, 15:19 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
phantom-84 писал(а):
Моя последняя подсказка помогла установить GRUB в образ флоппика?

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

phantom-84 писал(а):
Про структуру core.img я уже говорил: сначала идет helper размером 512 байт (описание есть в моей статье; именно его я заменяю моим адаптационным кодом; обычно основан на исходнике diskboot.S), потом стартап-код с весьма полезными переменными вначале (именно эти переменные я динамически пропатчиваю моим адаптационным кодом; основан на исходнике startup(_raw).S).

Хелпер нужен только для загрузки самого коре, его можно спокойно удалять. Стартап код я нашёл и в переменных, вроде бы, разобрался. В рамках всей второй версии ГРУБа они, к счастью, неизменны, хотя гарантии, конечно, никто не даст. В первом ГРУБе (GRUB legacy) они расположены по-другому. Я так понимаю, со всеми этими переменным работает grub-mkimage. Из них непонятны переменные для кода рида-соломона. Не ясно, к чему этот код относится и что с ним делать.

phantom-84 писал(а):
Как получается сырой бинарник из эльфа, я не смотрел, но понятно, что либо эльф обрезается, либо нет, после чего в начало доставляется стартовая часть.

Этим вроде бы занимается grub-mkimage, у него в исходниках есть соответствующие функции. Но мне главное было найти структуру начала образа.
Непонятен ещё такой момент, - насколько совместим между версиями груб со своими модулями? Т.е., если я беру коре от второй версии, а модули остались от предыдущей, должно ли оно работать? Я чуть позже проверю на принципиальный вопрос да/нет, но на пограничный вариант типа "может работать, но вероятны глюки" можно и не получить ответа, не будучи разработчиком ГРУБа. Я не знаю, как они там, стараются ли придерживаться стандартов на интерфейсы, размещение переменных, структуры файлов и пр.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 45 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB