Как мне программно создать загрузочный компакт-диск?

StackOverflow https://stackoverflow.com/questions/425519

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Спасибо!

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top