Как записать двоичный файл в сектор 0 дискеты, вставленной через USB-дискету в Windows 10 pro 64 bit

Привет, ребята. Я пишу операционную систему в сборке 16-битного NASM Windows 10 64-битной (если быть точным) и скомпилировал ее в 2 двоичных файла.bin:
kernel.bin
boot.bin
как вы можете догадаться, boot.bin загружает kernel.bin и создает файловую систему, вот и все. но проблема в том, что мне нужно протестировать его на реальной машине, чтобы проверить, как реагирует аппаратное обеспечение, а не только виртуальное! поэтому у меня есть дискеты (3,5" 1,44 МБ), этого более чем достаточно, но я попытался записать загрузчик (boot.bin) в сектор 0 дискеты с помощью дисковода гибких дисков usb (диск и дискеты работают так, как должны!) Я использую следующие шаги для установки ОС на дискету в cmd:

format A:
nasm -f bin kernel.asm -o KERNEL.BIN` 
copy KERNEL.BIN A:\KERNEL.BIN  
debug boot.bin  
w 100 0 0 1  
q

это загружается... но не правильно: это говорит это:

Пожалуйста, удалите все носители... нажмите любую клавишу для перезагрузки...`

и он перезагружается в Windows 10

ВОПРОС

Как я могу это исправить? Теперь я использую dosbox и debug.exe в dosbox (debug.exe из windows 7 x32), например: я копирую ядро ​​и записываю загрузчик, но на самом деле это работает! и загружает мою ОС!

1 ответ

Вполне вероятно, что ваша система является EFI или uEFI, а не традиционным BIOS, особенно если это было сделано за последние четыре или пять лет. Вы можете проверить конфигурацию системы при загрузке (перейдите в конфигурацию BIOS или EFI) и включить устаревший режим загрузки.

Также возможно, что ваше антивирусное программное обеспечение мешает вам писать молча в загрузочный сектор. Проверьте эти журналы и убедитесь, что ваша командная строка запускается от имени администратора.

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