ФЭНДОМ


Введение Править

Использование образа компакт-диска при разработке ОС гораздо более удобно, нежели ставший классическим способ с дискетой.

Удобство заключается в том, что написаны превосходные утилиты, позволяющие за считанные секунды (1-3 секунды) создать новый (без остатков старых данных, неизбежно остающихся, при перезаписи файлов на дискете) готовый образ с установленной системой, и сразу же загрузить систему с этого образа в эмуляторе (я сам в качестве эмулятора использую QEmu).

Практика Править

Данный пример рассчитан на использование универсального загрузика GRUB.

Сперва, создаю каталог с будущим содержимым компакт-диска. Назову каталог cdrom. В этом каталоге первым делом размещу загрузчик (в подкаталоге boot/grub/).

Сам GRUB в данном случае состоит из одного файла stage2_eltorito и конфигурационного файла menu.lst

Конфиг в может включать в себя следующее:

# задержка перед загрузкой ОС
timeout 3
# выбранная по умолчанию ОС
default 0
title FOS - FOS is Operating System (VERSION 0.0.29.1, BUILD 12887)
    root(cd0)
    kernel /root/kernel
title DOS/Windows
    root(hd0)
    chainloader +1

Путь к ядру в данном случае указан так - /root/kernel. Создаю каталог root, кладу в него ядро - файл kernel.

Теперь можно приступать к созданию образа. Для этого надо воспользоваться утилитой mkisofs. Версия под Windows есть на этой странице.

Создание образа производится в одно движение:

В Windows:

mkisofs -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table \
   -iso-level 3 -r -J \
   -publisher "Legos (http://osdev.ru/)" \
   -o image.iso  C:\projects\os\cdrom\


В Linux/*BSD:

genisoimage -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table \
   -iso-level 3 -r -J \
   -publisher "Legos (http://osdev.ru/)" \
   -o image.iso  ~/projects/os/cdrom/


Где:

  • projects\os\cdrom\ - путь к нашему каталогу с содержимым компакт-диска;
  • boot/grub/stage2_eltorito - расположение загрузчика в этом каталоге (GRUB надо размещать именно в этом каталоге!)
  • -publisher "Legos (http://osdev.ru/)" - копирайты.

Нажимаем "ввод", и, если всё правильно сделано, видим примерно следующее:

mkisofs -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table \
             -iso-level 3 -r -J \
             -publisher "Oleg Fedorov (o.s.fedorov@gmail.com)" \
             -o image.iso /home/oleg/fos/tmp/iso.image
I: -input-charset not specified, using utf-8 (detected in locale settings)
Size of boot image is 4 sectors -> No emulation
Total translation table size: 2048
Total rockridge attributes bytes: 20088
Total directory bytes: 88064
Path table size(bytes): 564
Max brk space used 20000
591 extents written (1 MB)


Всё! Готовый образ имеет имя image.iso. Образ прекрасно сжимается архиватором, и в сжатом виде для простых ОС имеет размер менее двух сотен килобайт!

Ссылки Править

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.