75

Rufus позволяет создавать загрузочную флешку MS-DOS. Это делается из коробки как опция, без необходимости указывать изображение или ISO.

Основной интерфейс Rufus

Однако документации по этому инструменту практически не существует, и я не могу найти ничего, что указывало бы, какую версию DOS программа использует для этой цели. Кто-нибудь знает?

3 ответа3

199

Руфус разработчик тут.

Как правильно указал @ magicandre1981, версия MS-DOS, предоставляемая Rufus, представляет собой MS-DOS из Windows Millenium Edition, "не имеющий разрешения" для включения загрузки (я не придумал этот патч, но взял его с HP USB и др. инструменты).

Кроме того, и это важная часть, Rufus НЕ внедряет файлы MS-DOS в приложение, но забирает их из системы Windows, из которой оно работает, потому что, поскольку двоичные файлы MS-DOS являются собственностью и защищены авторским правом Microsoft, это незаконно для кого - либо еще , но Microsoft распространять MS-DOS исполняемые файлы, будь то в почтовый файл или приложение (как на самом деле, оказывается , что HP попала в правовых проблем , связанных с Microsoft , когда они попытались произвести версию их Утилита HPUSBFW, в которую встроены файлы MS-DOS для Windows 98, и Microsoft быстро заставила их прекратить это делать).

Таким образом, вплоть до Windows 10 мы полагались на тот факт, что файлы MS-DOS (из Windows ME) были включены в DLL (diskcopy.dll), которую Windows использует для создания загрузочных дискет DOS (которая фактически содержит полную загрузочную дискету). FAT image) и выбрал оттуда файлы, что мы можем сделать на законных основаниях.

Однако с появлением Windows 10 Microsoft упала возможность создавать загрузочные дискеты (так как никто не использует Windows 10 для загрузки с дискеты) и удалила diskcopy.dll . Это означает, что у нас больше нет законного способа создания загрузочных USB-флешек MS-DOS, и конечный результат таков:

  • Если вы используете Rufus в Windows XP и Windows 8.1: у вас есть возможность создавать загрузочные USB-накопители либо с FreeDOS, либо с MS-DOS (версия WinME).
  • Если вы используете Rufus в Windows 10 или более поздней версии: у вас есть возможность создавать загрузочные USB только с FreeDOS.

На практике мне еще не приходилось сталкиваться с осязаемым отчетом о том, что FreeDOS не работает там, где работает MS-DOS, поэтому я не считаю потерю поддержки MS-DOS в Windows 10 большой потерей. Кроме того, в отличие от использования MS-DOS, которая является закрытым исходным кодом и которую Microsoft давно прекратила поддерживать, FreeDOS является открытым исходным кодом и активно поддерживается, так что вам, как правило, намного лучше использовать FreeDOS.

36

Он извлекает версию из файла 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, которые являются файлами DOS из WinME (DOS 8.0), он делает то же самое исправление, как показано здесь:

* COMMAND.COM and IO.SYS from diskcopy.dll are from the WinME crippled version  
* that removed real mode DOS => they must be patched:  
* IO.SYS            000003AA          75 -> EB 
* COMMAND.COM       00006510          75 -> EB 
10

Я решил проверить это сам. Я создал загрузочный USB-диск под управлением MS-DOS, используя Rufus, а затем загрузился в него на своем ноутбуке. Оказавшись в MS-DOS, я запустил команду ver чтобы определить ее версию, которая возвратила Windows Millennium, или Windows ME.

Я предполагаю, что это означает, что версия MS-DOS, используемая Rufus, взята из Windows ME, а не является одной из более ранних, автономных версий. Чем эта ME-интегрированная версия отличается от более ранних версий, я не совсем уверен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .