Jakiej wersji MS-DOS używa Rufus do tworzenia rozruchowych urządzeń USB?

74

Rufus pozwala na utworzenie rozruchowego dysku flash MS-DOS. Robi to od razu po wyjęciu z pudełka, bez konieczności określania obrazu lub ISO.

Główny interfejs Rufus

Jednak dokumentacja na temat tego narzędzia praktycznie nie istnieje, i nie mogę znaleźć niczego, co określałoby, jakiej wersji DOS program używa w tym celu. Czy ktoś wie?

Hashim
źródło
1
Z ciekawości, dlaczego musisz to wiedzieć?
Ooker,
4
@Ooker - mieszanka ciekawości i powodów podanych w moim komentarzu do zaakceptowanej odpowiedzi. Musiałem przede wszystkim upewnić się, że nie był to już DOS 6.22 i dlatego nie marnowałem czasu na to, jak stworzyć bootowalny USB z 6.22.
Hashim
2
Prawie każdy inny organ, który nie ma konfliktu licencji, korzysta z FreeDOS dla tego rodzaju dysków rozruchowych.
eckes

Odpowiedzi:

197

Deweloper Rufus tutaj.

Jak słusznie wskazał @ magicandre1981, wersja MS-DOS dostarczona przez Rufusa to MS-DOS z Windows Millenium Edition, „nieprzepisana”, aby umożliwić rozruch (nie wymyśliłem tej poprawki, ale wybrałem ją z HP USB i innych przybory).

Ponadto, i jest to ważna część, Rufus NIE osadza plików MS-DOS w aplikacji, ale pobiera je z systemu Windows, z którego działa, ponieważ ponieważ pliki binarne MS-DOS są zastrzeżone i chronione prawami autorskimi firmy Microsoft, rozpowszechnianie plików binarnych MS-DOS, niezależnie od tego, czy jest to plik zip, czy aplikacja , jest nielegalne dla nikogo innego niż Microsoft (w rzeczywistości wygląda na to, że HP ma problemy prawne z Microsoftem, gdy próbują stworzyć wersję swojej Narzędzie HPUSBFW, które osadziło pliki MS-DOS systemu Windows 98, a Microsoft szybko sprawił, że przestały to robić).

A więc, aż do Windows 10, polegaliśmy na tym, że pliki MS-DOS (z Windows ME) były zawarte w DLL ( diskcopy.dll), którego Windows używa do tworzenia rozruchowych dyskietek DOS (które faktycznie zawierają kompletny rozruchowy obraz FAT) i wybrał stamtąd pliki, co możemy legalnie zrobić.

Jednak wraz z wprowadzeniem systemu Windows 10 Microsoft porzucił możliwość tworzenia dyskietek rozruchowych (ponieważ nikt nie używa systemu Windows 10 nie uruchamia się z dyskietki) i usunął diskcopy.dll. Oznacza to, że nie mamy legalnego sposobu na tworzenie rozruchowych dysków flash USB MS-DOS, a końcowy rezultat jest taki, że:

  • Jeśli korzystasz z Rufus w systemie Windows XP do Windows 8.1: możesz tworzyć rozruchowe USB z FreeDOS lub MS-DOS (edycja WinME).
  • Jeśli używasz Rufusa w systemie Windows 10 lub nowszym: masz możliwość tworzenia rozruchowych urządzeń USB tylko za pomocą FreeDOS.

W praktyce nie spotkałem się jeszcze z konkretnym raportem od osoby wskazującej, że FreeDOS nie działa tam, gdzie działa MS-DOS, dlatego nie uważam utraty obsługi MS-DOS w systemie Windows 10 za dużą stratę. Ponadto, w przeciwieństwie do korzystania z MS-DOS, który jest zamkniętym źródłem i który Microsoft już dawno przestał obsługiwać, FreeDOS jest Open Source i aktywnie wspierany, więc zwykle lepiej jest używać FreeDOS.

Akeo
źródło
4
Cześć kolego. Doceniam twoje ważenie i dziękuję za świetne narzędzie. Czy mógłbyś rzucić nieco światła tutaj: superuser.com/questions/1228065/… . Wydaje mi się, że nie mogę zmusić Rufusa do zainstalowania MS-DOS 6.22 z ISO, a z tego, co mówisz, nie wydaje się to kwestią prawną. Potrzebuję DOS 6.22, ponieważ nie mogę ryzykować użycia alternatywy, biorąc pod uwagę, że narzędzie, które uruchomię, jest niesamowicie niszowe i może potencjalnie zniszczyć drogie rzeczy, jeśli nie w 100% prawidłowe, więc naprawdę docenię twoją pomoc.
Hashim,
2
Nie mogłem użyć FreeDOS do flashowania BIOS-u na laptopie, ale mogłem użyć dysku rozruchowego systemu Windows 98. To powiedziawszy, wszystko, co musiałem zrobić, to wyjść i znaleźć obraz dysku rozruchowego online. To nie jest tak, że wysyła za to powiadomienia DMCA.
trlkly
7
Dobrze byłoby wyraźnie zaznaczyć, że ta wersja DOS z Windows ME jest oznaczona jako MS-DOS 8.0. Te z Windows 95a i 95OSR / 98 / 98SE były odpowiednio MS-DOS 7.0 i 7.1. Kilka osób będzie odnosić się do MS-DOS 7.11, ale nie jestem pewien, co jeśli to coś doda do 7.1
podkreślenie_d
3
MS-DOS 7.10 dodaje obsługę FAT32, @underscore_d. To duża różnica między 7.10 a 7.00. Zauważ też, że nie ma czegoś takiego jak „DOS 7.1”. Numery wersji MS są zawsze X.YY. Krążące w Internecie kopie DOS 7.1 są czymś, co niektórzy zebrali razem, biorąc kopię wersji DOS dostarczonej z 95OSR2 / 98 / 98SE i włamując się do COMMAND.COM za pomocą edytora tekstu, aby zrobić raport wersji 7.1. I oczywiście, dla kompletności, DOS 8.00 jest dostarczany z WinME, który usunął obsługę trybu rzeczywistego, więc DOS uruchamia się w trybie chronionym, ze zintegrowanym HIMEM.
Cody Gray
2
Poprawny. Brak partycji rozruchowej FAT32 przed MS-DOS 7.10. Albo jakakolwiek partycja FAT32! Nie będziesz także mieć dostępu do dużych dysków twardych, ponieważ te starsze wersje systemu DOS nie wiedzą nic o LBA ( adresowanie bloków logicznych ) i używają starych poleceń przerwania ROM BIOS dla operacji we / wy dysku, zamiast nowszej wersji „ INT 13h Extensions ". Inne ciekawostki: potrzebujesz MS-DOS 4.00 (oficjalnie, 3.3 nieoficjalnie z pewnymi ograniczeniami) do obsługi FAT16 (wcześniej obsługiwany był tylko FAT12). @Hashim
Cody Gray
36

Wyodrębnia wersję z pliku Windows 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)

patrząc na inne komentarze w dos.c, które są plikami DOS z WinME (DOS 8.0), robi to samo łatanie, jak pokazano tutaj :

* COMMAND.COM i IO.SYS z diskcopy.dll pochodzą z kaleki wersji WinME  
* usunięto DOS w trybie rzeczywistym => należy je załatać:  
* IO.SYS 000003AA 75 -> EB 
* COMMAND.COM 00006510 75 -> EB 
magicandre1981
źródło
Haha, pobity o 20 sekund. +1 od pracy detektywistycznej, zaglądanie do kodu źródłowego nawet mi się nie przydarzyło. Rzuciłem okiem na stronę Wikipedii w trybie rzeczywistym, ale wciąż jestem niejasny. W praktyce, co robi tryb rzeczywisty i czy ta łatka przywraca całą swoją funkcjonalność?
Hashim
Dla ciekawego tła natknąłem się również na problem, w którym programista / a mówi o tym: github.com/pbatard/rufus/issues/545
Hashim
11
tryb rzeczywisty to tryb w procesorze x86 z nieograniczonym bezpośrednim dostępem oprogramowania do całej adresowalnej pamięci, adresów I / O i sprzętu peryferyjnego. Tryb rzeczywisty nie obsługuje ochrony pamięci, wielozadaniowości ani poziomów uprawnień do kodu. Jest to jednak wymagane do rzeczywistego użycia DOS, ale spowodowało problemy ze stabilnością w Win95 i Win98. Po usunięciu WinME był bardziej stabilny
magicandre1981
ok, nadal używam Windows 8 na moim głównym laptopie i tutaj plik jest nadal dołączony. Ta opcja jest dostępna tylko w starszych wersjach.
magicandre1981
2
Oczywiście tryb rzeczywisty jest również ograniczony do 20-bitowej magistrali adresowej 8086/8088, więc możesz adresować tylko 1 MiB pamięci. 80286 zlikwidował to ograniczenie, rozszerzając do 24-bitowej magistrali adresowej i dodając tryb chroniony, umożliwiając CPU adresowanie 16 MiB pamięci (co było ogromną ilością pamięci RAM w 1982 r., Więcej niż większość komputerów miała ustaloną pamięć ). Kod w trybie chronionym 286 nie był tak powszechny w praktyce (patrzę na ciebie, OS / 2 i Xenix), a chociaż 80386 wprowadził 32-bitowy tryb chroniony w 1985 roku, minęła kolejna dekada przed trybem chronionym 32-bit oprogramowanie stało się dość powszechne na komputerach PC.
CVn
10

Postanowiłem to przetestować sam. Utworzyłem rozruchowy USB z systemem MS-DOS za pomocą Rufusa, a następnie uruchomiłem go na swoim laptopie. W MS-DOS uruchomiłem verpolecenie, aby ustalić jego wersję, która zwróciła Windows Millennium, czyli Windows ME.

Zgaduję, że oznacza to, że wersja MS-DOS używana przez Rufusa została pobrana z Windows ME, a nie jest jedną z wcześniejszych, samodzielnych wersji. Jak ta wersja zintegrowana z ME różni się od wcześniejszych wersji nie jestem do końca pewien.

Hashim
źródło
4
zobacz moją odpowiedź . Otrzymuje obraz DOS z pliku Windows
magicandre1981