Перемещение скомпилированного ассемблерного кода в загрузочный сектор устройства 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-й Gen Zenbook с помощью USB и установить Debian?
  • Сделайте SD-карту для загрузки образа дистрибутива, созданного с помощью Yocto
  • Фиксирование неудачного CentOS 5.9 Шаг Grub
  • Debian, нет X, нет Интернета, как скомпилировать драйвер беспроводной сети?
  • Grub установлен на жесткий диск после ElementaryOS Установить на USB?
  • Черный экран при установке Fedora 16
  • Как установка CentOS работает изнутри?
  • Игнорировать проверку сертификата при извлечении файла кикстарта, который находится в ненадежном месте
  • 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. Обычно это просто загружает загрузочный сектор настроенного загрузочного носителя и запускает все, что там находит.

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

    Interesting Posts

    diff gzipped tarball против каталога?

    Линейный групповой обмен Linux chmod для root, которому принадлежит 770

    Преобразование горизонтального изображения в вертикальное с использованием imagemagick, заполнение пустое пространство вокруг с черным

    В разделе меню панели инструментов LXDE доступны категории и элементы приложения?

    Как обрабатывать агрессивные HTTP-запросы с одного и того же IP-адреса?

    Преобразование syslog-ng 3.0? формат формата 3.2

    Подключение к нескольким XServers

    CentOS против RedHat на hp DL 380 G5

    Переменная пустая, когда используется в выражении if, но не echo

    автозаполненные названные каталоги

    Переустановка только пакетов с отсутствующими или поврежденными файлами в нерабочей системе?

    Debian 8 – ядро ​​с vserver – apt не может найти пакеты

    , / path / to / a / shell-script-file? (в сценарии оболочки)

    Как я могу найти учетную запись пользователя в различных конфигурационных файлах, связанных с sudo?

    передача переменной tmux в shell-команду в tmux.conf

    Linux и Unix - лучшая ОС в мире.