Как загрузчик может читать DVD (CD)? - PullRequest
2 голосов
/ 15 октября 2011

У меня загрузчик первого этапа написан на ассемблере.Мне нужно, чтобы он загружал загрузчик второй ступени с DVD (или CD).Я нашел только примеры, где он читает из floopy или hdd.Используемое прерывание - 13ч.В описании прерывания говорится, что он может читать дискеты и жесткие диски.Я пытался использовать 13h для чтения CD, как если бы это была дискета, но она не работала.

Вопрос: есть ли разница между дискетами и DVD-дисками (в смысле доступа к ним), могу ли яиспользуйте CHS (цилиндр, голова, сектор), какой у него размер сектора, могу ли я использовать 13-часовую инструкцию, чтобы правильно прочитать DVD.может быть несколько примеров.Я посмотрел на исходный код LILO и нашел там только 13 часов, поэтому он должен работать.Спасибо.

Ответы [ 3 ]

4 голосов
/ 15 октября 2011

Вы можете создать загрузочный компакт-диск из файла образа загрузочной дискеты с помощью инструмента mkisofs . Вот как я делаю это под Windows:

  1. Создайте подкаталог CdFiles, содержащий образ загрузочной дискеты файл floppy.img (длиной 1474560 байт) и любые другие файлы, которые я хочу на CD.
  2. mkisofs.exe -b floppy.img -v -r -l -o cd.iso CdFiles

Он создаст файл образа ISO ISO, cd.iso, который можно либо записать на CD и загрузить с диска, либо использовать в любом эмуляторе ПК и загрузить непосредственно из образа.

BIOS будет эмулировать дисковод гибких дисков на компакт-диске с содержимым floppy.img и сможет нормально обращаться к себе через int 13h с использованием дисковода № 0. Для доступа ко всему CD через int 13h вам понадобится создать образ жесткого диска (загрузочный) и указать другой метод эмуляции (не уверен, как это сделать с mkisofs, никогда не пробовал образы жесткого диска). То же самое произойдет, но теперь жесткий диск будет эмулироваться поверх компакт-диска, и это будет номер привода 80 часов для целых 13 часов.

2 голосов
/ 15 октября 2011

Загрузчик загружается с DVD - он загружается с дискеты или жесткого диска.DVD / CD работает в режиме эмуляции и предоставляет дискету / диск во время процесса загрузки

1 голос
/ 15 октября 2011

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

...