Как программно создать загрузочный компакт-диск? - PullRequest
6 голосов
/ 08 января 2009

Я использую базовый учебник в качестве основы для операционной системы, над которой я работаю, и кажется, что это более старый учебник: он собирает ядро ​​до образа с дискеты, а затем загружает его с помощью GRUB.

По сути, я все еще хочу использовать GRUB, но вместо этого я хотел бы, чтобы моя ОС запускалась с компакт-диска. Основная причина в том, что на самом деле у меня нет доступного реального дисковода (сейчас я тестирую в VirtualBox), и поэтому у меня нет возможности проверить свою ОС на реальном оборудовании.

Я бродил по сети, и я могу найти множество утилит, которые создают загрузочный компакт-диск из образа дискеты, но все они, кажется, требуют настоящего дисковода гибких дисков, плюс это не совсем то, что я ищу за. Я хотел бы иметь возможность в конечном итоге получить загрузочный компакт-диск во время моего шага создания, без необходимости сначала помещать образ на дискету, что кажется довольно бессмысленным.

Полагаю, простой способ ответить на этот вопрос: как настроить GRUB для чтения образа моего ядра с компакт-диска? Нужна ли мне специальная утилита для Windows? (Ядро пока не может скомпилировать себя, это не слишком долго)

Спасибо!

Ответы [ 3 ]

5 голосов
/ 09 января 2009

Я нашел решение для своего проекта самостоятельно, с некоторыми советами из OSdev. Существует утилита mkisofs (которая может работать под Windows с использованием cygwin dll), которая берет каталог и превращает этот каталог в образ ISO, который можно записать на компакт-диск. Используя флаг -b, вы можете указать, какой файл должен находиться в загрузочном секторе диска.

Решение состоит в том, чтобы просто включить GRUB в загрузочный сектор и использовать GRUB для загрузки образа ядра, который я легко могу скомпилировать в виде не дискеты.

4 голосов
/ 08 января 2009

AFAIK загрузочный CD почти такой же, как загрузочная дискета. Вам нужно поместить загрузчик (GRUB) в загрузочный сектор и т. Д., BIOS будет заботиться о низкоуровневом уровне, пока вы не переключитесь в защищенный режим.

Вам, вероятно, придется создать свой образ и затем скопировать его на реальный физический диск.

Вот спецификация загрузочного компакт-диска El Torito: http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf

РЕДАКТИРОВАТЬ : Альтернативным способом проверки вашего ядра может быть загрузочный USB-накопитель. Опять же, BIOS будет заботиться о низкоуровневом USB-устройстве, пока вы не включите A20 и не перейдете в защищенный режим.

1 голос
/ 08 января 2009

Если вы заинтересованы в просмотре кода, то Moblin Image Creator , вероятно, является хорошим приложением для проверки. Он написан на python и может создавать различные типы загрузочных образов (CD, USB и NAND) как для Live, так и для устанавливаемых конфигураций Moblin Linux.

...