Я пишу загрузчик в сборке 8086 под Windows, используя NASM. После его создания я пишу его на USB-носитель 16 ГБ с файловой системой FAT32, используя служебную программу DD. Команда я использую, чтобы обновить MBR является:Почему Windows запрашивает форматирование USB-накопителя при замене MBR?
dd if=source.bin od=drive: bs=512 count=1
После использования DD обновить MBR, Windows просит меня отформатировать. Почему Windows это делает? Это потому, что я исказил файловую систему? Как я могу исправить это, так что запись моего MBR не заставит Windows думать, что мне может понадобиться переформатировать USB-накопитель?
В моем загрузчике/загрузчике есть блок параметров BIOS для файловой системы FAT32. Несмотря на это, моя проблема сохраняется.
есть ли таблица разделов на USB, если нет, это будет непризнано. Обратите внимание на таблицу параметров BIOS <>. – t0mm13b
Я не знаю. Но я просто выполнил формат (не быстрый), прежде чем записывать файл в загрузочный сектор. –
Windows разбивает и форматирует дискету иначе, чем USB-устройство. На дискете нет данных раздела, а информации в BPB достаточно для определения файловой системы на носителе. Когда Windows разбивает и форматирует USB-устройство, на самом деле он размещает MBR на диске с BPB и содержит таблицу [Partition table] (http://wiki.osdev.org/Partition_Table) в последних 64 байтах MBR, It будет иметь один раздел, и он будет отмечен как активный. Вероятно, у вас нет таблицы разделов в вашем загрузчике. Когда вы пишете свой диск на диске, Windows не видит таблиц разделов и запросов в формат –