Какую версию 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-интегрированная версия отличается от более ранних версий, я не совсем уверен.