Какую версию MS-DOS использует Rufus для создания загрузочных USB?

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

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

3 ответа

Решение

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

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

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

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

Однако, с появлением 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.

Он извлекает версию из файла 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 и IO.SYS из diskcopy.dll из поврежденной версии WinME  
* которые убрали реальный режим DOS => они должны быть исправлены:  
* IO.SYS            000003AA          75 -> EB 
* COMMAND.COM       00006510          75 -> EB 

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

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

Другие вопросы по тегам