題 Rufus用什麼版本的MS-DOS製作可啟動USB?


魯弗斯 允許創建可啟動的MS-DOS閃存驅動器。它可以作為選項開箱即用,無需指定圖像或ISO。

Rufus main interface

但是,該工具的文檔幾乎不存在,我找不到任何指定程序用於此目的的DOS版本的內容。有人知道嗎?


74
2017-07-09 05:40


起源


出於好奇,你為什麼需要知道? - Ooker
@Ooker - 好奇心和我對已接受答案的評論中給出的理由的混合。我主要需要確定它不是DOS 6.22,因此我沒有浪費時間了解如何從6.22創建可啟動USB。 - Hashim
幾乎所有未獲得許可證衝突的其他人都使用FreeDOS來處理這類引導磁盤。 - eckes


答案:


Rufus開發人員在這裡。

正如所指出的那樣 @ magicandre1981 Rufus提供的MS-DOS版本是Windows Millenium Edition的MS-DOS,“uncrippled”啟用啟動(我沒有發明這個補丁,但是從HP USB和其他工具中選擇了它)。

此外,這是Rufus的重要組成部分  將MS-DOS文件嵌入到應用程序中,但是從它運行的Windows系統中選擇它們,因為,因為MS-DOS二進製文件是Microsoft的專有和版權所有,所以它是 非法 除了微軟以外的其他任何人分發MS-DOS二進製文件,無論是在zip文件還是應用程序中(事實上,當他們試圖生產他們的HPUSBFW實用程序的版本時,惠普似乎遇到了法律問題。嵌入Windows 98 MS-DOS文件,微軟很快讓他們停止這樣做)。

因此,在Windows 10之前,我們依賴於MS-DOS文件(來自Windows ME)包含在DLL中的事實(diskcopy.dllWindows用於創建DOS可啟動軟盤(實際上包含一個完整的可啟動軟盤FAT映像),並從那裡選擇文件,我們可以合法地做。

但是,隨著Windows 10的推出,微軟放棄了創建可啟動軟盤的能力(因為預計沒有人使用Windows 10從軟盤啟動)並被刪除 diskcopy.dll。這意味著我們沒有合法的方法來創建MS-DOS可啟動USB閃存驅動器,最終結果是:

  • 如果您在Windows XP到Windows 8.1上使用Rufus: 您可以使用其中任何一個創建可啟動USB FreeDOS的 或MS-DOS(WinME版)。
  • 如果您在Windows 10或更高版本上使用Rufus: 您只能使用FreeDOS創建可啟動的USB。

在實踐中,我還沒有遇到某人的有形報告,表明FreeDOS不能在MS-DOS的地方工作,這就是為什麼我不認為Windows 10中MS-DOS支持的丟失是一個很大的損失。另外,與使用MS-DOS相反,MS-DOS是封閉源代碼,微軟很久以前就停止了支持, FreeDOS是開源的 並積極支持,所以你通常使用FreeDOS要好得多。


198
2017-07-09 12:28



嘿夥伴。我很感激你的稱重,並感謝你提供了一個很好的工具。你介意在這裡說清楚一點: superuser.com/questions/1228065/...。我似乎無法讓Rufus從ISO安裝MS-DOS 6.22,從你所說的,這似乎不是一個法律問題。我需要DOS 6.22,因為我不能冒險使用替代方案,因為我將運行的實用程序非常小眾,如果不是100%正確,有可能打破昂貴的東西,所以我非常感謝你的幫助。 - Hashim
我無法使用FreeDOS在我的筆記本電腦上刷新BIOS,但能夠使用Windows 98啟動盤。也就是說,我所要做的就是出去找一個在線啟動磁盤映像。這並不像發出DMCA通知那樣。 - trlkly
最好明確提到Windows ME的這個版本的DOS標記為MS-DOS 8.0。來自Windows 95a和95OSR / 98 / 98SE的那些分別是MS-DOS 7.0和7.1。有些人會參考MS-DOS 7.11,但我不確定它是否添加到7.1中 - underscore_d
MS-DOS 7.10增加了FAT32支持,@ underscore_d。這是7.10和7.00之間的巨大差異。另請注意,沒有“DOS 7.1”這樣的東西。 MS的版本號始終為X.YY.在網絡上傳播的DOS 7.1的副本是某些人放在一起的東西,帶有95OSR2 / 98 / 98SE提供的DOS版本的副本,並用文本編輯器破解COMMAND.COM以使其報告版本7.1。當然,只是為了完整性,DOS 8.00是WinME附帶的,它刪除了實模式支持,因此DOS啟動到保護模式,並集成了HIMEM。 - Cody Gray
正確。在MS-DOS 7.10之前沒有FAT32啟動分區。要么 任何 FAT32分區,就此而言!您也將無法訪問大型硬盤,因為這些舊版本的DOS對LBA一無所知(邏輯塊尋址並且他們使用舊的ROM BIOS中斷調用來代替新的“INT 13h Extensions”。其他瑣事:你需要MS-DOS 4.00(正式,3.3非正式,有一些限制)來支持FAT16(之前只支持FAT12)。 @Hashim - Cody Gray


他從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)

看看其他評論 dos.c 這是來自WinME(DOS 8.0)的DOS文件,他做了同樣的修補 這裡顯示

來自diskcopy.dll的COMMAND.COM和IO.SYS來自WinME殘缺版本
*刪除實模式DOS =>必須修補它們:
* IO.SYS 000003AA 75  - > EB
* COMMAND.COM 00006510 75  - > EB

36
2017-07-09 06:05



哈哈,被毆打20秒。偵探工作+1,查看源代碼甚至沒有發生在我身上。我已經看過真實模式的維基百科頁面,但我還是有點不清楚。實際上,實模式做了什麼,這個補丁是否恢復了它的所有功能? - Hashim
僅僅為了一些有趣的背景,我還遇到了一個/開發人員談論這個問題的問題: github.com/pbatard/rufus/issues/545 - Hashim
實模式是一種模式 x86 cpu 無限制地直接訪問所有可尋址存儲器,I / O地址和外圍硬件。實模式不支持內存保護,多任務處理或代碼權限級別。但這是實際DOS使用所必需的,但在Win95和Win98中引起了穩定性問題。通過此移除,WinME更穩定 - magicandre1981
好吧,我仍然在我的主筆記本電腦上使用Windows 8,這裡仍然包含文件。因此,此選項僅適用於舊版本。 - magicandre1981
當然,實模式也僅限於8086的/ 8088的20位地址總線,因此您只能尋址1 MiB的內存。 80286通過擴展到24位地址總線並添加保護模式來解除了這一限制,允許CPU處理16 MiB的內存(1982年這是一個巨大的RAM,比大多數PC都要多 固定存儲)。保護模式286代碼在實踐中並不常見(我在看你,OS / 2和Xenix),雖然80386在1985年引入了32位保護模式,但在保護模式32位之前又花了十年時間軟件在PC上變得相當普遍。 - α CVn


我決定自己測試一下。我使用Rufus創建了一個可運行的USB運行MS-DOS,然後在我的筆記本電腦上啟動它。一旦進入MS-DOS,我就跑了 ver 命令確定其版本,返回Windows Millennium,即Windows ME。

我猜這意味著Rufus使用的MS-DOS版本是從Windows ME中提取的,而不是早期的獨立版本之一。這個ME集成版本與早期版本的不同之處我不完全確定。


10
2017-07-09 06:05



看到我的 回答。他從Windows文件中獲取DOS映像 - magicandre1981