Wie formatiere ich ein Disk-Image, das von MS-DOS erkannt werden soll?

1415
Jaïr Paalman

Ich versuche, Windows mit Bohren auf meinem Android-Gerät zu emulieren. Ich habe folgende Laufwerke: ein leeres Festplatten-Image, auf dem Windows installiert werden soll, ein virtuelles vvfat-Laufwerk mit den Setup-Dateien und ein CD-ROM-Laufwerk mit der neuesten Version von DOS. Bochs erkennt alle Laufwerke richtig.

Das Problem ist, wenn ich in DOS boote, wird das Image nicht erkannt. Ich habe den Befehl vol verwendet, um die Laufwerke zu identifizieren. A wurde dem CD-ROM zugewiesen, B gab einen Lesefehler aus, C wurde dem virtuellen VVFAT-Laufwerk zugewiesen und die anderen wurden nicht zugewiesen. Der Lesefehler B hat jedoch nichts mit der Bilddatei zu tun. Wenn ich alle Laufwerke außer dem CD-ROM-Laufwerk getrennt habe, wäre der Fehler immer noch vorhanden. Es ist wahrscheinlich eine emulierte Diskette.

Ich denke, das Problem liegt in der Bilddatei. Ich habe es mit dd in terminal gemacht. Ich habe folgende Konfiguration verwendet:

dd if=/dev/zero of=/sdcard/Win.img bs=64k count=8192 

Und formatiert mit:

mkfs.vfat /sdcard/Win.img 

Es hat nicht funktioniert. Dann habe ich herausgefunden, dass alte Windows-Versionen nur Block- oder Clustergrößen von bis zu 4 KB unterstützen, also habe ich eine neue erstellt:

dd if=/dev/zero of=/sdcard/Win.img bs=4k count=131072 

Und wieder mit mkfs.vfat formatiert.

Da es immer noch nicht funktionierte, begann ich mit den Dateisystemen und Partitionen zu experimentieren. Ich habe fdisk verwendet, um das Image zu partitionieren:

fdisk /sdcard/Win.img, n, p, 1, 1, 65 

Aber immer noch kein Ergebnis. Vielleicht habe ich hier etwas falsch gemacht, weil ich beim Ausdrucken der Partitionstabelle am Ende Linux sagen würde.

Meine Frage ist: Weiß jemand, wie man ein Disk-Image mit Terminal formatiert, damit es von DOS erkannt wird?

2
DOS erkennt nur FAT16. und keine Partitionen> 2 GB jemals. cybernard vor 8 Jahren 0
Ich habe versucht, DOS dazu zu bringen, das Laufwerk zu erkennen, weil ich dachte, Windows-Setup brauche das, um es auch zu erkennen. Es scheint, dass dies nicht der Fall ist, aber nachdem ich es mit fdisk in DOS partitioniert habe, hätte ich es mit dem Befehl format formatieren sollen. Trotzdem danke ich Ihnen allen sehr, denn Sie haben die Frage gelöst. Jaïr Paalman vor 8 Jahren 0
Die "Blockgröße", die Sie im Befehl dd angegeben haben, hat nichts mit der tatsächlichen Blockgröße zu tun, die von mkfs erstellt wird. Beide dd-Befehle sind gleichwertig. ilkhd vor 8 Jahren 1

4 Antworten auf die Frage

1
cybernard

mkfs.vfat -F Sie können NUR 12 oder 16 verwenden (32 ist mit DOS nicht kompatibel).

mkfs.vfat -F 16 -f 2

Sie müssen die automatische Methode vermeiden, da ein 32-Bit-Dateisystem verwendet werden soll, das mit jedem DOS-Programm nicht kompatibel ist.

Das 12-Bit-Dateisystem ist traditionell für Disketten reserviert. Es kann zwar verwendet werden, seine maximale Größe beträgt 1/4 oder 512 MB FAT16.

In DOS sind Festplatten normalerweise FAT16. Dies ist insbesondere der Grund, warum ich gesagt habe, 16 Bits zu verwenden, und der Kleinbuchstabe -f 2 zeigt 2 Kopien an, so wie DOS arbeitet.

Dies ist nicht korrekt. "-F FAT-Größe - Gibt den Typ der verwendeten Dateizuordnungstabellen an (12, 16 oder 32 Bit). Wenn nichts angegeben ist, wählt mkdosfs automatisch zwischen 12, 16 und 32 Bit, je nachdem, was besser für das Dateisystem geeignet ist Dateisystemgröße. " [mkfs.vfat (8) - Linux-Handbuchseite] (http://linux.die.net/man/8/mkfs.vfat) DavidPostill vor 8 Jahren 0
@DavidPostill Ja, die Dokumente geben an, dass sie automatisch ausgewählt werden, aber wenn 32 Bit automatisch ausgewählt wird, erkennt DOS das Dateisystem nicht. Der Benutzer kann davon ausgehen, dass er ein 10-GB-Dateisystem hat, aber wenn 16 Bit angegeben wird, schlägt das System fehl und teilt ihm den Fehler mit. cybernard vor 8 Jahren 0
Dann sollten Sie dies zu Ihrer Antwort hinzufügen, um zu erklären, warum 32 nicht verwendet werden sollte. Ihre aktuelle Antwort ist nicht klar, wenn sie lautet, als wäre 32 kein zulässiger Wert, wenn dies der Fall ist. Erklären Sie auch, warum 16 und nicht 12 verwendet wird. DavidPostill vor 8 Jahren 2
1
wendy.krieger

Sie können vorgefertigte Festplatten einschließlich leerer Festplatten aus dem Internet herunterladen. Leute benutzen sie als Startabbilder für CD-ROMs.

DOS hat eine Sektorgröße von 512 Bytes, und wenn Windows 9x mit einem früheren DOS doppelt booten soll, müssen die Partitionen weniger als 126 MB betragen. Dies ist eine fat16-Partition, die von win9x nicht in fat32 konvertiert wird.

Wenn Sie eine Partition in Gang setzen, müssen Sie zum Erstellen von Partitionen DOS fdisk verwenden und das Formatieren der Partitionen formatieren. Sie können dies von der Diskette aus tun. vol sieht nur die erstellten Partitionen. Sie müssen eine primäre Partition als "aktiv" festlegen, sonst wird sie nicht gestartet.

Einmal formatiert, können Sie sysdas Laufwerk und DOS, Windows installieren.

0
Larssend

Sie können den gesamten Prozess optimieren mkdosfs, insbesondere wenn Sie eine strikte Kompatibilität mit DOS benötigen. mkdosfshat die -CFlagge, mit der Sie den ddSchritt überspringen können . Um ein 1,44-MB-Disketten-Image zu erstellen, geben Sie Folgendes Win.imgein mkdosfs -C /sdcard/Win.img 1440.

Ich bezweifle jedoch, dass das Problem-Disk-Image von Diskettenvarianten ist. Sogar Windows 3.0 benötigt bei der Installation 6-8 MB Speicherplatz.

Ich habe mkdosfs ausprobiert und es hat nicht funktioniert. Ich verwende jedoch ein 512-MB-Disk-Image und kein 1,44-MB-Disketten-Image. Jaïr Paalman vor 8 Jahren 0
0
ilkhd

Standardmäßig erstellt fdisk Partitionen vom Typ "Linux". Sie müssen es in "Windows" ändern. Gehen Sie zurück zu fdisk und geben Sie (nach dem, was Sie bereits eingegeben haben) "t", "1", "b" ein. Speichern und schließen.