Установите гибкое изображение FAT12 с MBR

Я следую учебному руководству BrokenThorn о разработке ОС.
Windows используется в учебном руководстве, но я решил использовать Ubuntu, потому что процесс сборки лучше.

До сих пор у меня только была программа для Главной загрузочной записи.
Я использовал сценарий удара для создания

nasm -f bin -o boot.bin boot.asm
dd status=noxfer conv=notrunc if=boot.bin of=boot.flp
qemu-system-i386 -fda boot.flp

Теперь я в точке, где я хочу загрузить второй загрузчик Этапа. В учебном руководстве дискета имеет файловую систему FAT12. Таким образом, я пытался адаптировать это в своем сценарии сборки

mkfs.vfat -F 12 ./boot.flp

sudo mount -o loop ./boot.flp /media/floppy1/
nasm -f bin -o STAGE2.SYS stage2.asm
sudo cp ./STAGE2.SYS /media/floppy1/
sudo umount /media/floppy1/

nasm -f bin -o boot.bin boot.asm
dd status=noxfer conv=notrunc if=boot.bin of=boot.flp

qemu-system-i386 -fda boot.flp 

Изображение все еще загружается, но когда я пробую открытый изображение как циклическое устройство, Ubuntu отбрасывает ошибку

смонтируйтесь:/media/floppy1: неправильный тип фс, плохая опция, плохой суперблок на/dev/loop16, пропуская кодовую страницу или программу помощника или другую ошибку.

Таким образом, я думаю, что FAT12 повреждается.
Как я могу установить работу гибкое изображение FAT12 с моей собственной Главной загрузочной записью?

1
задан 11 January 2020 в 03:34

2 ответа

Прежде, чем создать файловую систему, необходимо разделить изображение и в случае, чтобы быть основным разделом с загрузочным флагом

0
ответ дан 11 January 2020 в 09:41

Я решил проблему, добавив элементы из блока параметров BIOS в качестве параметров в команду mkfs.vfat. Нет необходимости создавать раздел.

mkfs.vfat -F 12 ./boot.flp -f 2 -h 0 -i 0xa0a1a2a3 -I -n "NAME OF OS " -r 224 -R 1 -s 1 -S 512 
0
ответ дан 12 January 2020 в 09:09

Другие вопросы по тегам:

Похожие вопросы: