Как записать двоичный файл в сектор 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) и включить устаревший режим загрузки.
Также возможно, что ваше антивирусное программное обеспечение мешает вам писать молча в загрузочный сектор. Проверьте эти журналы и убедитесь, что ваша командная строка запускается от имени администратора.