Welche Version von MS-DOS verwendet Rufus, um bootfähige USBs zu erstellen?

16387
Hashim

Rufus ermöglicht die Erstellung eines bootfähigen MS-DOS-Flashlaufwerks. Dies ist optional als Option möglich, ohne dass ein Image oder ISO angegeben werden muss.

Rufus Hauptschnittstelle

Die Dokumentation zu diesem Tool ist jedoch so gut wie nicht vorhanden, und ich kann nichts finden, das angibt, welche DOS-Version das Programm für diesen Zweck verwendet. Weiß jemand?

74
Warum müssen Sie das aus Neugier wissen? Ooker vor 6 Jahren 1
@Ooker - Eine Mischung aus Neugier und den in meinem Kommentar zur akzeptierten Antwort angegebenen Gründen. Ich musste vor allem sicherstellen, dass es nicht bereits DOS 6.22 war und dass ich deshalb keine Zeit verschwendete, um herauszufinden, wie man einen bootfähigen USB aus 6.22 erstellt. Hashim vor 6 Jahren 4
Nahezu jeder andere Körper, der nicht in Lizenzkonflikte gerät, verwendet FreeDOS für diese Art von Bootdisketten. eckes vor 6 Jahren 2

3 Antworten auf die Frage

198
Akeo

Rufus-Entwickler hier.

Wie von @ magicandre1981 richtig angegeben, ist die von Rufus bereitgestellte Version von MS-DOS die MS-DOS-Version von Windows Millenium Edition, die "uncrippled" ist, um den Start zu ermöglichen (ich habe diesen Patch nicht erfunden, sondern ihn von HP USB und anderen Geräten abgeholt Werkzeuge).

Außerdem, und dies ist der wichtige Teil, bettet Rufus die MS-DOS-Dateien NICHT in die Anwendung ein, sondern holt sie von dem Windows-System ab, von dem aus er ausgeführt wird, da die MS-DOS-Binärdateien urheberrechtlich geschützt sind und von Microsoft urheberrechtlich geschützt sind. Es ist für alle anderen als Microsoft illegal, MS-DOS-Binärdateien zu verteilen, sei es in einer ZIP-Datei oder in einer Anwendung (tatsächlich scheint es, dass HP rechtliche Probleme mit Microsoft hatte, als sie versuchten, eine Version von Microsoft zu erstellen HPUSBFW-Dienstprogramm, das die MS-DOS-Dateien von Windows 98 eingebettet hat, und Microsoft hat sie schnell dazu gebracht, dies zu beenden).

Bis auf Windows 10 haben wir uns also auf die Tatsache verlassen, dass die MS-DOS-Dateien (von Windows ME) in der DLL ( diskcopy.dll) enthalten waren, die Windows zum Erstellen von startfähigen DOS-Disketten verwendet (die tatsächlich ein vollständig startbares Disketten-FAT-Image enthalten). und holte die Dateien von dort aus, was wir legal tun können.

Mit der Einführung von Windows 10 hat Microsoft jedoch die Möglichkeit zum Erstellen bootfähiger Disketten (da niemand, der Windows 10 verwendet, voraussichtlich von Diskette booten soll) eingestellt und entfernt diskcopy.dll. Das bedeutet, dass wir keine legale Möglichkeit mehr haben, MS-DOS-bootfähige USB-Flash-Laufwerke zu erstellen, und das Endergebnis lautet:

  • Wenn Sie Rufus unter Windows XP bis Windows 8.1 verwenden: Sie haben die Möglichkeit, bootfähige USBs entweder mit FreeDOS oder MS-DOS (WinME-Edition) zu erstellen .
  • Wenn Sie Rufus unter Windows 10 oder höher verwenden, können Sie bootfähige USB-Geräte nur mit FreeDOS erstellen.

In der Praxis habe ich noch keinen konkreten Bericht von jemandem gefunden, der darauf hinweist, dass FreeDOS nicht dort funktioniert, wo MS-DOS funktioniert. Aus diesem Grund betrachte ich den Verlust der MS-DOS-Unterstützung in Windows 10 nicht als großen Verlust. Im Gegensatz zur Verwendung von MS-DOS, das Closed Source ist und von Microsoft seit langem nicht mehr unterstützt wird, ist FreeDOS Open Source und wird aktiv unterstützt. Daher ist die Verwendung von FreeDOS normalerweise viel besser.

Hey Kumpel. Ich weiß es zu schätzen, und ich danke Ihnen für ein großartiges Werkzeug. Haben Sie etwas dagegen, hier etwas Licht zu werfen: https://superuser.com/questions/1228065/how-do-i-create-a-bootable-flash-drive-running-ms-dos-6-22. Ich kann Rufus nicht dazu bringen, MS-DOS 6.22 von einer ISO zu installieren, und nach allem, was Sie sagen, scheint dies kein rechtliches Problem zu sein. Ich brauche DOS 6.22, weil ich keine Alternative riskieren kann, da das Dienstprogramm, das ich ausführen werde, eine unglaubliche Nische ist und das Potenzial hat, teure Dinge zu brechen, wenn es nicht 100% richtig ist. Ich würde mich also wirklich über Ihre Hilfe freuen. Hashim vor 6 Jahren 4
Ich konnte FreeDOS nicht zum Flashen meines BIOS auf meinem Laptop verwenden, konnte jedoch eine Windows 98-Startdiskette verwenden. Das heißt, ich musste nur rausgehen und online ein Bootdisk-Image finden. Es ist nicht so, als würde DMCA-Benachrichtigungen darüber aussenden. trlkly vor 6 Jahren 2
Es ist gut zu erwähnen, dass diese Version von DOS von Windows ME als MS-DOS 8.0 gestempelt wird. Die von Windows 95a und 95OSR / 98 / 98SE waren MS-DOS 7.0 und 7.1. Ein paar Leute werden auf ein MS-DOS 7.11 verweisen, aber ich bin nicht sicher, was, wenn es etwas zu 7.1 hinzugefügt hat underscore_d vor 6 Jahren 7
MS-DOS 7.10 fügt die Unterstützung für FAT32 hinzu, @underscore_d. Das ist der große Unterschied zwischen 7.10 und 7.00. Beachten Sie auch, dass es "DOS 7.1" nicht gibt. Die Versionsnummern von MS lauten immer X.YY. Die Kopien von DOS 7.1, die im Web verbreitet werden, sind etwas, das einige Personen zusammengestellt haben. Sie nehmen eine Kopie der mit 95OSR2 / 98 / 98SE gelieferten DOS-Version und hacken die COMMAND.COM mit einem Texteditor, um die Version 7.1 zu erstellen. Und natürlich ist DOS 8.00 nur aus Gründen der Vollständigkeit diejenige, die im Lieferumfang von WinME enthalten ist und die Real-Modus-Unterstützung entfernt hat. DOS bootet dann in den geschützten Modus, wobei HIMEM integriert ist. Cody Gray vor 6 Jahren 3
@CodyGray Nun, natürlich mit 7.1 meinte ich 7,10; Ich habe nicht speziell an ein Release eines Drittanbieters gedacht, das sich ohne die nachgestellten 0 markiert hat. Vielen Dank für die zusätzlichen Details! underscore_d vor 6 Jahren 0
@CodyGray - bedeutet dies für die Unterstützung von FAT32, dass Versionen von MS-DOS vor 7.10 nicht auf einem FAT32-formatierten bootfähigen USB ausgeführt werden können? Oder gilt die Unterstützung von FAT32 nur für die Festplatten und Peripheriegeräte, die innerhalb des Betriebssystems einmal erkannt werden? Hashim vor 6 Jahren 0
@Hashim Ich bin ziemlich sicher, dass Sie DOS-Versionen vor 7.10 auf einem FAT32-Laufwerk nicht direkt starten können. Tools wie UnetBootIn verwenden Bootloader, um ein Disketten-Image (FAT12) zu laden und von diesem zu booten. trlkly vor 6 Jahren 1
Richtig. Keine FAT32-Startpartition vor MS-DOS 7.10. Oder eine * beliebige * FAT32-Partition! Sie können auch nicht auf große Festplatten zugreifen, da diese älteren DOS-Versionen nichts über LBA (logische Blockadressierung (https://en.wikipedia.org/wiki/Logical_block_addressing)) und über sie wissen Verwenden Sie alte ROM-BIOS-Interrupt-Aufrufe für Festplatten-E / A anstelle der neueren "INT 13h Extensions". Andere Kleinigkeiten: Sie benötigen MS-DOS 4.00 (offiziell 3.3 inoffiziell mit gewissen Einschränkungen), um FAT16 zu unterstützen (zuvor wurde nur FAT12 unterstützt). @Hashim Cody Gray vor 6 Jahren 2
FreeDOS hat jedoch FAT32-Unterstützung, und es kann, glaube ich, bis auf eine 8086 zurück laufen. Das ist ziemlich cool und geht im letzten Absatz auf Akeos Punkt ein. Ich bin jedoch kein Experte für DOS-Kompatibilität, daher kann ich auch nicht mit dieser hängenden Frage sprechen. Ich benutze FreeDOS nicht persönlich, da ich nur DOS auf meinen Vintage-Rechnern betreibe und diese authentisch halte. Cody Gray vor 6 Jahren 1
Ich sollte also nur MS-DOS 6.22 auf einem FAT16 USB ausführen können? Das ist seltsam. In den letzten Tagen bin ich von der Verwendung einzelner bootfähiger Medienersteller wie Rufus zu Multiboot-Herstellern wie WinSetupFromUSB und YUMI übergegangen, und es ist mir gelungen, dass das gleiche ISO von DOS 6.22 auf beiden Systemen ausgeführt wird. Das einzige, was mir bei der DOS-Kompatibilität Probleme bereitet, ist, dass im Gegensatz zum Erstellen eines bootfähigen Betriebssystems das Kopieren der DOS-Dienstprogramme in den Root-Ordner nicht ausreicht, damit DOS diese beim Booten finden kann und ich bin mir nicht sicher, wohin sie gehen sollen. DOS selbst scheint gut zu laufen. Hashim vor 6 Jahren 0
Sollte hinzugefügt haben, dass beide Programme den USB als FAT32 formatiert haben. Hashim vor 6 Jahren 0
Wie bereits erwähnt, verwenden diese Tools einen Bootloader, um eine Disketten-Image-Datei von der Diskette zu laden. (Bootfähige CDs enthalten ein Disketten-Image.) Der Bootloader kann FAT32 lesen, DOS jedoch nicht. Zum Booten von DOS lädt der Bootloader das Disketten-Image in den Speicher und behandelt es wie ein Diskettenlaufwerk. Anschließend bootet es vom Disk-Image. DOS kann die FAT32-Diskette nicht lesen, aber die virtuelle Diskette kann gelesen werden. @Hashim trlkly vor 6 Jahren 1
36
magicandre1981

Er extrahiert die Version aus der Windows-Datei diskcopy.dll

/* Extract the MS-DOS files contained in the FAT12 1.4MB floppy image included as resource "BINFILE" in diskcopy.dll */ static BOOL ExtractMSDOS(const char* path) 

Wenn Sie sich andere Kommentare in dos.c ansehen, die die DOS-Dateien von WinME (DOS 8.0) sind, führt er das gleiche Patchen wie hier gezeigt aus :

* COMMAND.COM und IO.SYS von diskcopy.dll stammen aus der verkrüppelten WinME-Version  * das entfernte Real-Modus-DOS => sie müssen gepatcht werden:  * IO.SYS 000003AA 75 -> EB  * COMMAND.COM 00006510 75 -> EB  
Haha, um 20 Sekunden geschlagen. +1 auf die Detektivarbeit, den Quellcode zu betrachten, fiel mir nicht ein. Ich habe mir die Wikipedia-Seite im Real-Modus angesehen, bin aber noch etwas unklar. Was macht der Real-Modus praktisch aus, und stellt dieser Patch seine gesamte Funktionalität wieder her? Hashim vor 6 Jahren 0
Nur für einige interessante Hintergründe bin ich auch auf ein Problem gestoßen, bei dem der / ein Entwickler darüber spricht: https://github.com/pbatard/rufus/issues/545 Hashim vor 6 Jahren 0
Real Mode ist ein Modus in [x86 cpus] (https://en.wikipedia.org/wiki/Real_mode) mit uneingeschränktem direktem Softwarezugriff auf alle adressierbaren Speicher, E / A-Adressen und Peripheriegeräte. Der Real-Modus bietet keine Unterstützung für Speicherschutz-, Multitasking- oder Code-Privilegien. Dies ist jedoch für echte DOS-Anwendungen erforderlich, führte jedoch zu Stabilitätsproblemen in Win95 und Win98. Mit dieser Entfernung war WinME stabiler magicandre1981 vor 6 Jahren 10
ok, ich benutze immer noch windows 8 auf meinem hauptlaptop und hier ist die datei noch enthalten. Daher wird diese Option nur bei älteren Versionen angeboten. magicandre1981 vor 6 Jahren 0
Natürlich ist der Real-Modus auch auf den 20-Bit-Adressbus des 8086/8088 beschränkt, sodass Sie nur 1 MB Speicher adressieren können. Der 80286 hob diese Einschränkung auf, indem er auf einen 24-Bit-Adressbus erweitert wurde und den geschützten Modus hinzufügte. Dadurch konnte die CPU 16 MiB Speicherplatz adressieren (was 1982 eine riesige Menge an RAM war, mehr als die meisten PCs mit * festem Speicher * hatten). 286-Code für den geschützten Modus war in der Praxis nicht alltäglich (ich betrachte Sie, OS / 2 und Xenix), und obwohl der 80386 den 32-Bit-Schutzmodus im Jahr 1985 einführte, dauerte es ein weiteres Jahrzehnt, bis der Schutzmodus 32-Bit war Software wurde auf PCs ziemlich üblich. a CVn vor 6 Jahren 2
10
Hashim

Ich habe mich entschieden, es selbst zu testen. Ich habe einen bootfähigen USB-Stick mit MS-DOS mit Rufus erstellt und ihn dann auf meinem Laptop gestartet. Einmal in MS-DOS habe ich den verBefehl ausgeführt, um die Version zu ermitteln, die Windows Millennium (Windows ME) zurückgab.

Ich vermute, dass dies bedeutet, dass die von Rufus verwendete MS-DOS-Version von Windows ME abgerufen wird und nicht eine der früheren Standalone-Versionen ist. Wie sich diese ME-integrierte Version von den früheren Versionen unterscheidet, bin ich nicht ganz sicher.

Siehe meine [Antwort] (https://superuser.com/a/1228138/174557). Er erhält das DOS-Abbild aus der Windows-Datei magicandre1981 vor 6 Jahren 4