Android デバイスで、bochs を使用して Windows をエミュレートしようとしています。次のドライブがあります: Windows をインストールするための空のディスク イメージ、セットアップ ファイルを含む仮想 vvfat ドライブ、および最新バージョンの DOS を含む cd-rom ドライブ。Bochs はすべてのドライブを正しく認識します。
問題は、DOS を起動するとディスク イメージが認識されないことです。ドライブを識別するために vol コマンドを使用しました。A は CD-ROM に割り当てられ、B は読み取りエラーを発生し、C は仮想 vvfat ドライブに割り当てられ、その他は未割り当てでした。ただし、B が発生させた読み取りエラーはイメージ ファイルとは関係ありません。CD-ROM 以外のすべてのドライブを切断しても、エラーはそのまま残ります。おそらく、エミュレートされたフロッピー ディスクです。
問題はイメージ ファイルにあると思います。ターミナルで dd を使用して作成しました。次の構成を使用しました。
dd if=/dev/zero of=/sdcard/Win.img bs=64k count=8192
そして次のようにフォーマットしました:
mkfs.vfat /sdcard/Win.img
うまくいきませんでした。その後、古いバージョンの Windows では最大 4 KB のブロックまたはクラスター サイズしかサポートされていないことがわかったので、新しいものを作成しました。
dd if=/dev/zero of=/sdcard/Win.img bs=4k count=131072
そして再度、mkfs.vfat でフォーマットしました。
それでもうまくいかなかったので、ファイルシステムとパーティションの実験を始めました。イメージをパーティション分割するために fdisk を使用しました。
fdisk /sdcard/Win.img, n, p, 1, 1, 65
しかし、まだ結果が出ません。パーティション テーブルを印刷すると、最後に linux と表示されるので、ここで何か間違ったことをしたのかもしれません。
私の質問は、DOS で認識されるように、ターミナルでディスク イメージをフォーマットする方法を知っている人はいますか?
答え1
mkfs.vfat -F を使用することができます12または16のみ。(32 は DOS と互換性がありません)
mkfs.vfat -F 16 -f 2
自動方法は、32 ビット ファイル システムを使用する必要があり、どの DOS プログラムとも互換性がないため、使用を避ける必要があります。
12 ビット ファイル システムは、伝統的にフロッピー ディスク用に予約されています。ただし、その最大サイズは FAT16 の 1/4 または 512 MB です。
DOSのハードドライブは通常FAT16です。これが、16ビットと小文字を使用するように言った理由です。-f 2DOS の動作方法である 2 つのコピーを示します。
答え2
mkdosfs
特に DOS との厳密な互換性が必要な場合は、を使用してプロセス全体を効率化できます。 には、手順をスキップできるフラグmkdosfs
があります。 という 1.44MB のフロッピー ディスク イメージを作成するには、 と入力します。-C
dd
Win.img
mkdosfs -C /sdcard/Win.img 1440
しかし、問題となっているディスク イメージがフロッピー ディスクの種類である可能性は低いと思います。Windows 3.0 でも、インストール時に 6 ~ 8 MB のディスク領域を占有します。
答え3
既製のハード ドライブ (空のものも含む) をインターネットからダウンロードできます。人々はそれらを CD-ROM のブート イメージとして使用します。
DOS のセクター サイズは 512 バイトです。Windows 9x を以前の DOS とデュアル ブートする場合は、パーティションを 126 MB 未満にしてください。これは、Win9x では fat32 に変換されない fat16 パーティションです。
パーティションが動作しているときは、DOS fdisk を使用してパーティションを作成し、format を使用してパーティションをフォーマットする必要があります。これはフロッピーから実行できます。vol は作成されたパーティションのみを認識します。プライマリ パーティションを「アクティブ」に設定しないと、起動しません。
フォーマットが完了すると、sys
ドライブに DOS、Windows などをインストールできるようになります。
答え4
デフォルトでは、fdisk は「Linux」タイプのパーティションを作成します。これを「Windows」に変更する必要があります。fdisk に戻り、(既に入力した内容の後に)「t」、「1」、「b」と入力します。保存して終了します。