Androidデバイスでbochsを使用してWindowsをエミュレートしようとしています。次のドライブがあります:Windowsをインストールするための空のディスクイメージ、セットアップファイルを含む仮想vvfatドライブ、および最新バージョンのDOSを搭載したCD-ROMドライブ。Bochsはすべてのドライブを正しく認識します。
問題は、DOSを起動すると、ディスクイメージが認識されないことです。 volコマンドを使用してドライブを識別しました。 Aはcdromに割り当てられ、Bは読み取りエラーを出し、Cは仮想vvfatドライブに割り当てられ、その他は割り当てられていませんでした。ただし、Bの読み取りエラーは、画像ファイルとは関係ありません。 cdromを除くすべてのドライブを切断した場合でも、エラーは発生します。おそらくエミュレートされたフロッピーディスクです。
問題は画像ファイルにあると思います。ターミナルで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で認識されるように端末でディスクイメージをフォーマットする方法を知っている人はいますか?
mkfs.vfat -F使用できます12または16のみ(32はDOSと互換性がありません)
mkfs.vfat -F 16 -f 2
32ビットファイルシステムを使用する必要があるため、自動メソッドはどのDOSプログラムとも互換性がないため回避する必要があります。
12ビットファイルシステムは、従来、フロッピーディスク用に予約されていました。ただし、最大サイズはFAT16の1/4または512mbです。
DOSでは、ハードドライブは通常FAT16です。これが特に私が16ビットを使用すると言った理由であり、小文字の-f 2はDOSが機能する方法である2つのコピーを示します。
特にDOSとの厳密な互換性が必要な場合は、mkdosfs
を使用してプロセス全体を合理化できます。 mkdosfs
には-C
フラグがあり、dd
ステップをスキップできます。 Win.img
という1.44MBのフロッピーディスクイメージを作成するには、mkdosfs -C /sdcard/Win.img 1440
と入力します。
ただし、問題のディスクイメージがフロッピーディスクの種類であるとは思えません。 Windows 3.0でさえ、インストール時に6〜8MBのディスクスペースを占有します。
空のハードドライブを含め、既製のハードドライブをインターネットからダウンロードできます。人々はそれらをCD-ROMのブートイメージとして使用します。
DOSのセクターサイズは512バイトであり、Windows 9xが以前のDOSとデュアルブートする場合は、パーティションを126MB未満にします。これは、win9xがfat32に変換しないfat16パーティションです。
パーティションを作成したら、DOS fdiskを使用してパーティションを作成し、フォーマットしてパーティションをフォーマットする必要があります。これはフロッピーから行うことができます。 volは、作成されたパーティションのみを表示します。プライマリパーティションを「アクティブ」に設定する必要があります。そうしないと、起動しません。
フォーマットしたら、ドライブをsys
して、DOS、Windowsをインストールできます。
デフォルトでは、fdiskは「Linux」タイプのパーティションを作成します。 「Windows」に変更する必要があります。 fdiskに戻り、(すでに入力したものの後に) "t"、 "1"、 "b"と入力します。保存して終了。