Перемещение скомпилированного ассемблерного кода в загрузочный сектор устройства USB

Я написал простую операционную систему, и я пытаюсь ее протестировать. У меня установлен VirtualBox и флэш-накопитель на восемь ГБ, поэтому я думал, что просто буду использовать их. Однако я не уверен, как сделать USB-накопитель загрузочным. Я выполнил множество учебников по созданию загрузочного образа iso, но ни VirtualBox, ни Disk Utility не могут его прочитать. Может ли кто-нибудь дать мне проверенный метод настройки USB-накопителя на загрузку?

Что у меня есть

  • Восемь-восемь флэш-накопителей

  • Виртуальная виртуальная машина

  • A .bin из кода сборки, скомпилированного с помощью nasm.

Что мне нужно

  • Простая и понятная информация о том, как заполнить загрузочный сектор устройства USB

  • Подталкивание в правильном направлении, если мне нужно что-то в дополнение к .bin

Существующий код

;********************************************* ; Boot1.asm ; - A Simple Bootloader ; ; Operating Systems Development Tutorial ;********************************************* org 0x7c00 ; We are loaded by BIOS at 0x7C00 bits 16 ; We are still in 16 bit Real Mode Start: cli ; Clear all Interrupts hlt ; halt the system times 510 - ($-$$) db 0 ; We have to be 512 bytes. Clear the rest of the bytes with 0 dw 0xAA55 ; Boot Signature 

Учебники, которые я выполнил

http://www.quilime.com/code/bootable_iso http://www.acm.uiuc.edu/sigops/roll_your_own/ http://www.brokenthorn.com/Resources/OSDevIndex.html http: // www. brokenthorn.com/Resources/OSDev1.html http://www.brokenthorn.com/Resources/OSDev2.html http://www.brokenthorn.com/Resources/OSDev3.html

2 Solutions collect form web for “Перемещение скомпилированного ассемблерного кода в загрузочный сектор устройства USB”

Типичным способом является использование dd . Ниже приведены инструкции загрузчика syslinux для установки mbr.bin в /dev/sda .

 dd bs=440 count=1 conv=notrunc if=mbr/mbr.bin of=/dev/sda 

Здесь /dev/sda является целевым устройством. ( of «выходного файла».)

Вы замените это на имя устройства вашего USB-накопителя.

Хорошо, вы на самом деле минимальная ОС. Теперь вам нужно получить какую-то машину для ее загрузки.

Независимо от того, какую машину вы используете (ваш ноутбук, виртуальный бокс и т. Д.), Когда он запускается, для загрузки и запуска ОС требуется некоторый ПЗУ, содержащий код. Обычно это что-то вроде BIOS. Обычно это просто загружает загрузочный сектор настроенного загрузочного носителя и запускает все, что там находит.

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

  • Сделайте SD-карту для загрузки образа дистрибутива, созданного с помощью Yocto
  • Самый простой способ установить установку Linux Desktop на VirtualBox
  • GRUB2 не обнаруживает Windows; rootnoverify: команда не найдена
  • Требует ли CentOS 5.9 Grub для работы на аппаратном RAID?
  • Установщик Linux Mint не видит fakeraid drive
  • Linux и Unix - лучшая ОС в мире.