Разработка ОС.Создание загрузочного ISO из файлов. - PullRequest
0 голосов
/ 18 ноября 2018

Я изучаю разработку ОС и использую ресурс brokenthorn, но использую немного другой инструмент, а именно CentOS, NASM и Qemu в качестве среды тестирования / разработки. Я столкнулся с некоторыми проблемами при создании загрузочного IMG-файла со вторичным загрузчиком.

У меня есть два файла: 1. bootloader.bin, который является загрузчиком первой стадии. 2. stage2.bin, который является вторичным загрузчиком.

Чтобы создать загрузочный файл img, я делаю следующее:

  • dd if = / dev / zero of = floppy.iso bs = 1024 count = 1440 - Создание пустого файла
  • mkfs.vfat -F 12 floppy.iso - Создание файловой системы в файле
  • dd if = .. / bin / bootloader.bin of = floppy.iso bs = 512 count = 1 conv = notrunc - Запись первого загрузчика в загрузочный сектор
  • sudo mount -o loop floppy.iso / mnt / floppy / - Попробуйте смонтировать файловую систему для записи вторичного загрузчика, используя ранее созданную файловую систему FAT-12.

На последнем шаге я получаю следующую ошибку:

mount: /dev/loop0 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

Не могли бы вы помочь мне понять, что я делаю неправильно, и какие еще способы я могу использовать для создания загрузочного img с файловой системой на борту. Спасибо!

1 Ответ

0 голосов
/ 23 ноября 2018

Однажды я наткнулся на подобную проблему, и этот ответ может быть вам полезен.

Однако я настоятельно рекомендую вам переключиться на загрузчик, такой как Grub, и тратить время и силы на разработку реальной вашей ОС. Для этого я бы порекомендовал grub resque, поскольку он прост в использовании и позволяет быстро создавать ISO-образы, которые можно либо записывать, либо передавать на виртуальную машину. В противном случае вы можете просто утонуть во всех этих незначительных вещах, таких как включение защищенного режима, загрузка этапов и т. Д.

...