NASMを使用してWindowsで8086アセンブリにブートローダを作成しています。それを構築した後、DDユーティリティを使用して、16GBのUSBメディアにFAT32ファイルシステムで書き込みます。私はMBRを更新するために使用するコマンドは、次のとおりです。MBRを交換するとWindowsがUSBドライブのフォーマットを促すのはなぜですか?
dd if=source.bin od=drive: bs=512 count=1
MBRを更新するDDを使用した後、Windowsがそれをフォーマットするために私に尋ねます。なぜWindowsはこれをしますか?私はファイルシステムを壊してしまったのでしょうか? MBRを書き込んでもWindowsがUSBドライブを再フォーマットする必要があると思わないように、どうすればこの問題を修正できますか?
私のブートローダ/ブートセクタには、FAT32ファイルシステム用のBIOSパラメータブロックが含まれています。それにもかかわらず、私の問題は続く。
パーティションテーブルがUSBにあります。そうでない場合は、認識できません。注意、BIOSパラメータブロック<>パーティションテーブル。 – t0mm13b
私は分かりません。しかし、私はブートセクタにファイルを書き込む前にフォーマットを実行しました(速いものではありません)。 –
WindowsはUSBデバイスとは異なる方法でフロッピーをパーティション分割してフォーマットします。フロッピーにはパーティションデータはなく、BPBの情報はメディア上のファイルシステムを定義するのに十分です。 WindowsがUSBデバイスをパーティション分割してフォーマットすると、実際にはBPBを使ってディスク上にMBRが配置され、MBRの最後の64バイトに[Partition table](http://wiki.osdev.org/Partition_Table)が含まれています。あなたのブートローダにパーティションテーブルはありません。あなたがディスクにあなたの書き込みをすると、Windowsはパーティションテーブルとフォーマット要求を表示しません。 –