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

16390
Hashim

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

Rufus main interface

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

74
Из любопытства, зачем тебе это знать? Ooker 7 лет назад 1
@Ooker - смесь любопытства и причин, приведенных в моем комментарии к принятому ответу. В основном мне нужно было убедиться, что это не был уже DOS 6.22, и поэтому я не тратил время на изучение создания загрузочного USB с 6.22. Hashim 7 лет назад 4
Почти каждый, кто не вступает в конфликты лицензий, использует FreeDOS для таких загрузочных дисков. eckes 7 лет назад 2

3 ответа на вопрос

198
Akeo

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

Как правильно указано @ 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 загрузочной дискеты) и выбрал файлы оттуда, что мы можем сделать на законных основаниях.

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

Эй приятель. Я ценю ваше взвешивание и спасибо за отличный инструмент. Не могли бы вы пролить немного света здесь: https://superuser.com/questions/1228065/how-do-i-create-a-bootable-flash-drive-running-ms-dos-6-22. Я не могу заставить Руфуса установить MS-DOS 6.22 из ISO, и, судя по тому, что вы говорите, это не является юридической проблемой. Мне нужна DOS 6.22, потому что я не могу рисковать, используя альтернативу, учитывая, что утилита, которую я буду запускать, невероятно нишу и может сломать дорогие вещи, если не на 100% правильно, поэтому я очень ценю вашу помощь там. Hashim 7 лет назад 4
Я не смог использовать FreeDOS для прошивки BIOS на моем ноутбуке, но смог использовать загрузочный диск Windows 98. Тем не менее, все, что мне нужно было сделать, это выйти и найти образ загрузочного диска в Интернете. Это не так, как будто рассылает уведомления DMCA по этому поводу. trlkly 7 лет назад 2
Было бы хорошо прямо упомянуть, что эта версия DOS из Windows ME помечена как MS-DOS 8.0. Те из Windows 95a и 95OSR / 98 / 98SE были соответственно MS-DOS 7.0 и 7.1. Несколько человек будут ссылаться на MS-DOS 7.11, но я не уверен, что если что-нибудь добавит в 7.1 underscore_d 7 лет назад 7
MS-DOS 7.10 добавляет поддержку FAT32, @underscore_d. Это большая разница между 7.10 и 7.00. Также обратите внимание, что не существует такой вещи, как «DOS 7.1». Номера версий MS всегда X.YY. Копии DOS 7.1, распространяемые в Интернете, - это то, что некоторые люди собрали вместе, взяв копию версии DOS, поставляемой с 95OSR2 / 98 / 98SE, и взломав COMMAND.COM с помощью текстового редактора, чтобы он сообщал о версии 7.1. И, конечно же, просто для полноты, DOS 8.00 поставляется с WinME, который убрал поддержку реального режима, поэтому DOS загружается в защищенном режиме с интегрированным HIMEM. Cody Gray 7 лет назад 3
@CodyGray Ну, конечно, под 7.1 я имел в виду 7.10; Я специально не думал о каких-либо сторонних выпусках, которые помечались бы как без запаздывающего 0. Спасибо за дополнительные детали! underscore_d 7 лет назад 0
@CodyGray - Что касается поддержки FAT32, означает ли это, что версии MS-DOS до 7.10 не будут работать на загрузочном USB-диске в формате FAT32? Или поддержка FAT32 применяется только к жестким дискам и периферийным устройствам, распознаваемым один раз в операционной системе? Hashim 7 лет назад 0
@Hashim Я совершенно уверен, что вы не можете напрямую загружать версии DOS до 7.10 на диске FAT32. Такие инструменты, как UnetBootIn, используют загрузчики для загрузки образа дискеты (FAT12) и загрузки с него. trlkly 7 лет назад 1
Правильный. Нет загрузочного раздела FAT32 до MS-DOS 7.10. Или * любой * раздел FAT32, в этом отношении! Вы также не сможете получить доступ к большим жестким дискам, так как эти старые версии DOS ничего не знают о LBA ([адресация логических блоков] (https://en.wikipedia.org/wiki/Logical_block_addressing)) и они используйте старые вызовы прерывания BIOS ROM для дискового ввода-вывода вместо более новых расширений INT 13h. Другие мелочи: вам нужна MS-DOS 4.00 (официально, 3.3 неофициально с некоторыми ограничениями) для поддержки FAT16 (ранее поддерживалась только FAT12). @Hashim Cody Gray 7 лет назад 2
FreeDOS, тем не менее, имеет поддержку FAT32, и, я думаю, он может работать полностью на 8086. Так что это довольно круто и подходит к пункту Акео в последнем абзаце. Однако я не эксперт по совместимости с DOS, поэтому не могу ответить и на этот вопрос. Лично я не использую FreeDOS, так как я использую DOS только на своих старых машинах, и мне нравится сохранять их подлинность. Cody Gray 7 лет назад 1
Таким образом, я должен иметь возможность запускать MS-DOS 6.22 только на USB-устройстве FAT16? Это странно. В последние несколько дней я перешел от использования создателей с загрузочными носителями с одной загрузкой, таких как Rufus, к использованию мультизагрузочных, таких как WinSetupFromUSB и YUMI, и мне удалось получить одинаковый ISO для DOS 6.22, работающий на обеих системах. Единственная проблема, с которой у меня возникают проблемы с совместимостью с DOS, заключается в том, что, в отличие от создания загрузочного файла для одной ОС, копирование утилит DOS в корневую папку недостаточно, чтобы DOS мог найти их при загрузке. и я не совсем уверен, куда они идут. Кажется, сама DOS работает нормально. Hashim 7 лет назад 0
Надо было добавить, что обе программы отформатировали USB как FAT32. Hashim 7 лет назад 0
Как я уже говорил ранее, эти инструменты используют загрузчик для загрузки файла образа дискеты с диска. (На загрузочных компакт-дисках есть образ дискеты.) Загрузчик может читать FAT32, а DOS - нет. Для загрузки DOS загрузчик загружает образ дискеты в память и обрабатывает его как дисковод, а затем загружается с образа диска. DOS не может читать диск FAT32, но может читать виртуальную дискету. @Hashim trlkly 7 лет назад 1
36
magicandre1981

Он извлекает версию из файла 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  
Ха-ха, избили до 20 секунд. +1 на детективную работу, заглядывая в исходный код мне даже не пришло в голову. Я посмотрел на странице Википедии в реальном режиме, но я все еще немного неясно. С практической точки зрения, что делает реальный режим, и восстанавливает ли этот патч все его функциональные возможности? Hashim 7 лет назад 0
Просто для некоторого интересного фона, я также столкнулся с проблемой, где / разработчик говорит об этом: https://github.com/pbatard/rufus/issues/545 Hashim 7 лет назад 0
Реальный режим - это режим в [x86 cpus] (https://en.wikipedia.org/wiki/Real_mode) с неограниченным прямым программным доступом ко всей адресуемой памяти, адресам ввода-вывода и периферийному оборудованию. Реальный режим не поддерживает уровни защиты памяти, многозадачности или кода. Но это требуется для реального использования DOS, но вызывает проблемы со стабильностью в Win95 и Win98. С этим удалением WinME стал более стабильным magicandre1981 7 лет назад 10
хорошо, я все еще использую Windows 8 на моем главном ноутбуке, и здесь файл все еще включен. Так что эта опция предлагается только на старых версиях. magicandre1981 7 лет назад 0
Конечно, реальный режим также ограничен 20-битной адресной шиной 8086/8088, поэтому вы можете адресовать только 1 МБ памяти. 80286 снял это ограничение, расширив его до 24-битной адресной шины и добавив защищенный режим, позволив центральному процессору адресовать 16 МБ памяти (это был огромный объем оперативной памяти в 1982 году, больше, чем у большинства ПК * фиксированное хранилище *). Код защищенного режима 286 на практике встречался не так часто (я смотрю на вас, OS / 2 и Xenix), и хотя 80386 ввел 32-битный защищенный режим в 1985 году, потребовалось еще десятилетие, прежде чем защищенный режим 32-битный Программное обеспечение стало достаточно распространенным на ПК. a CVn 7 лет назад 2
10
Hashim

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

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

см. мой [ответ] (https://superuser.com/a/1228138/174557). Он получает образ DOS из файла Windows magicandre1981 7 лет назад 4

Похожие вопросы